android手機測試”

http://wenku.baidu.com/view/72dd575a3b3567ec102d8a9b.html?re=view

“android手機測試” 一.安裝/卸載:adb  注: 

adb [-s <serialNumber>] install [–r] *.apk:安裝 安裝成功,如下圖: 
 
若當前正在運行兩個模擬器設備,即運行了1個以上模擬器或運行模擬器的同時手機正在連接PC,但安裝時未指定目標實例,如下圖: 
 
若已安裝該程序,如下圖: 
 
安裝未簽名或簽名失敗程序,如下圖: 
 
  adb [-s <serialNumber>] [shell pm] uninstall [–k] 包名:卸載   參考:http://wenku.baidu.com/view/c608e9d63186bceb19e8bbcb.html  
1.adb [-d|-e|-s <serialNumber>] <command>:發出adb命令 
當你發出一個命令,系統啓用Android客戶端。客戶端並不與模擬器實例相關,所以如果雙服務器/設備是運行中的,需要用-d選項去爲應被控制的命令確定目標實例  
 adb devices:查詢模擬器/設備實例 
 在發佈adb命令之前,有必要知道什麼樣的模擬器/設備實例與adb服務器是相連的。可以通過使用devices命令來得到一系列相關聯的模擬器/設備 
 adb –s <serialNumber> <command>:給特定的模擬器/實例發送命令 
 如果有多個模擬器/設備實例在運行,在發佈adb命令時需要指定一個目標實例,使用-s選項的命令  eg: 
  adb –s emulator-5556 install helloWorld.apk 
adb install <path_to_apk>:安裝軟件 
可以使用adb從電腦上覆制一個應用程序,並且將其安裝在一個模擬器/設備實例  
 adb forward tcp:6100 tcp:7100:轉發端口 
使用forward命令進行任意端口的轉發—-一個模擬器/設備實例的某一特定主機 端口向另一不同端口的轉發請求 
adb forward tcp:6100 local:logd:使用adb來建立命名爲抽象的UNIX域套接口  
 adb pull <remote> <local>:從模擬器/設備中拷出文件 
使用adb pull,push命令將文件複製到一個模擬器/設備實例的數據文件或是從數據文件中複製。install命令只將一個.apk文件複製到一個特定的位置,與其不同的是,pull和push命令可令你複製任意目錄和文件到一個模擬器/設備實例的任何位置從模擬器或設備中複製文件或目錄,使用(如下命令): 
adb pull <remote> <local> 
將文件或目錄複製到模擬器或者設備,使用(如下命令): adb push <local> <remote>   eg: 
 
  adb push foo.txt /sdcard/foo.txt 2.啓動shell命令 
adb [-d|-e|-s {<serialNumber>}] shell <shellCommand>:當沒有完全進入到遠 程shell的時候,這樣使用shell命令來執行一條命令 
adb [-d|-e|-s {<serialNumber>}] shell:在模擬器/設備中不用遠程shell端時, 這樣使用shell命令 
通過操作ctrl+D或exit就可以退出shell遠程連接  
 通過遠程shell端運行sqlite3連接數據庫 
通過adb遠程shell端,可以通過Android軟sqlite3命令程序來管理數據庫。 sqlite3工具包含了許多使用命令,比如:.dump顯示錶的內容,.schema可以顯示出已經存在的表空間的SQL CREATE結果集。Sqlite3還允許遠程執行sql命令 
通過sqlite3,按照以上方法登陸模擬器的遠程shell端,然後啓動工具就可以使 用sqlite3命令。當sqlite3啓動後,還可以指定想查看的數據庫的完整路徑。模擬器/設備實例會在文件夾中保存SQLite3數據/date/data/<package_name>/databases/.   eg: 
   adb –s emulator-5554 shell    #sqlite3 
   /data/data/com.example.google.rss.rssexample/databases/rssitems.db    „„ 
 
  sqlite3>.exit 
當啓動sqlite3的時候,就可以通過shell端發送sqlite3命令。用exit或ctrl+D 退出adb遠程shell端  
3.UI/軟件試驗程序Monkey 
當Monkey程序在模擬器或設備運行的時候,如果用戶出發了比如點擊、觸摸、手勢或一些系統級別的事件的時候,它就會產生隨機脈衝,所以可以用Monkey隨機重複的方法去負荷測試你開發的軟件 
eg: 
adb shell monkey –v –p your.package.name 500:這個命令將會啓動你的軟件 並且觸發500個事件 
注:更多關於命令Monkey的命令的信息,可以查看UI/Application Exerciser Monkey documentation page  4.其它shell命令   eg: 
adb shell ls /system/bin 
  dumpsys  清除屏幕中的系統數據n   dumpstate 清除一個文件的狀態 
 

 logcat [<option>]„ [<filter-spec>]„ 啓動信息日誌並且輸出到屏幕上

