如何獲取android app的Activity


最近在學習Android的自動化測試工具appium,此框架在編寫腳本的時候,需要獲得app的包名和入口的activity,app的包名在手機的運行進程中可以查看,但是入口的activity呢,網上說可以通過工具re-sign.jar獲取,但是彈出窗口如下:

 

我的java和Android SDK的環境變量都已經設置過了,有圖有真相,但是還是不可以,我最后通過下文的第三種方法,找到了入口的activity

 

---------------------------------------------------------------------------------------------------------------

以下內容來自轉載

---------------------------------------------------------------------------------------------------------------

有時候在appium的Desired Capabilities中需要指定被測app的appActivity,下面的方法可能會對你有所幫助。

方法一

如有你有待測項目的源碼,那么直接查看源碼就好。如果沒有,那么請聯系有源碼的同學,這是推薦方法。

本文版權歸乙醇所有,歡迎轉載,但請注明作者與出處,嚴禁用於任何商業用途

方法二

如果你沒有代碼,那么可以反編譯該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

 

 

在App無法反編譯的時候,第三個比較有用

 

轉載:http://www.cnblogs.com/nbkhic/p/3806951.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM