1 Android Studio 初識(shí)
Android Studio 是一個(gè)Android開(kāi)發(fā)環(huán)境幔托,基于IntelliJ IDEA. 類似 Eclipse ADT,Android Studio 提供了集成的 Android 開(kāi)發(fā)工具用于開(kāi)發(fā)和調(diào)試。
在IDEA的基礎(chǔ)上,Android Studio 提供? :
--基于Gradle的構(gòu)建支持
--Android 專屬的重構(gòu)和快速修復(fù)
--提示工具以捕獲性能、可用性冬阳、版本兼容性等問(wèn)題
--支持ProGuard 和應(yīng)用簽名
--基于模板的向?qū)?lái)生成常用的 Android 應(yīng)用設(shè)計(jì)和組件
--功能強(qiáng)大的布局編輯器,可以讓你拖拉 UI 控件并進(jìn)行效果預(yù)覽
--用以捕捉性能党饮,可用性肝陪,版本兼容性和其他問(wèn)題的工具
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的開(kāi)發(fā)環(huán)境刑顺,下載Android SDK 就足夠了氯窍。Android Studio 和 Android SDK 下載地址:
https://developer.android.com/studio/index.html
1.3 SDK tools
Android SDK tools - 軟件及開(kāi)發(fā)工具包(software development kit),集成在Android Studio中蹲堂,被軟件開(kāi)發(fā)工程師用于為特定的軟件包狼讨、軟件框架、硬件平臺(tái)柒竞、操作系統(tǒng)等建立應(yīng)用軟件的開(kāi)發(fā)工具的集合政供,是Android專屬的軟件開(kāi)發(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)境變量配置
打開(kāi)計(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配置完成,接下來(lái)驗(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è)試中可以通過(guò)UiDevice對(duì)象去對(duì)設(shè)備的控制哭靖,如點(diǎn)亮屏幕具垫、鎖屏、旋轉(zhuǎn)方向试幽、截圖等筝蚕,點(diǎn)擊home鍵、back鍵铺坞、menu鍵等起宽。可以通過(guò)getUiDevice()來(lái)獲取UiDevice對(duì)象济榨。UiDevice=getUiDevice()坯沪,如:getUiDevice.pressHome();點(diǎn)擊home鍵
3.3.2?UiObject : 整個(gè)UI里面的某個(gè)元素或控件⊥榷蹋可以通過(guò)UiObject對(duì)象來(lái)對(duì)控件模擬用戶的操作屏箍。UiObject的構(gòu)造函數(shù)里是傳入一個(gè)UiSelector對(duì)象。所以我們要通過(guò)UiSelector來(lái)查找我們需要的元素或控件 橘忱,如:UiObject? appsButton=new UiObject(new UiSelector().description("apps"))
3.3.3?UiSelector : 可以通過(guò)UiSelector對(duì)象去定位UI元素赴魁。如果發(fā)現(xiàn)多個(gè)滿足條件的控件則會(huì)返回第一個(gè)控件,在使用UiSelector的時(shí)候可以組合使用多個(gè)屬性來(lái)定位具體的控件,還可以使用childSelector()函數(shù)來(lái)嵌套? 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: 代表所有控件的集合,可以用來(lái)獲取所用控件的個(gè)數(shù)凝颇,獲取子元素對(duì)象
3.4 ddms
DDMS 的全稱是Dalvik Debug Monitor Service潘拱,是 Android 開(kāi)發(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
--通過(guò)點(diǎn)擊 sdk/tools 目錄下ddms直接啟動(dòng)
--通過(guò)命令行啟動(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開(kāi)始錄屏垫蛆,點(diǎn)擊Cancel結(jié)束錄屏
3.4.3 log查看和過(guò)濾
--點(diǎn)擊log區(qū)域的+號(hào)禽最,可以添加過(guò)濾器
--可以通過(guò)Log Tag、Log Message袱饭、PID和Application Name來(lái)創(chuàng)建過(guò)濾器
3.4.4 查看進(jìn)程的堆使用情況
可以通過(guò)DDMS查看進(jìn)程的堆內(nèi)存的使用情況川无,特別是通過(guò)某幾步操作后,當(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)存分配的棧跟蹤信息诫咱。通過(guò)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 介紹見(jiàn)3.4
3.5.2 Tracer for OpenGL ES
Tracer是在你的Andr??oid應(yīng)用程序分析OpenGL的嵌入式系統(tǒng)(ES)代碼的工具。該工具允許您捕獲的OpenGL ES命令和每幀圖像哄尔,以幫助您了解圖形命令是如何被執(zhí)行假消。分析繪制過(guò)程參考: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)的行為》孀Γ可以用來(lái)跟蹤 graphics 丙曙、view 和 window 的信息,發(fā)現(xiàn)一些深層次的問(wèn)題几缭。
官網(wǎng)介紹:https://developer.android.com/studio/profile/systrace.html#overview
3.5.5Traceview
TraceView 是 Android 平臺(tái)配備一個(gè)很好的性能分析的工具河泳。它可以通過(guò)圖形化的方式讓我們了解我們要跟蹤的程序的性能沃呢,并且能具體到方法年栓。
官方文檔:https://developer.android.com/studio/profile/traceview.html
3.6?monkeyrunner
monkeyrunner工具提供了一個(gè)API,使用此API寫(xiě)出的程序可以在Android代碼之外控制Android設(shè)備和模擬器薄霜。通過(guò)monkeyrunner某抓,您可以寫(xiě)出一個(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
見(jiàn)3.5.5
3.8 uiautomatorviewer
可以通過(guò)uiautomatorviewer工具來(lái)獲取應(yīng)用的界面截圖并分析曲尸。uiautomatorviewer工具提供了一個(gè)便利的方式來(lái)查看UI布局結(jié)構(gòu)赋续,并且可以查看各個(gè)控件的相關(guān)屬性。利用這些信息可以用來(lái)創(chuàng)建UI測(cè)試代碼另患。
--手機(jī)連接PC纽乱,打開(kāi)被測(cè)APP,定位到待測(cè)試的界面
--工具欄選擇 Device Screenshot (uiautomator dump)昆箕,左側(cè)區(qū)域顯示手機(jī)當(dāng)前屏幕鸦列,右側(cè)顯示當(dāng)前屏幕界面對(duì)應(yīng)的布局
--在左側(cè)試圖區(qū)域選擇控件,即可在右側(cè)的布局區(qū)域查看該控件的層級(jí)和屬性
--通過(guò)查看activity內(nèi)各控件的屬性鹏倘,配合uiautomator框架薯嗤,即可實(shí)施Android UI自動(dòng)化測(cè)試
3.9 hierarchyviewer
見(jiàn)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.reibang.com/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