按順序安裝如下內容html
1. 安裝JDK(Java Development Kit, 即Java開發工具包)python
2. 安裝Eclipse 集成開發環境android
3. 安裝SDK(Software Development Kit, 即軟件開發工具包)shell
4. 安裝ADT(Android Development Tools)插件windows
打開Eclipse,以下圖操做:緩存
再進入AVD Manager,建立模擬機app
模擬器啓動成功:eclipse
1.安裝應用錯誤現象:’adb’不是內部或外部命令,也不是可運行程序或批處理文件tcp
解決方法:找對adb.exe文件的正確目錄ide
開始--運行,輸入cmd,打開命令提示符,進入adb.exe所在目錄。輸入adb install空格,用鼠標將apk遊戲拖至命令提示符,回車
出現success,表示安裝成功。進入程序,能夠查看到安裝的搜狗輸入法:
2. 安裝應用錯誤現象:【1】 segmentation fault pm install /data…
解決辦法:修改apk文件名爲英文,名稱中間不要有空格
3.模擬器打不開的狀況,以下截圖所示:
問題是由於SDK路徑中出現了空格的緣由,而個人SDK放在Android SDK文件夾下,遂刪除了中間的空格,問題果真迎刃而解。
4.打不開AVD Manager的問題
我在配置Android開發環境時,在配置AVD的時候,因爲不當心是的AVD Manager.exe異常退出。而後我再次點擊AVD Manager.exe,AVD Manager.exe閃一下就消失沒反應。找了好久都沒有找到解決辦法。包括重裝,後來偶然發現個人AVD的數據存放目錄在C:/****(具體請求不一致,不過默認在C盤)/.android下面,例如個人安裝目錄:C:\Documents and Settings\chinasoft\.android因而我把 .android下面的內容所有刪除,再次進入 AVD Manager 就ok了 可使用。
5. 安裝應用錯誤現象:error: more than one device and emulator
緣由:當前正在運行兩個模擬器設備,即運行了1個以上模擬器或運行模擬器的同時手機正在鏈接PC
解決方法:關閉多餘模擬器設備
6. 問題概述:
在啓動Android模擬器時出現如下錯誤,致使啓動失敗。
ERROR: the user data image is used by another emulator. aborting。
緣由:
系統判斷你當前已經啓動了另一個emulator,多是某些正常操做或異常退出形成的。
解決方法:
進入你avd目錄下:
如:C:\Documents and Settings\Administrator\.android\avd\android2.3.avd刪除以lock結尾的文件夾。(我簡單解釋下爲何要刪除這些文件呢,其實.lock是加鎖,若是程序崩潰等緣由致使沒法清除這些以.lock結尾的文件夾,就會出現這個問題,也就是這個avd的鎖沒有被釋放,致使avd manager覺得這個avd正在使用當中。)
7.emulator: ERROR: Unable to load VM from snapshot. The snapshot has been saved for a different hardware configuration.
緣由:模擬器錯誤,沒法從虛擬機上加載快照,快照已被保存爲一個不一樣的硬件配置。(存檔錯誤沒法讀取)
解決辦法:
Android Virtual Device Manager -> delete AVD -> new AVD
從新建立個AVD,解決。
8. 個人avd建立界面又和別人不同,怎麼辦,模擬器的方向鍵和肯定鍵用不了,怎麼解決?
我本身摸索了搞掂了,在device definition裏用別人定義的avd點擊clone,把Input的keyboard勾上支持鍵盤,而後選dpad支持方向鍵,最後在botton改成hardware用來支持鍵盤的home、menu、back鍵就ok了
9.關於sdk安裝路徑
錯誤提示爲:
invalid command-line parameter: Files\Android\android-sdk\tools/emulator-arm.exe. Hint: use '@foo' to launch a virtual device named 'foo'. please use -help for more information
這個問題有兩種狀況:
1) 安裝路徑中不能含有中文。
在android模擬器的安裝過程當中,由於使用的路徑中含有中文,結果杯具了……一直提示「invalid command」。無奈之下,只能把路徑改了
2) 安裝路徑中不能含有空格。
這個是在網上搜到的,還沒遇到過這種狀況,不過仍是應該注意。畢竟改路徑不是一件好玩的事呀!
10.某天,Android 啓動模擬器時出現「Failed to allocate memory: 8」錯誤,模擬器沒法啓動,以下圖:
緣由:設置了不正確AVD顯示屏模式,4.0版默認的模式爲WVGA800,改爲WXGA720後致使不支持。
解決辦法:編輯這個AVD,將Skin -> Build in的參數改回默認參數。
11.啓動安卓應用時報錯This application is not correctly embedded (wrong wmode value)
這個實際上是Flash報的「ErrorEvent:。 text=Error #3702: Context3D 不可用」錯誤被Starling變了一下。
解決方法:找到項目文件夾中的html-template,並找到index.template.html,右鍵使用TextEditor編輯,在
params.allowfullscreen=」true」;後面加上params.wmode = "direct";最好下面的embed也這樣配置下<param name="allowFullScreen" value="true" />後面加<param name="wmode" value="direct" />
若是是手機項目,沒有index.template.html文件,則在項目的app.xml裏面改(通常是項目名-app.xml文件)。在「</initialWindow>」前面增長兩行
<renderMode>direct</renderMode>
<fullScreen>true</fullScreen>
就算已經有<fullScreen>true</fullScreen>了也要在renderMode後面加一行,要否則會出現不報錯的白屏。
------------------------------------------------------------------------------------------------
PS:附加正常運行的手機項目的-app.xml的initialWindow配置:
<aspectRatio>landscape</aspectRatio>
<renderMode>direct</renderMode>
<fullScreen>true</fullScreen>
<visible>true</visible>
12.adbInstall安裝apk錯誤常見列表
INSTALL_FAILED_ALREADY_EXISTS 程序已經存在
INSTALL_FAILED_INVALID_APK 無效的APK
INSTALL_FAILED_INVALID_URI 無效的連接
INSTALL_FAILED_INSUFFICIENT_STORAGE 沒有足夠的存儲空間
INSTALL_FAILED_DUPLICATE_PACKAGE 已存在同名程序
INSTALL_FAILED_NO_SHARED_USER 要求的共享用戶不存在
INSTALL_FAILED_UPDATE_INCOMPATIBLE 版本不能共存
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 需求的共享用戶簽名錯誤
INSTALL_FAILED_MISSING_SHARED_LIBRARY 需求的共享庫已丟失
INSTALL_FAILED_REPLACE_COULDNT_DELETE 需求的共享庫無效
INSTALL_FAILED_DEXOPT dex優化驗證失敗
INSTALL_FAILED_OLDER_SDK 系統版本過舊
INSTALL_FAILED_CONFLICTING_PROVIDER 存在同名的內容提供者
INSTALL_FAILED_NEWER_SDK 系統版本過新
INSTALL_FAILED_TEST_ONLY 調用者不被容許測試的測試程序
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 包含的本機代碼不兼容
CPU_ABIINSTALL_FAILED_MISSING_FEATURE 使用了一個無效的特性
INSTALL_FAILED_CONTAINER_ERROR SD卡訪問失敗
INSTALL_FAILED_INVALID_INSTALL_LOCATION 無效的安裝路徑
INSTALL_FAILED_MEDIA_UNAVAILABLE SD卡不存在
INSTALL_FAILED_INTERNAL_ERROR 系統問題致使安裝失敗
DEFAULT 未知錯誤
classes.dex要放在platform-tools目錄下
一、使用命令查看APK中接口配置地址
將APK應用程序後綴名.apk改成.zip,解壓出classes.dex,而後執行反編譯命令,如圖所示
二、打開1.txt,便可查看相應接口配置地址是否正確。
到tools目錄下,
./mksdcard -l sdcard 512M sdcard.img
這樣就建立了一個512M的SD卡了,SDK圖形界面中點「Edit」,在SD Cards中選擇以前建立的SDK卡sdcard.img,就能夠在模擬器中使用了:settings-->storage裏查看。
1.經過命令行上傳文件
cd platform-tools
./adb push XXX sdcard/Musci/ #XXX是要添加到SD卡中的文件(必定要有最後的"/",不然會提示:failed to copy 'XXX' to 'sdcard/Music': Is a directory)
注意:若提示Read-onlyfilesystem錯誤,運行adb remount命令,便可。
以下圖操做:(上傳MP3文件到sdcard/Music目錄)
如何查看剛纔添加的文件?
./adb shell #進入模擬器的終端
cdsdcard/Music
ls #就能夠看到咱們的文件按啦!
以下圖操做:
還能夠這樣哦:
./adb shell #進入模擬器的終端
mkdrisdcard/mp3
exit
./adb push XXX sdcard/mp3
2.經過DDMS文件管理上傳到手機
先按上述方法push一個音樂或圖片文件到模擬器的sd卡中;
音樂文件:
模擬器-->主菜單-->Dev Tools-->Media Provide-->Scan SD card,等到finish後就能夠在主菜單-->Music中找到啦,直接能夠在模擬器中播放了~~
圖片文件:
模擬器-->主菜單-->Dev Tools-->Media Provider-->insert albums,等到finish後就能夠在主菜單-->Gallery 中找到啦,直接能夠在模擬器中打開了~~
提速方法:
1) 關閉模擬器自動偵測手機旋轉的設置,具體位置爲:設置 - 顯示 - 關閉「自動旋轉屏幕」的選項。
2) 增長Android模擬器的內存大小:
a) 直接編輯 C:/Documents and Settings/用戶名/.android/avd/模擬器名.avd/config.ini,在vm.heapSize=xxx 後加上hw.ramSize=512 (單位MB,可根據狀況設置)
b) 也能夠經過 SDK Manager 來設置,選中要加內存的模擬器,Edit... -> Hardware -> New... 在出現的對話框中Property 選擇 Device ram size ,而後回到前一界面,直接修改Device ram size對應的 value 便可。
1. adb
1) adb devices 列出當前鏈接到PC的設備(模擬器或真機)
2) adb install xxx.apk首次安裝某個程序到當前鏈接的設備中
3) adb install -r xxx.apk更新安裝某個程序到當前鏈接的設備中
4) adb -d install xxx.apk以debug模式安裝某個程序到當前鏈接的設備中
5) adb -e install xxx.apk以for 模擬器模式安裝某個程序到當前鏈接的設備(模擬器)中
6) adb shell pm list packages 列出當前設備的全部已安裝程序的包名
7) adb -e logcat查看日誌
8) adb -d logcat查看日誌
9) adblogcatappID:V *:S 查看某個應用的日誌
10) adblogcatappID:VActivityManager:| *:S
11) adblogcat|grep "I.air" 僅查看包含 "I.air" 的日誌
12) adblogcat|grep "hello" application name 僅查看某應用包含 "I.air" 的日誌
13) adblogcat -c 清空logcat緩存
2. ddms
1) ddms打開Dalvik Debug Monitor 控制檯
_______________________________________________________________________________
方法(一):如第五步組網成功能夠經過fiddler過濾應用包名進行抓包,檢查DDMS--àlogcat查看錯誤日誌。
方法(二):能夠經過tcpdump命令抓包生成抓包文件,經過wireshark查看。
抓包準備:
1. Android手機須要先得到root權限。(如何得到root權限在此不做介紹)
2. 須要先得到 Android SDK
3. 須要得到tcpdump軟件,獲取地址(http://files.cnblogs.com/taofh/tcpdump.txt)
下載後,去掉後綴名.txt。
4. 須要得到wireshark,獲取地址:
(http://www.wireshark.org/download.html)
抓包步驟:
1. 將Android手機與電腦經過USB相連,打開windows命令提示符窗口
2. 將tcpdump程序copy至android手機(該命令前面那個目錄文件爲本地地址,後面那個目錄爲目的手機端地址)
C:\android-sdk-windows\platform-tools>adb push C:\tcpdump /data/local/tcpdump
3. 修改tcpdump的權限
C:\android-sdk-windows\platform-tools>adb shell
#chmod 777 /data/local/tcpdump
4. 進入root權限
C:\android-sdk-windows\platform-tools>adb shell
#su (#表示已得到root權限,$表示未得到root權限)
在運行su指令後,手機終端桌面會出現相應提示信息以確認您對root操做的承認。
5. 運行tcpdump,輸入如下命令啓動抓包。
#/data/local/tcpdump -p -vv -s 0 -w /data/local/capture.pcap
2-5步操做以下:
6. 在手機端執行相應須要進行抓包分析的操做,執行完成後在命令提示符窗口執行Ctrl+C中斷抓包進程
7. 將抓包結果複製至本地(前面那個目錄爲手機端地址,後面那個目錄爲本地地址)
C:\android-sdk-windows\platform-tools>adb pull /data/local/capture.pcap c:/
8. 使用Wireshark工具查看抓包文件capture.pcap
_____________________________________________________________________
Monkey的用法是# adb shell monkey -p your.package.name -v 500 ,首先,咱們要找到應用程序在Emulator中所對應的包名,前6步完成了這項工做,最終發現應用程序包都在data/data下,你能夠在shell中cd data/data,而後ls查看當前Emulator中的全部應用程序包。
應用已按上幾節部署到模擬器中,如今咱們舉例對應用進行壓力測試,詳細步驟以下:
1.經過adb install命令將navito.apk文件安裝到模擬器中。
2.在命令行輸入adb shell,進入Shell環境,成功進入後以#開始。
3.輸入ls查看當前文件夾下的目錄,執行結果以下
4.應用程序包都在data下,咱們輸入cd data進入data文件夾
5.輸入ls查看文件夾下的內容,以上兩步以下圖所示:
6.還有個data,全部的應用程序就在這個data下了,進入這個data,而後輸入ls,在最底一行能夠看到咱們應用包名com.pdager.navi。以下:
7.能夠直接輸入monkey -p com.pdager.navi -v 50,結果以下,也能夠退出shell,在命令行輸入,adb shell monkey -p com.pdager.navi -v 50 ,運行過程當中,Emulator中的應用程序在不斷地切換畫面,能夠看一下,呵呵:)
_____________________________________________________________________
monkey主要應用在壓力和可靠性測試上,運行該命令能夠隨機地向目標程序發送各類模擬鍵盤事件流,而且能夠本身定義發送的次數,以此觀察被測應用程序的穩定性和可靠性,應用起來也比較簡單,記住那幾個命令就好了。而monkeyrunner呢,相比之下會強大一些,它主要可應用於功能測試,迴歸測試,而且能夠自定義測試擴展,靈活性較強,而且測試人員能夠徹底控制。
Monkeyrunner工具使用(終端輸入單行命令):
1.前置條件:
事先安裝好android的SDK,配置好開發環境(如Eclipse),安裝好Python(建議安裝2.7.3的版本,新版本問題較多);
啓動eclipse,啓動模擬器
二、拷貝要測試的應用程序apk安裝包到sdk安裝目錄下的tools目錄下。(例如個人是D:\adt-bundle-windows-x86\sdk\tools)
三、運行cmd,定位到tools目錄,輸入命令"monkeyrunner",回車。成功則出現>>>
四、繼續輸入from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice回車。---------------導入monkeyrunner所要使用的模塊
五、繼續輸入device = MonkeyRunner.waitForConnection()回車。--------沒有報錯,就說明和模擬機鏈接成功
六、device.installPackage('./sdk_demo.apk')回車(必定要相對路徑!!!)-----------安裝要測試apk
這個時候查看模擬器,已經有你安裝的程序。
七、device.startActivity(component = 'com.tencent.sample/com.tencent.sample.MainActivity')。(package/activity)-------------------啓動activity,須要傳入package和activity名稱,啓動完成模擬器會自動打開sdk_demo.apk這個應用程序的主頁。
八、device.press('KEYCODE_MENU','DOWN_AND_UP')---------------------執行按下menu鍵操做(還能夠執行更多的操做好比按下OK鍵,按下方向鍵等。見下文)
九、result = device.takeSnapshot()----------------------------------------對應用截圖
十、result.writeToFile('./shot1.png','png')-----------------------------將應用截圖保存爲shot1.png
以上3-7步驟截圖以下:
附:如何得到應用的package名稱及程序入口activity?
Monkeyrunner工具使用(運行python文件):
也能夠不這樣麻煩得一行行地輸入命令,能夠將從「from...import...」開始的全部後面的語句都寫到一個python文件裏面,例如 sdk_demoTest.py,而後咱們再從命令行直接經過monkeyrunner運行它便可。
步驟:
1.前置條件:
鏈接好Android手機或模擬機,安裝好Python(建議安裝2.7.3的版本,新版本問題較多);
拷貝要測試的應用程序apk安裝包到sdk安裝目錄下的tools目錄下
2.在程序菜單中打開python2.3.7,打開IDLE輸入以下代碼,並保存爲sdk_demoTest.py:
(不知爲何打開的IDLE前4行內容無法刪除,因此先暫時輸入一段代碼,保存爲***.py,關閉後再次打開IDLE,進入file>open打開***.py,再次刪除就能夠了)
fromcom.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
device = MonkeyRunner.waitForConnection()
device.installPackage('./sdk_demo.apk')
device.startActivity(component='com.tencent.sample/com.tencent.sample.MainActivity')
device.press('KEYCODE_MENU','DOWN_AND_UP')
result = device.takeSnapshot()
result.writeToFile('./shot1.png','png')
截圖以下:
注意:若是有多個按鍵動做時,最好分開寫。例以下面有三個按鍵動做:①按「下方向」鍵②按「下方向」鍵③按「ok」鍵,截圖以下
各按鍵對應的名稱以下圖:
3.在命令行中用cd命令定位到android SDK的路徑下的tools目錄,運行以下命令:
D:\adt-bundle-windows-x86\sdk\tools>monkeyrunner sdk_demoTest.py
4.能夠在模擬機上看到模擬操做,經過logcat查看日誌文件
_______________________________________________________________________________
附:Monkeyrunner自動化測試過程當中須要用到的技巧:
1.#導入模塊:
fromcom.android.monkeyrunner import Monkey Runner,MonkeyDevice, Monkey Image
2. #鏈接當前設備,並返回一個Monkey Device對象:
device = MonkeyRunner.waitForConnection()
3.#安裝Android包:
device.installPackage('myproject/bin/MyApplication.apk')
4. #啓動一個Activity(定義模擬器到指定的操做界面):device.startActivity(component="com.flysnow.helloworld/com.flysnow.helloworld.HelloWorld") 注:'/'前面是package,後面是activity名稱;此時模擬器會打開HelloWorld的歡迎主頁
5. #截圖:result = device.takeSnapshot()
result.writeToFile('C:\\Users\\Martin\\Desktop\\test.png','png')
6. #時延(秒):MonkeyRunner.sleep(3)
7. #滑動屏幕(Python腳本):
fori in range(1,70):device.drag(start,end,0.1,10)
//參數依次是開始,結束,持續時間步驟
fori in range(1,70):device.drag(end,start,0.1,10)
8. #觸擊屏幕:
device.touch(94,34,'DOWN_AND_UP')