如何获取android app的Activity

最近在学习Android的自动化测试工具appium,此框架在编写脚本的时候,须要得到app的包名和入口的activity,app的包名在手机的运行进程中能够查看,可是入口的activity呢,网上说能够经过工具re-sign.jar获取,可是弹出窗口以下:html

 

个人java和Android SDK的环境变量都已经设置过了,有图有真相,可是仍是不能够,我最后经过下文的第三种方法,找到了入口的activityjava

 

---------------------------------------------------------------------------------------------------------------android

如下内容来自转载shell

---------------------------------------------------------------------------------------------------------------windows

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

方法一

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

本文版权归乙醇全部,欢迎转载,但请注明做者与出处,严禁用于任何商业用途工具

方法二

若是你没有代码,那么能够反编译该app。post

这里将用到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

 

 

在App没法反编译的时候,第三个比较有用

 

转载:http://www.cnblogs.com/nbkhic/p/3806951.html

相关文章
相关标签/搜索