據文件中複製。install命令只將一個.apk文件複製到一個特定的位置,與其不同的是,pull和push命令可令你複製任意目錄和文件到一個模擬器/設備實例的任何位置從模擬器或設備中複製文件或目錄,使用(如下命令): 
adb pull <remote> <local> 
將文件或目錄複製到模擬器或者設備,使用(如下命令): adb push <local> <remote>   eg: 
 
  adb push foo.txt /sdcard/foo.txt 2.啓動shell命令 
adb [-d|-e|-s {<serialNumber>}] shell <shellCommand>:當沒有完全進入到遠 程shell的時候,這樣使用shell命令來執行一條命令 
adb [-d|-e|-s {<serialNumber>}] shell:在模擬器/設備中不用遠程shell端時, 這樣使用shell命令 
通過操作ctrl+D或exit就可以退出shell遠程連接  
 通過遠程shell端運行sqlite3連接數據庫 
通過adb遠程shell端,可以通過Android軟sqlite3命令程序來管理數據庫。 sqlite3工具包含了許多使用命令,比如:.dump顯示錶的內容,.schema可以顯示出已經存在的表空間的SQL CREATE結果集。Sqlite3還允許遠程執行sql命令 
通過sqlite3,按照以上方法登陸模擬器的遠程shell端,然後啓動工具就可以使 用sqlite3命令。當sqlite3啓動後,還可以指定想查看的數據庫的完整路徑。模擬器/設備實例會在文件夾中保存SQLite3數據/date/data/<package_name>/databases/.   eg: 
   adb –s emulator-5554 shell    #sqlite3 
   /data/data/com.example.google.rss.rssexample/databases/rssitems.db    „„ 
 
  sqlite3>.exit 
當啓動sqlite3的時候,就可以通過shell端發送sqlite3命令。用exit或ctrl+D 退出adb遠程shell端  
3.UI/軟件試驗程序Monkey 
當Monkey程序在模擬器或設備運行的時候,如果用戶出發了比如點擊、觸摸、手勢或一些系統級別的事件的時候,它就會產生隨機脈衝,所以可以用Monkey隨機重複的方法去負荷測試你開發的軟件 
eg: 
adb shell monkey –v –p your.package.name 500:這個命令將會啓動你的軟件 並且觸發500個事件 
注:更多關於命令Monkey的命令的信息,可以查看UI/Application Exerciser Monkey documentation page  4.其它shell命令   eg: 
adb shell ls /system/bin 
  dumpsys  清除屏幕中的系統數據n   dumpstate 清除一個文件的狀態 
 
 logcat [<option>]„ [<filter-spec>]„ 啓動信息日誌並且輸出到屏幕上

dmesg 輸出主要的調試信息到屏幕上   start 啓動或重啓一個模擬器/設備實例   stop 關閉一個模擬器/設備實例  5.啓用logcat日誌 
  可以用logcat命令來查看系統日誌緩衝區的內容:  
 [adb] logcat [<option>] „ [<fileter-spec>] „ 
也可以在電腦或運行在模擬器/設備上的遠程adb shell端來使用logcat命令,也 可以在電腦上查看日誌輸出  $adb logcat 或 
#logcat 
二.版本查看:aapt 
 參考:http://wenku.baidu.com/view/fb293c14f18583d049645921.html 
1.aapt l[ist] [-v][-a] file.{zip,jar,apk}   aapt l *.apk:列出壓縮文件目錄   參數: 
-v:以table的形式輸出目錄 -a:詳細輸出所有目錄的內容 
 2.aapt d[ump] [--values] WHAT file.{apk} 
  badging   Print the label and icon for the app declared in APK   permissions  Print the permission from the APK   resources  Print the resource table from the APK   configurations Print the configurations in the APK 
  xmltree   Print the compiled xmls in the given assets 
  xmlstrings  Print the string of the given compiled xml assets   aapt dump badging <file_path.apk>:查看apk包的packageName、versionCode、    applicationLabel、launcherActivity、permission等各種詳細信息   aapt dump permissions <file_path.apk>:查看權限   aapt dump resources <file_path.apk>:查看資源列表 
  aapt dump configurations <file_path.apk>:查看apk配置信息 
