cocos2d-x_Android 调用启动过程
一、启动activtiy
AndroidManifest.xml里配置了启动activity为AppActivity(android:name="org.cocos2dx.cpp.AppActivity" ),而 AppActivity没有做任何事情,只是继承于Cocos2dxActivity,那所有的动作都交与Cocos2dxActivity处理。
二、Cocos2dxActivity OnCreate方法
按照Activity的生命周期,继续看Cocos2dxActivity的OnCreate方法。其中OnCreate调用了onLoadNativeLibraries,该方法则就是加载我们之前说的生成的so库.而库的名称则是通过 AndroidManifest.xml里定义的,通过bundle传健值对。
三、调用libcocos2dcpp的Native 方法
在Oncreate方法里调用了this.init()方法。在init方法里 this.mGLSurfaceView.setCocos2dxRenderer(new Cocos2dxRenderer()),在Cocos2dxRenderer 的onSurfaceCreated我们可以看到首次调用了nativeInit方法。
四、nativeInit实现部分
在文件里cocos2d/cocos/platform/Android/javaactivity-android.cpp文件里我们可以找到nativeInit的实现部分,
五、开始Class目录下代码执行
在nativeInit里 cocos2d::Application::getInstance->run();而此步就是获取实例并调用其方法开始执行具体相关动作(cocos_android_app_init调用main.cpp的方法)。