首页 > 代码库 > cocos2dx程序android平台下自更新策略
cocos2dx程序android平台下自更新策略
cocos2dx开发的在android平台下运行的程序,是以一个.so用户库文件提供给JAVA层调用。所以我们在JAVA层实现检查更新,下载最新库文件,并跳过加载原来库文件,加载新库文件即可。
1. 首先,在AndroidManifest.xml里新增一个activity,以供执行更新。
<!-- 插入一个执行下载更新的activity --> <activity android:name="com.guo.UpdateActivity" android:label="@string/app_name" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="orientation"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
2. 更新的流程主要是:版本检查-->下载更新->加载新.so文件。
a. 版本检查:在版本放出去的时候本地加入一个更新配置文件。如:
<?xml version="1.0" encoding="utf-8"?> <update> <!--是否开放此功能,1:是,其他:否--> <enable>1</enable> <!--当前版本--> <version>1.0.0.1</version> <!--版本检查URL--> <versionCheckUrl>http://xxxxxx/update.plist</versionCheckUrl> </update>
通过配置的检查地址 http://xxxxxx/update.plist,去获取服务器最新的版本号 。 update.plist如下:
<?xml version="1.0" encoding="utf-8"?> <update> <!--是否开放此功能,1:是,其他:否--> <enable>1</enable> <!--服务器最新版本--> <version>1.0.0.2</version> <!--文件下载地址: URL + 版本号 + "/" + CPU_ABI + "/" + XXX.so , 这里只配置前面部分--> <downloadUrl>http://192.168.30.124/test/</downloadUrl> <!--文件MD5值,为下载校验用--> <md5>000000000000000000000</md5> </update>
b.下载更新: 如果有更新根据规则,选择适合自己CPU架构的库文件下载。下载完成之后进行完整性校验。
3. 加载.so文件
修改原来的Cocos2dxActivity.java文件,加入跳过加载原来库文件逻辑。
public final static String FLAG_SKIP_LOAD_LIB = "key-isSkipLoadLib";
protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); Boolean isSkipLoadLib = false; if(savedInstanceState != null) isSkipLoadLib = savedInstanceState.getBoolean(FLAG_SKIP_LOAD_LIB); if(!isSkipLoadLib) onLoadNativeLibraries(); sContext = this; this.mHandler = new Cocos2dxHandler(this); Cocos2dxHelper.init(this); this.init(); if (mVideoHelper == null) { mVideoHelper = new Cocos2dxVideoHelper(this, mFrameLayout); } }
4. 代码太多,直接上链接:源码
5. 还差ZIP压缩下载和MD5校验。
cocos2dx程序android平台下自更新策略
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。