湖南长沙房卡麻将学习 之Android场景初始化流程,ios的没去分析,都知道,这得先拥有一台mac电脑......
场景初始化流程:
AppActivity.java::
org.cocos2dx.cpp.AppActivity extends Cocos2dxActivity::
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
调用了Cocos2dxActivity的onCreate()
↓
Cocos2dxActivity.java::
Cocos2dxActivity::onCreate()->
init()->
this.mGLSurfaceView.setCocos2dxRenderer(new Cocos2dxRenderer());
↓
Cocos2dxRenderer.java::
Cocos2dxRenderer::onSurfaceCreated()->
Cocos2dxRenderer.nativeInit(this.mScreenWidth, this.mScreenHeight); //调用了jni接口
此类中声明了不少jni接口,有一部分定义在Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp中
↓
javaactivity-android.cpp:
Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit()->
cocos2d::Application::getInstance()->run(); ->
↓
CCApplication-android.cpp::
applicationDidFinishLaunching()->
↓
Classes\ClientHN_THJ\Main\AppDelegate.cpp::
AppDelegate::applicationDidFinishLaunching()->Scene *pScene = HNGame::scene();