1 Android Studio 初識(shí)
Android Studio 是一個(gè)Android開發(fā)環(huán)境,基于IntelliJ IDEA. 類似 Eclipse ADT,Android Studio 提供了集成的 Android 開發(fā)工具用于開發(fā)和調(diào)試。
在IDEA的基礎(chǔ)上,Android Studio 提供? :
--基于Gradle的構(gòu)建支持
--Android 專屬的重構(gòu)和快速修復(fù)
--提示工具以捕獲性能、可用性、版本兼容性等問題
--支持ProGuard 和應(yīng)用簽名
--基于模板的向?qū)砩沙S玫?Android 應(yīng)用設(shè)計(jì)和組件
--功能強(qiáng)大的布局編輯器,可以讓你拖拉 UI 控件并進(jìn)行效果預(yù)覽
--用以捕捉性能,可用性,版本兼容性和其他問題的工具
1.1 Android Studio 簡(jiǎn)介
http://www.jikexueyuan.com/course/2531_1.html?ss=1
1.2 Android Studio 下載和安裝
http://www.jikexueyuan.com/course/2531_2.html?ss=1
如果只想使用Android SDK提供的工具,不需要Android的開發(fā)環(huán)境,下載Android SDK 就足夠了。Android Studio 和 Android SDK 下載地址:
https://developer.android.com/studio/index.html
1.3 SDK tools
Android SDK tools - 軟件及開發(fā)工具包(software development kit),集成在Android Studio中,被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合,是Android專屬的軟件開發(fā)和測(cè)試工具包。
常用工具有:
sdk
|——build-tools
| ? ? ? ? ? |——xx.x.x
| ? ? ? ? ? ? ? ? ? ? ?|——aapt
|——platform-tools
| ? ? ? ? ? |——adb
|——platforms
| ? ? ? ? ? |——uiautomator.jar
|——tools
| ? ? ? ? ? |——ddms
| ? ? ? ? ? |——monitor
| ? ? ? ? ? |——monkeyrunner
| ? ? ? ? ? |——traceview
| ? ? ? ? ? |——uiautomatorviewer
| ? ? ? ? ? |——hierarchyviewer
2 環(huán)境變量配置
打開計(jì)算機(jī)屬性——高級(jí)系統(tǒng)設(shè)置——環(huán)境變量
2.1 JDK環(huán)境變量配置
2.1.1 新建一個(gè)環(huán)境變量,變量名:JAVA_HOME,變量值: ?C:\Program Files\Java\jdk1.8.0_91 (JDK安裝目錄)
2.1.2?在用戶變量PATH后面加上變量值 ?;%JAVA_HOME%\bin 保存
2.2 SDK環(huán)境變量配置
2.2.1 新建一個(gè)環(huán)境變量,變量名:ANDROID_HOME,變量值:D:\adt-bundle-windows-x86_64-20140702\sdk(以你安裝目錄為準(zhǔn),是SDK的所在目錄),點(diǎn)擊確認(rèn)。
2.2.2 在用戶變量PATH后面加上變量值 ?;%SDK_HOME%\tools;%SDK_HOME%\platform-tools; ?保存
2.2.3 Android SDK配置完成,接下來驗(yàn)證配置是否成功。
點(diǎn)擊運(yùn)行——輸入cmd——回車——輸入adb——回車

3 常用測(cè)試工具介紹
3.1 aapt
aapt即Android Asset Packaging Tool,在SDK的build-tools目錄下。該工具可以查看,創(chuàng)建, 更新ZIP格式的文檔附件(zip, jar, apk)
3.1.1?列出壓縮文件目錄
aapt l[ist] [-v] [-a] file.{zip,jar,apk}

3.1.2?查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各種詳細(xì)信息
aapt dump badging ?file_path.apk?

3.1.3?查看權(quán)限
aapt dump permissions file_path.apk

3.1.4?查看資源列表
aapt dump resources file_path.apk

3.1.5?查看apk配置信息
aapt dump configurations file_path.apk

