返回介绍

8.3 Monkey 包的生成

发布于 2024-08-17 23:46:12 字数 1410 浏览 0 评论 0 收藏 0

在打包这个工具做好之后,运行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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文