文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
8.3 Monkey 包的生成
在打包这个工具做好之后,运行build.xml脚本就能得到一个经过签名混淆的apk包,这与最终发版上线打包的机制是一样的。
在发版前,我们经常要对App进行Monkey测试,由于Monkey是乱点的,所以我们要防止它执行以下几个操作:
1)点击拨打电话的按钮,从而跳出App。
2)进入支付流程,这样会生成很多无效的订单。
这就要求我们要在程序中设置一个开关isMonkey,只有打Monkey包时这个值才为true,考查ProjectForAntBuild项目中下面的代码:
public interface Config { public final static boolean isMonkey = true; }
在MainActivity中,使用这个isMonkey开关控制电话按钮是否禁用,如下所示:
Button btnPhone = (Button)findViewById(R.id.btnPhone); btnPhone.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { if(!Config.isMonkey) { startActivity( new Intent(Intent.ACTION_DIAL, Uri.parse("tel:13000000000"))); } } });
在打包阶段,生成Monkey测试包的脚本时,就把isMonkey这个值设为true,而生成要发布到线上的正式包时,又要把这个isMonkey值设为false。
我们希望执行一次脚本,就同时打出这两个包来。于是我们在build.xml这个Ant脚本之外,新建了一个dailybuild.xml脚本,由它来修改isMonkey的值,然后调用我们之前编写的build.xml脚本。先生成正式包,后生成Monkey包,脚本中的关键代码如下所示:
<target name="begin"> <!-- 正式签名包 ,关闭 monkey开关 --> <close_monkey /> <generateApk /> <!-- Monkey包 ,打开 monkey开关 --> <open_monkey /> <generateApk-monkey /> </target>
generateApk和generateApk-monkey的实现基本上是相同的,唯一的区别是在copy时生成不同的文件名,然后转移到同一个目录下。
执行下述脚本,就能同时生成两个apk安装包:
c:\ProjectForAntBuild>ant – buildfile dailybuild.xml
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论