该文档中描述的自定义引擎方法基于Win 7系统下。其他系统下可自行研究,原理应大致相同。
1 准备工作
1.1 配置Android开发环境
包括Eclipse,sdk和jre
1.2 下载最新引擎包
访问 下载最新引擎包
1.3 下载引擎源码
访问下载引擎源码
2 修改引擎
2.1 导入代码
如下图引擎源码包下载下来之后有两个文件夹,Engine和en_baseEngineProject。其中Engine是引擎开发工程。en_baseEngineProject是引擎资源文件工程。这里只需要修改Engine文件夹。
将Engine文件夹导入到Eclipse中。
2.2 修改代码
Engine目录结构如下:
修改src下代码。
3 导出jar包
3.1 生成代码jar包
右键src目录,选择“export”
点击“Finish”之后,会弹出提醒框,如下图,可直接忽略,点击“OK”
3.2 生成混淆的jar包
找到刚刚导出的TestEngine.jar包
3.2.1 打开proguardgui.bat
Eclipse中选择“Window->Preferences->Android”中找到对应sdk目录。在资源管理器中打开。
找到sdk目录“tools\proguard\bin”下的proguardgui.bat文件
双击该文件打开,出现如下界面。
稍等片刻进入如下界面。
3.2.2 导入混淆文件
点击上图中的右下角“Load configuration…”按钮打开如下界面:
选择引擎源码中Engine文件夹下的proguard.pro**(注意保证该混淆文件是最新的)**文件,点击“打开”,之后点击“next”,进入如下界面:
3.2.3 配置相应jar包
3.2.3.1 配置待混淆jar包
即为“3.2”步骤中生成的jar包。
3.2.3.2 配置混淆jar输出路径
如下图:
3.2.3.3 配置混淆jar依赖库
1) 配置sdk中的android.jar。
2) 配置jre中的rt.jar。
3) 配置Engine中相关类。
添加Engine文件夹中libs目录下的所有jar文件
配置完成界面如下:(注意检查输入路径需在输出路径上面,即下图上面的红色框框中带箭头的项是在下面)
3.2.4 生成混淆jar包
点击“Process”等待打包完成,打包完成界面如下:
此时查看输出的混淆jar文件,如下:
3.3 将混淆jar放入引擎包
将步骤1.2中下载的最新引擎包,通过7z文件管理器(自行搜索“7-zip”下载并安装)打开,如下图:
双击上图中红色框中的文件
将步骤3.2.4中生成的混淆jar文件替换引擎包中的“AppCanEngine.jar”文件
关闭7z工具。弹出如下选择框,点击“OK”即可。(注:必须点击OK,替换才能生效)
此时的引擎包已自定义完成。可在线打包测试。
4 其他说明
4.1 保存配置
在步骤3.2.3.3中配置完成之后,点击“save”,可保存配置,可简化步骤3.2.3。
将配置保存为myProguard.pro。
再次生成混淆文件时,可直接导入myProguard.pro文件。
如下图:
导入成功之后,再点击“Next”,会出现如下界面:
jar无需再重新添加,可直接进入步骤3.2.4。
注:该方法适用于所有jar包的路径位置未改变的前提下。若该路径下没有jar文件,上图中会显示为红色,可删除该项,再手动添加对应的jar包。
4.2 改变其他文件
引擎包中的其他文件也可通过步骤3.3中的方式更改,包括androidEngine.xml文件。
4.3 7z工具的使用
步骤3.3中描述的方法,也可以通过压缩引擎源码中的en_baseEngineProject/WebkitCorePalm实现。
首先替换en_baseEngineProject/WebkitCorePalm/libs下的AppCanEngine.jar文件。
然后使用7z压缩工具压缩en_baseEngineProject中WebkitCorePalm目录,注意压缩格式为7z。
再修改androidEngine.xml文件(可选)
最后,将生成的7z压缩后的文件(在压缩7z文件之前建议需要去掉文件后缀名)和编辑好的androidEngine.xml文件压缩成zip文件。