如何獲取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

相關文章
相關標籤/搜索