3.1.6?查看指定apk的指定xml文件
aapt dump xmltree file_path.apk? res/***.xml

3.2 adb
3.2.1 查看設(shè)備連接
adb devices

3.2.2 查看log信息
adb logcat [option] [filter-specs]

3.2.3 安裝和卸載APP
安裝: adb install? apk所在路徑
卸載: adb uninstall ?app包名 ??
3.2.4 導(dǎo)入和導(dǎo)出文件
adb pull remote local? 把手機(jī)local目錄的文件導(dǎo)出到pc?
adb push local remote ?把pc的文件push到手機(jī)
3.2.5 查看adb其它命令
adb help
3.3?uiautomator
uiautomator 是Android原生UI自動(dòng)化測(cè)試框架,API介紹如下:
http://wear.techbrood.com/tools/testing/testing_ui.html
3.3.1 UiDevice :在測(cè)試中可以通過UiDevice對(duì)象去對(duì)設(shè)備的控制,如點(diǎn)亮屏幕、鎖屏、旋轉(zhuǎn)方向、截圖等,點(diǎn)擊home鍵、back鍵、menu鍵等??梢酝ㄟ^getUiDevice()來獲取UiDevice對(duì)象。UiDevice=getUiDevice(),如:getUiDevice.pressHome();點(diǎn)擊home鍵
3.3.2?UiObject : 整個(gè)UI里面的某個(gè)元素或控件??梢酝ㄟ^UiObject對(duì)象來對(duì)控件模擬用戶的操作。UiObject的構(gòu)造函數(shù)里是傳入一個(gè)UiSelector對(duì)象。所以我們要通過UiSelector來查找我們需要的元素或控件 ,如:UiObject? appsButton=new UiObject(new UiSelector().description("apps"))
3.3.3?UiSelector : 可以通過UiSelector對(duì)象去定位UI元素。如果發(fā)現(xiàn)多個(gè)滿足條件的控件則會(huì)返回第一個(gè)控件,在使用UiSelector的時(shí)候可以組合使用多個(gè)屬性來定位具體的控件,還可以使用childSelector()函數(shù)來嵌套? UiSelector 對(duì)象
3.3.4?UiScrollable:可滾動(dòng)的控件,如果操作的控件需要滾動(dòng)就可以使用UiScrollable ,如:
UiScrollable? appsList=new UiScrollable(new UiSelector().className("android.view.View"));
appsList.setAsHorizontalList();
3.3.5?UiCollection: 代表所有控件的集合,可以用來獲取所用控件的個(gè)數(shù),獲取子元素對(duì)象
3.4 ddms
DDMS 的全稱是Dalvik Debug Monitor Service,是 Android 開發(fā)環(huán)境中的Dalvik虛擬機(jī)調(diào)試監(jiān)控服務(wù)。
它為我們提供功能如下:
--為測(cè)試設(shè)備截屏
--針對(duì)特定的進(jìn)程查看正在運(yùn)行的線程以及堆信息
--Logcat
--廣播狀態(tài)信息
--模擬電話呼叫
--接收SMS
--虛擬地理坐標(biāo)

3.4.1 啟動(dòng)ddms
--通過點(diǎn)擊 sdk/tools 目錄下ddms直接啟動(dòng)
--通過命令行啟動(dòng),windows cmd或mac terminal中輸入ddms即可啟動(dòng)
3.4.2 截圖和錄屏

截圖:Device-Screen capture 截取當(dāng)前屏幕
錄制屏幕:Device-Screen Record,設(shè)置對(duì)應(yīng)參數(shù),點(diǎn)擊OK開始錄屏,點(diǎn)擊Cancel結(jié)束錄屏
3.4.3 log查看和過濾
--點(diǎn)擊log區(qū)域的+號(hào),可以添加過濾器
--可以通過Log Tag、Log Message、PID和Application Name來創(chuàng)建過濾器
3.4.4 查看進(jìn)程的堆使用情況
可以通過DDMS查看進(jìn)程的堆內(nèi)存的使用情況,特別是通過某幾步操作后,當(dāng)前應(yīng)用進(jìn)程的堆使用情況,操作步驟如下:
— 點(diǎn)擊選中想要監(jiān)測(cè)的進(jìn)程,比如com.qihoo.appstore進(jìn)程
— 點(diǎn)擊選中Devices視圖界面中最上方一排圖標(biāo)中的“Update Heap”圖標(biāo)
— 切換tab到 VM Heap
— 點(diǎn)擊Heap視圖中的“Cause GC”
— 此時(shí)在Heap視圖中就會(huì)看到當(dāng)前選中的進(jìn)程的內(nèi)存使用量的詳細(xì)情況

3.4.5 跟蹤對(duì)象內(nèi)存分配
— 切換 tab 到 Allocation tracker,單擊“Start Tracing”按鈕
— 運(yùn)用被測(cè)APP,操作待測(cè)試的feature,操作完畢后單擊“Get Allocations”按鈕,一個(gè)已分配對(duì)象的列表就會(huì)出現(xiàn)第一個(gè)表格中
— 單擊第一個(gè)表格中的任何一項(xiàng),在表格二中就會(huì)出現(xiàn)導(dǎo)致該內(nèi)存分配的棧跟蹤信息。通過allocation tracker,不僅知道分配了哪類對(duì)象,還可以知道在哪個(gè)線程、哪個(gè)類、哪個(gè)文件的哪一行。
3.4.6 查看手機(jī)文件
Device - File Explorer,即可導(dǎo)入或?qū)С鍪謾C(jī)文件
3.5?monitor
android Device Monitor是一個(gè)提供了圖形化界面的可以對(duì)Android應(yīng)用進(jìn)行調(diào)試和分析的獨(dú)立的工具,它集成了Android SDK下的以下工具:
3.5.1 DDMS 介紹見3.4
3.5.2 Tracer for OpenGL ES
Tracer是在你的Andr??oid應(yīng)用程序分析OpenGL的嵌入式系統(tǒng)(ES)代碼的工具。該工具允許您捕獲的OpenGL ES命令和每幀圖像,以幫助您了解圖形命令是如何被執(zhí)行。分析繪制過程參考:http://blog.csdn.net/jinzhuojun/article/details/8901835
3.5.3 Hierarchy Viewer
不合理的布局會(huì)使我們的應(yīng)用程序UI性能變慢,HierarchyViewer能夠可視化的角度直觀地獲得UI布局設(shè)計(jì)結(jié)構(gòu)和各種屬性的信息,幫助我們優(yōu)化布局設(shè)計(jì)。HierarchyViewer是我們優(yōu)化程序的工具之一,它是Android自帶的非常有用的工具,可以幫助我們更好地檢視和設(shè)計(jì)用戶界面(UI),絕對(duì)是UI檢視的利器。
-- 啟動(dòng)Hierarchy Viewer:點(diǎn)擊Android SDK/tools/hierarchyviewer啟動(dòng),或命令行輸入hierarchyviewer啟動(dòng)
-- 連接測(cè)試設(shè)備,啟動(dòng)被測(cè)應(yīng)用,并定位到要分析的界面
-- Hierarchy Viewer工具,找到要分析Activity

-- 點(diǎn)擊Load View?Hierarchy,就可以看到當(dāng)前Activity的層級(jí)結(jié)構(gòu)了

-- 點(diǎn)擊要測(cè)試的空間,可以查看控件的屬性,如id、text等

3.5.4 Systrace
Systrace允許你監(jiān)視和跟蹤Android系統(tǒng)的行為。可以用來跟蹤 graphics 、view 和 window 的信息,發(fā)現(xiàn)一些深層次的問題。
官網(wǎng)介紹:https://developer.android.com/studio/profile/systrace.html#overview

3.5.5Traceview
TraceView 是 Android 平臺(tái)配備一個(gè)很好的性能分析的工具。它可以通過圖形化的方式讓我們了解我們要跟蹤的程序的性能,并且能具體到方法。
官方文檔:https://developer.android.com/studio/profile/traceview.html

3.6?monkeyrunner
monkeyrunner工具提供了一個(gè)API,使用此API寫出的程序可以在Android代碼之外控制Android設(shè)備和模擬器。通過monkeyrunner,您可以寫出一個(gè)Python程序去安裝一個(gè)Android應(yīng)用程序或測(cè)試包,運(yùn)行它,向它發(fā)送模擬擊鍵,截取它的用戶界面圖片,并將截圖存儲(chǔ)于工作站上。monkeyrunner工具的主要設(shè)計(jì)目的是用于測(cè)試功能/框架水平上的應(yīng)用程序和設(shè)備,或用于運(yùn)行單元測(cè)試套件,但您當(dāng)然也可以將其用于其它目的。
官方文檔:https://developer.android.com/studio/test/monkeyrunner/index.html

3.7 Traceview
見3.5.5
3.8 uiautomatorviewer
可以通過uiautomatorviewer工具來獲取應(yīng)用的界面截圖并分析。uiautomatorviewer工具提供了一個(gè)便利的方式來查看UI布局結(jié)構(gòu),并且可以查看各個(gè)控件的相關(guān)屬性。利用這些信息可以用來創(chuàng)建UI測(cè)試代碼。

--手機(jī)連接PC,打開被測(cè)APP,定位到待測(cè)試的界面
--工具欄選擇 Device Screenshot (uiautomator dump),左側(cè)區(qū)域顯示手機(jī)當(dāng)前屏幕,右側(cè)顯示當(dāng)前屏幕界面對(duì)應(yīng)的布局
--在左側(cè)試圖區(qū)域選擇控件,即可在右側(cè)的布局區(qū)域查看該控件的層級(jí)和屬性
--通過查看activity內(nèi)各控件的屬性,配合uiautomator框架,即可實(shí)施Android UI自動(dòng)化測(cè)試
3.9 hierarchyviewer
見3.5.3
參考資料:
http://developer.android.com/tools/studio/index.html
http://developer.android.com/tools/debugging/ddms.html
http://developer.android.com/sdk/installing/index.html
http://www.itdecent.cn/p/5908def0e8af
http://developer.android.com/intl/zh-cn/tools/studio/index.html
http://baike.baidu.com/link?url=c---85A_3-jPh9BVEY_drfkY6M2amlOePyFYegJjc1E6BXMMd14xHKbubRKM3uzmH4S4_LI75NXRxl9k1lfekK
http://baike.baidu.com/link?url=2jMARS-wxMYSMFPnei4ja1LvnL29ykJgEOe-u-E9nwlID6zrFSld4tK3E_lkVHtI6HONJ9w9UdRt25Zf-ueP0q
http://developer.android.com/intl/zh-cn/tools/debugging/ddms.html
http://baike.baidu.com/link?url=NIfuNDZGeLAQkETC70S6E1SZqpTBa2455qUScWseFiZJVOJaOHtj9zHzaFQx22LkbHUgDQRIQPpHJcP0wPszS_
http://www.360doc.com/content/14/0329/23/10366845_364806505.shtml