appium简明教程(9)——如何获取android app的Activity

乙醇 创建于 7 个月 之前

最后更新时间 2019-01-28

有时候在appium的Desired Capabilities中需要指定被测app的appActivity,下面的方法可能会对你有所帮助。

2019年1月28日更新

使用adb shell,进入后执行

adb dumpsys  activity activities | grep mFocusedActivity # 8.0以下

adb shell dumpsys activity activities | grep mResumedActivity # 8.0

下面的方式已经过期,不赞成使用了。

方法一

如有你有待测项目的源码,那么直接查看源码就好。如果没有,那么请联系有源码的同学,这是推荐方法。

方法二

如果你没有代码,那么可以反编译该app。

这里将用到2个工具,分别是dex2jar和jd-gui。你可以在这里下载目前为止的最新版本以及示例apk。

我们以工具包里的ContactManager.apk为例,简单介绍一下反编译的流程。

  • 1,重命名ContactManager.apk为ContactManager.zip并解压得到文件classes.dex;
  • 2,解压dex2jar-0.0.9.15.zip,并从命令行进入该文件夹;
  • 3,运行命令
d2j-dex2jar.bat path_to\classes.dex
在当前文件夹下得到classes-dex2jar.jar;
  • 4,解压jd-gui-0.3.6.windows.zip得到文件jd-gui.exe;
  • 5,使用jd-gui.exe打开classes-dex2jar.jar;

嗯,好了,可以尽情欣赏了。上图。

上图所示的ContactManager就是待测app的main activity。

方法三

参考testerhome的这个帖子

使用log查看大法(嗯,windows上没grep不幸福,好在有powershell的Select-String,可以拿来勉强一用),直接搬砖。

  • a、启动待测apk
  • b、开启日志输出:adb logcat>D:/log.txt
  • c、关闭日志输出:ctrl+c
  • d、查看日志

找寻:

Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859ms
appPackage = com.mm.android.hsy
appActivity = .ui.LoginActivity

好了,准备活动做的差不多了。下一节乙醇带大家进行控件定位之旅。

我要留言

  • 方法三中: b步骤应该是adb logcat>D:\log.txt,斜杠反了

    justATester 创建于 2019-01-24 00:46:05