Android Startup Sequence
Call stack
static block
FrameworkActivity.loadNativeLibraries ("ccldemo") // Java ...
System.loadLibrary (mainModuleID)
System.loadLibrary ("cclgui")
System.loadLibrary ("ccltext")
System.loadLibrary ("cclsystem")
JNI_OnLoad () // cclgui
// main module ...
FrameworkActivity.onCreate () // Java ...
FrameworkView ()
FrameworkView::constructNative () // cclgui ...
FrameworkActivity::onCreateNative ()
AndroidSystemInformation::setNativeActivity () // cclsystem ...
AndroidSystemInformation::callAndroidMain ()
CCLAndroidMain () // main module ...
FrameworkInitializer::init ()
FrameworkInitializer::callModuleMain ()
CCLModuleMain ()
ccl_main_gui_init ()
ApplicationStartup::beforeInit ()
UserInterface::startup () // cclgui ...
AndroidUserInterface::startupPlatform ()
ccl_app_init () // main module
AndroidUserInterface::runEventLoop () // cclgui
ApplicationStartup::onInit () // main module
FrameworkView::createApplicationView () // cclgui
Application::uiInitialized () // main module
// main module ...
Call details
- FrameworkActivity.loadNativeLibraries()
- Scope:
Java
- File:
Application, example: CCLDemo.java
Performed in application’s Activity class.
- System.loadLibrary()
- Scope:
Java
- File:
ccl/platform/android/java/FrameworkActivity.java
Adds native main module and framework modules that require JNI access.
-
JNI_OnLoad()
- Scope:
cclgui
- File:
ccl/platform/android/jni_onload.cpp
Called in all CCL modules that export JNI_OnLoad.
- FrameworkActivity.onCreate()
- Scope:
Java
- File:
ccl/platform/android/java/FrameworkActivity.java
Prepares Window, creates main FrameworkView.
- FrameworkView()
- Scope:
Java
- File:
ccl/platform/android/java/FrameworkView.java
-
FrameworkView::constructNative()
- Scope:
cclgui
- File:
ccl/platform/android/native/frameworkview.cpp
Creates C++ counterpart of FrameworkView.
-
FrameworkActivity::onCreateNative()
- Scope:
cclgui
- File:
ccl/platform/android/native/frameworkactivity.cpp
Creates FrameworkActivity (C++ counterpart), creates FrameworkGraphicsFactory (C++).
-
AndroidSystemInformation::setNativeActivity()
- Scope:
cclsystem
- File:
ccl/platform/android/system/system.android.cpp
Initialize cclsystem module (android specific part).
-
AndroidSystemInformation::callAndroidMain()
- Scope:
cclsystem
- File:
ccl/platform/android/system/system.android.cpp
Finds CCLAndroidMain function (exported by main module) and calls it.
-
CCLAndroidMain()
- Scope:
main module
- File:
ccl/platform/android/system/system.android.cpp
-
FrameworkInitializer::init()
- Scope:
main module
- File:
ccl/main/cclinit.h
-
FrameworkInitializer::callModuleMain()
- Scope:
main module
- File:
ccl/main/cclinit.h
Called for all CCL modules (ccltext, cclsystem, …).
-
CCLModuleMain()
- Scope:
main module
- File:
ccl/main/cclmodmain.cpp
-
ccl_main_gui_init()
- Scope:
main module
- File:
ccl/main/cclmain.cpp
-
ApplicationStartup::beforeInit()
- Scope:
main module
- File:
ccl/main/cclmain.cpp
-
UserInterface::startup()
- Scope:
cclgui
- File:
ccl/gui/gui.cpp
-
AndroidUserInterface::startupPlatform()
- Scope:
cclgui
- File:
ccl/platform/android/gui/gui.android.cpp
-
ccl_app_init()
- Scope:
main module
- File:
ccl/main/cclmain.cpp
-
AndroidUserInterface::runEventLoop()
- Scope:
cclgui
- File:
ccl/platform/android/gui/gui.android.cpp
No loop, returns after initialization.
-
ApplicationStartup::onInit()
- Scope:
main module
- File:
ccl/main/cclmain.cpp
-
FrameworkView::createApplicationView()
- Scope:
cclgui
- File:
ccl/platform/android/native/frameworkview.cpp
-
Application::uiInitialized()
- Scope:
main module
- File:
ccl/app/application.cpp