简单的自动化测试小程序(二)
博客专区 > shaula 的博客 > 博客详情
简单的自动化测试小程序(二)
shaula 发表于2年前
简单的自动化测试小程序(二)
  • 发表于 2年前
  • 阅读 360
  • 收藏 8
  • 点赞 2
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: 今日更!在我们熟悉了如何控制设备做想做的事情之后,下面就是集成到程序中做逻辑判断了。 所以下一个知识点就是在应用执行adb。

2,如何在你的应用中执行ADB命令?

    1)代码实现:          

    execShellCmd("input tap 345 1236");
    private void execShellCmd(String cmd) {
    try {
        Process process = Runtime.getRuntime().exec("sh");
        OutputStream outputStream = process.getOutputStream();
        DataOutputStream dataOutputStream = new DataOutputStream(
                outputStream);
        dataOutputStream.writeBytes(cmd);
        dataOutputStream.flush();
        dataOutputStream.close();
        outputStream.close();
    } catch (Throwable t) {
        t.printStackTrace();
    }

     2)平台签名:

        如果不签名的话,应用执行到这里是没有效果的。

        签名需要三个文件:platform.x509pem和platform.pk8在源码\build\target\product\security目录下。signapk.jar在\out\host\linux-x86\framework目录下。

        拷贝出来之后,将未签名的apk放到相同的文件夹下,执行如下命令:

java -jar signapk.jar platform.x509.pem platform.pk8 需要签名apk 签名完成apk

 

      3)ADB命令扩展:

        上篇介绍的adb命令比较局限,仅仅触屏、按键。本小结强化一下。

        am :

        am start    am startservice        am stopservice       am force-stop  am kill am kill-all

       am broadcast     am instrument  am profile start  am profile stop am dumpheap    

        am set-debug-app  am clear-debug-app     am monitor    am hang      am restart

       am idle-maintenance    am screen-compat       am to-uri        am to-intent-uri 

       am switch-user  am stop-user am stack create  am stack movetask    am stack        resize     am stack boxes     am stack box 

        启应用,启服务,发广播~功能好强,但是我就讲一个例子:

        am 启动相机!x度一搜命令就出来了。

        am start -n com.android.camera/com.android.camera.Camera

        也许这条指令在你的设备上能启动相机,但是在我的设备上执行之后,啥都没启动~why?难不成被骗了?查看am后面的参数包star -n 包名/包名.活动名。看看上面的参数,没问题啊。再拿一个已知包名和活动名的应用验证了一下,确实能起来。这样问题就能确定了,是我设备上关于相机的包名或者是活动名字不对。

        接下来是怎么查看到正确的包名和活动名字,使用如下命令,dumpsys usagestats 是用来记录打开了程序的哪些activity次数和时间一类信息的,所以包名活动名什么的一览无遗。        

            dumpsys usagestats | grep cam

 

        将所有包含cam的信息都显示出来

        com.android.camera2: 32 times, 8695 ms

        com.android.camera.CameraActivity: 32 starts

 

          如此一来就确认是包名活动名都不对,所以正确的命令应该是

        am start -n   com.android.camera2/com.android.camera.CameraActivity

                                                                                    ----to be continued

共有 人打赏支持
粉丝 0
博文 4
码字总数 2755
×
shaula
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: