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的方法)。

 

posted @ 2017-02-27 15:02  木水枫  阅读(1517)  评论(0编辑  收藏  举报