aapt dump xmltree <file_path.apk> res/*.xml:查看指定apk的指定xml文件 (以樹形結構輸出的xml信息) 
aapt dump xmlstrings <file_path.apk> res/*.xml:查看指定apk的指定xml 文件(輸出xml文件中所有的字符串信息) 
 3.%aapt% package –f –m –J %GEN% -S %RES% -I %ANDROID_JAR% -M  
%ANDROID_MANIFEST_XML%:使用aapt生成R.java 
4.%aapt% package –f –M %ANDROID_MANIFEST_XML% -S %RES% -A %ASSETS%   
-I %ANDROID_JAR% -F %RESOURCE%:使用aapt生成資源包文件 %GEN%:存放的R.java文件夾路徑 %RES%:res文件夾路徑 
%ANDROID_JAR%:引用的android.jar路徑 
%ANDROID_MANIFEST_XML%:工程AndroidManifext.xml絕對路徑 %ASSETS%:asset文件夾路徑 
%RESOURCES%:生成的resources.arsc存放路徑 參考:

Android系列之Android命令行手動編譯打包詳解 


http://blog168.chinaunix.net/space.php?uid=22957718&do=blog&cuid=2322671 5.aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2„]:Delete specified files  
from Zip-compatible archive 
6.aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2„]:Add specified files  
to Zip-compatible archive 
 7.aapt v[ersion]:Print program version 三.反編譯 
(一)dexdump 注: 
使用命令查看APK中接口配置地址 
將APK應用程序後綴名.apk改爲.zip,解壓出classes.dex,然後執行反編譯命令,如圖所示  
 
打開1.txt,即可查看相應接口配置地址是否正確 
 
 (二)apk反編譯生成Java源代碼和圖片、XML配置、語言資源等文件 
 參考:http://www.cnblogs.com/playing/archive/2010/08/11/1797696.html  1.反編譯apk得到Java源代碼 
 
工具下載:需用到dex2jar和JD-GUI這2個工具 dex2jar下載地址: 
http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI下載地址: 
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip Linux版JD-GUI: 
http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz 步驟: 
1)首先找到Android軟件安裝包中的classes.dex

把.apk文件改名爲.zip,然後解壓縮,得到其中的classes.dex文件,它就是java 文件編譯再通過dx工具打包成的,所以現在我們就用上述提到的2個工具來逆方向導出java源文件 
2)把classes.dex拷貝到dex2jar.bat所在目錄,在命令行模式下定位到dex2jar.bat 所在目錄,運行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar  
3)運行JD-GUI工具(它是綠色無須安裝的),打開上面的jar文件,即可看到源代碼 2.(可直接使用工具apktool反編譯xml)反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件 
工具下載:在http://code.google.com/p/android-apktool/下載獲得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip兩個包都要下。 
步驟: 
1)解壓縮下載的兩個文件包apktool-install-windows-2.1_r01-1.zip解壓縮後得到的包裏有aapt.exe 和apktool.bat(注意要把apktool-1.0.0.tar.bz2解壓後的一個.jar 文件copy進來) 
2)打開命令窗口(開始 > 運行,輸入cmd,回車)進入到apktool.bat的文件夾裏。輸入:apktool d C:\***.apk C:\***文件夾(命令行解釋:apktool d要反編譯的文件輸出文件夾) 
特別注意:你要反編譯的文件一定要放在C盤的根目錄裏, 3)打開C:\***文件夾 就可以得到我們需要的各種資源了。 四.將反編譯完的文件重新打包成apk 
  很簡單,只要輸入:apktool b c:***文件夾(你編譯出來文件夾) 五.Android數字簽名(可直接使用工具DoAPK進行APK簽名) 
參考:http://www.cnblogs.com/feisky/archive/2010/01/17/1650076.html 
當要發佈程序時,開發者就需要使用自己的數字證書給apk包簽名,可以有兩種方法。  (1)在命令行下使用JDK中的和Keytool(用於生成數字證書)和Jarsigner(用於使用數字證書籤名)來給apk包簽名。  
(2)使用ADT Export Wizard進行簽名(如果沒有數字證書可能需要生成數字證書)。   1.使用Keytool和Jarsigner給程序簽名 
命令:keytool –genkey –v –keystore android.keystore –alias android –keyalg RSA –validity 20000 
該命令中,-keystore android.keystore表示生成的證書,可以加上路徑;-alias  android表示證書的別名是android;-keyalg RSA表示採用的RSA算法;-validity 20000表示證書的有效期是20000天 

 
 
注:  
查看簽名證書信息 
  輸入命令“keytool -list -v -keystore *.keystore”,查看簽名詳細信息  2.接着對程序進行簽名  方法(1) 
jarsigner用法:[選項]jar 文件別名 
   jarsigner –verify [選項]jar文件 
執行: 
jarsigner –verbose –keystore android.keystore –signedjar android123_ signed.apk android123.apk android:就可以生成簽名的apk文件,這裏輸入文件android123.apk,最終生成android123_signed.apk爲Android簽名後的APK執行文件。下面提示輸入的密碼和keytool輸入的一樣就行了。 
  
 注: 
 1)jarsigner –verify *.apk:驗證APK是否簽名成功  
 若未簽名或簽名失敗,如下圖

   
  
若簽名成功,如下圖 
 
  
2)無法簽名,提示"jarsigner:找不到..的證書鏈。..必須引用包含專用密鑰和相應的公共密鑰證書鏈的有效密鑰庫密鑰條目。",則主要原因是在生成證書時操作錯誤。可參考:http://www.cnblogs.com/ghj1976/archive/2011/07/18/2109381.html  方法(2) 使用ADT Export Wizard進行簽名 
 
應用程序(apk)簽名,在EC中,右鍵單擊應用程序工程,如圖選擇 
 
選擇證書的存放路徑,填寫相關資料,完成,即可生成被簽名的apk文件。如下圖所示: 
 
如上圖所示,我們可以看到也可以在這裏選擇”Create new keystore“來創建一個證 書。輸入密碼,點擊下一步,填寫相關信息,如下圖所示。 






 




 
3.使用zipalign優化APK  
根據官方文檔的描述,Android系統中Application的數據都保存在它的APK文件中,同時可以被多個進程訪問,安裝的過程包括如下幾個步驟:  
Installer通過每個apk的manifest文件獲取與當前應用程序相關聯的permissions信息。 
Home application讀取當前APK的Name和Icon等信息。  System server將讀取一些與Application運行相關信息,例如:獲取和處理Application的notifications請求等。  
最後,APK所包含的內容不僅限於當前Application所使用,而且可以被其它的Application調用,提高系統資源的可複用性。 
zipalign優化的最根本目的是幫助操作系統更高效率的根據請求索引資源,將
resource-handling code統一將Data structure alignment(數據結構對齊標準:DSA)限定爲4-byte boundaries。如果不採取對齊的標準,處理器無法準確和快速的在內存地址中定位相關資源。目前的系統中使用fallback mechanism機制處理那些沒有應用DSA標準的應用程序,這的確大大的方便了普通開發者無需關注繁瑣的內存操作問題。但是相反,對於這樣的應用程序將給普通用戶帶來一定的麻煩,不但影響程序的運行的效率,而且使系統的整體執行效率下降和佔用大量不必要的內存資源,甚至消耗一定的電池資源(battery life)。  
方法(1)命令行方式手動優化 
利用tools文件夾下的zipalign工具。首先調出cmd命令行,然後執行:zipalign -v  4 source.apk androidres.apk。這個方法不受API Level的限制,可以對任何版本的APK執行Align優化。  
同時可以利用zipalign工具檢查當前APK是否已經執行過Align優化。命令:zipalign -c -v 4 androidres.apk

方法(2)使用ADT自動優化 
從ADT 0.9.3版本開始,可以通過export wizard自動對發佈的application packages執行align操作。設置方法:鼠標右鍵點擊Project,然後選擇”Android Tools” > “Export Signed Application Package„”。 
綜上所述,可以使用Keytool、Jarsigner、zipalign 給程序簽名並優化程序,這樣就需要三個不同的工具: 
keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000 
jarsigner -verbose -keystore android.keystore -signedjar android123_signed.apk android123.apk android 
zipalign -v 4 android123_signed.apk android123_signed_aligned.apk  
當然,也可以通過ADT插件中Export Signed Application Package„來執行,圖形界面更爲簡單、形象、直觀。 參考: 
blog.csdn.net/zgfee/archive/2009/11/11/4796831.aspx    Android SDK: 
androidappdocs.appspot.com/guide/publishing/app-signing.html 
     android123.com.cn/androidkaifa/173.html      yarin.javaeye.com/blog/549280 
     androidres.com/index.php/2009/10/18/use-zipalign-to-optimize-your- 
application-packages/ 基礎延伸: 
六.Android數據抓包  注:  步驟: 
1)啓動模擬器 2)運行聯網程序 3)生成數據包文件 
4)使用抓包工具(wireshark)進行查看 
1.實時生成數據包文件:emulator -avd Test -tcpdump capture.pcap  
 
2.使用抓包工具(Wireshark)看數據包文件 

 
七.APK應用程序運行日誌追蹤 
注:  步驟: 
1)切換至DEBUG查看模式 2)定時跟蹤日誌 3)定位並截圖 
1.優先關注“E(Error)”級別的信息,其次是“W(Warning)”級別的信息  
 






 




2.按“Ctrl+C”複製粘貼信息至文本文件中或截圖,並作爲附件上傳。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章