1 Android Studio 初識
Android Studio 是一個Android開發環境,基于IntelliJ IDEA. 類似 Eclipse ADT,Android Studio 提供了集成的 Android 開發工具用于開發和調試。
在IDEA的基礎上,Android Studio 提供? :
--基于Gradle的構建支持
--Android 專屬的重構和快速修復
--提示工具以捕獲性能、可用性、版本兼容性等問題
--支持ProGuard 和應用簽名
--基于模板的向導來生成常用的 Android 應用設計和組件
--功能強大的布局編輯器,可以讓你拖拉 UI 控件并進行效果預覽
--用以捕捉性能,可用性,版本兼容性和其他問題的工具
1.1 Android Studio 簡介
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的開發環境,下載Android SDK 就足夠了。Android Studio 和 Android SDK 下載地址:
https://developer.android.com/studio/index.html
1.3 SDK tools
Android SDK tools - 軟件及開發工具包(software development kit),集成在Android Studio中,被軟件開發工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統等建立應用軟件的開發工具的集合,是Android專屬的軟件開發和測試工具包。
常用工具有:
sdk
|——build-tools
| ? ? ? ? ? |——xx.x.x
| ? ? ? ? ? ? ? ? ? ? ?|——aapt
|——platform-tools
| ? ? ? ? ? |——adb
|——platforms
| ? ? ? ? ? |——uiautomator.jar
|——tools
| ? ? ? ? ? |——ddms
| ? ? ? ? ? |——monitor
| ? ? ? ? ? |——monkeyrunner
| ? ? ? ? ? |——traceview
| ? ? ? ? ? |——uiautomatorviewer
| ? ? ? ? ? |——hierarchyviewer
2 環境變量配置
打開計算機屬性——高級系統設置——環境變量
2.1 JDK環境變量配置
2.1.1 新建一個環境變量,變量名:JAVA_HOME,變量值: ?C:\Program Files\Java\jdk1.8.0_91 (JDK安裝目錄)
2.1.2?在用戶變量PATH后面加上變量值 ?;%JAVA_HOME%\bin 保存
2.2 SDK環境變量配置
2.2.1 新建一個環境變量,變量名:ANDROID_HOME,變量值:D:\adt-bundle-windows-x86_64-20140702\sdk(以你安裝目錄為準,是SDK的所在目錄),點擊確認。
2.2.2 在用戶變量PATH后面加上變量值 ?;%SDK_HOME%\tools;%SDK_HOME%\platform-tools; ?保存
2.2.3 Android SDK配置完成,接下來驗證配置是否成功。
點擊運行——輸入cmd——回車——輸入adb——回車
3 常用測試工具介紹
3.1 aapt
aapt即Android Asset Packaging Tool,在SDK的build-tools目錄下。該工具可以查看,創建, 更新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等各種詳細信息
aapt dump badging ?file_path.apk?
3.1.3?查看權限
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 查看設備連接
adb devices
3.2.2 查看log信息
adb logcat [option] [filter-specs]
3.2.3 安裝和卸載APP
安裝: adb install? apk所在路徑
卸載: adb uninstall ?app包名 ??
3.2.4 導入和導出文件
adb pull remote local? 把手機local目錄的文件導出到pc?
adb push local remote ?把pc的文件push到手機
3.2.5 查看adb其它命令
adb help
3.3?uiautomator
uiautomator 是Android原生UI自動化測試框架,API介紹如下:
http://wear.techbrood.com/tools/testing/testing_ui.html
3.3.1 UiDevice :在測試中可以通過UiDevice對象去對設備的控制,如點亮屏幕、鎖屏、旋轉方向、截圖等,點擊home鍵、back鍵、menu鍵等。可以通過getUiDevice()來獲取UiDevice對象。UiDevice=getUiDevice(),如:getUiDevice.pressHome();點擊home鍵
3.3.2?UiObject : 整個UI里面的某個元素或控件。可以通過UiObject對象來對控件模擬用戶的操作。UiObject的構造函數里是傳入一個UiSelector對象。所以我們要通過UiSelector來查找我們需要的元素或控件 ,如:UiObject? appsButton=new UiObject(new UiSelector().description("apps"))
3.3.3?UiSelector : 可以通過UiSelector對象去定位UI元素。如果發現多個滿足條件的控件則會返回第一個控件,在使用UiSelector的時候可以組合使用多個屬性來定位具體的控件,還可以使用childSelector()函數來嵌套? UiSelector 對象
3.3.4?UiScrollable:可滾動的控件,如果操作的控件需要滾動就可以使用UiScrollable ,如:
UiScrollable? appsList=new UiScrollable(new UiSelector().className("android.view.View"));
appsList.setAsHorizontalList();
3.3.5?UiCollection: 代表所有控件的集合,可以用來獲取所用控件的個數,獲取子元素對象
3.4 ddms
DDMS 的全稱是Dalvik Debug Monitor Service,是 Android 開發環境中的Dalvik虛擬機調試監控服務。
它為我們提供功能如下:
--為測試設備截屏
--針對特定的進程查看正在運行的線程以及堆信息
--Logcat
--廣播狀態信息
--模擬電話呼叫
--接收SMS
--虛擬地理坐標
3.4.1 啟動ddms
--通過點擊 sdk/tools 目錄下ddms直接啟動
--通過命令行啟動,windows cmd或mac terminal中輸入ddms即可啟動
3.4.2 截圖和錄屏
截圖:Device-Screen capture 截取當前屏幕
錄制屏幕:Device-Screen Record,設置對應參數,點擊OK開始錄屏,點擊Cancel結束錄屏
3.4.3 log查看和過濾
--點擊log區域的+號,可以添加過濾器
--可以通過Log Tag、Log Message、PID和Application Name來創建過濾器
3.4.4 查看進程的堆使用情況
可以通過DDMS查看進程的堆內存的使用情況,特別是通過某幾步操作后,當前應用進程的堆使用情況,操作步驟如下:
— 點擊選中想要監測的進程,比如com.qihoo.appstore進程
— 點擊選中Devices視圖界面中最上方一排圖標中的“Update Heap”圖標
— 切換tab到 VM Heap
— 點擊Heap視圖中的“Cause GC”
— 此時在Heap視圖中就會看到當前選中的進程的內存使用量的詳細情況
3.4.5 跟蹤對象內存分配
— 切換 tab 到 Allocation tracker,單擊“Start Tracing”按鈕
— 運用被測APP,操作待測試的feature,操作完畢后單擊“Get Allocations”按鈕,一個已分配對象的列表就會出現第一個表格中
— 單擊第一個表格中的任何一項,在表格二中就會出現導致該內存分配的棧跟蹤信息。通過allocation tracker,不僅知道分配了哪類對象,還可以知道在哪個線程、哪個類、哪個文件的哪一行。
3.4.6 查看手機文件
Device - File Explorer,即可導入或導出手機文件
3.5?monitor
android Device Monitor是一個提供了圖形化界面的可以對Android應用進行調試和分析的獨立的工具,它集成了Android SDK下的以下工具:
3.5.1 DDMS 介紹見3.4
3.5.2 Tracer for OpenGL ES
Tracer是在你的Andr??oid應用程序分析OpenGL的嵌入式系統(ES)代碼的工具。該工具允許您捕獲的OpenGL ES命令和每幀圖像,以幫助您了解圖形命令是如何被執行。分析繪制過程參考:http://blog.csdn.net/jinzhuojun/article/details/8901835
3.5.3 Hierarchy Viewer
不合理的布局會使我們的應用程序UI性能變慢,HierarchyViewer能夠可視化的角度直觀地獲得UI布局設計結構和各種屬性的信息,幫助我們優化布局設計。HierarchyViewer是我們優化程序的工具之一,它是Android自帶的非常有用的工具,可以幫助我們更好地檢視和設計用戶界面(UI),絕對是UI檢視的利器。
-- 啟動Hierarchy Viewer:點擊Android SDK/tools/hierarchyviewer啟動,或命令行輸入hierarchyviewer啟動
-- 連接測試設備,啟動被測應用,并定位到要分析的界面
-- Hierarchy Viewer工具,找到要分析Activity
-- 點擊Load View?Hierarchy,就可以看到當前Activity的層級結構了
-- 點擊要測試的空間,可以查看控件的屬性,如id、text等
3.5.4 Systrace
Systrace允許你監視和跟蹤Android系統的行為。可以用來跟蹤 graphics 、view 和 window 的信息,發現一些深層次的問題。
官網介紹:https://developer.android.com/studio/profile/systrace.html#overview
3.5.5Traceview
TraceView 是 Android 平臺配備一個很好的性能分析的工具。它可以通過圖形化的方式讓我們了解我們要跟蹤的程序的性能,并且能具體到方法。
官方文檔:https://developer.android.com/studio/profile/traceview.html
3.6?monkeyrunner
monkeyrunner工具提供了一個API,使用此API寫出的程序可以在Android代碼之外控制Android設備和模擬器。通過monkeyrunner,您可以寫出一個Python程序去安裝一個Android應用程序或測試包,運行它,向它發送模擬擊鍵,截取它的用戶界面圖片,并將截圖存儲于工作站上。monkeyrunner工具的主要設計目的是用于測試功能/框架水平上的應用程序和設備,或用于運行單元測試套件,但您當然也可以將其用于其它目的。
官方文檔:https://developer.android.com/studio/test/monkeyrunner/index.html
3.7 Traceview
見3.5.5
3.8 uiautomatorviewer
可以通過uiautomatorviewer工具來獲取應用的界面截圖并分析。uiautomatorviewer工具提供了一個便利的方式來查看UI布局結構,并且可以查看各個控件的相關屬性。利用這些信息可以用來創建UI測試代碼。
--手機連接PC,打開被測APP,定位到待測試的界面
--工具欄選擇 Device Screenshot (uiautomator dump),左側區域顯示手機當前屏幕,右側顯示當前屏幕界面對應的布局
--在左側試圖區域選擇控件,即可在右側的布局區域查看該控件的層級和屬性
--通過查看activity內各控件的屬性,配合uiautomator框架,即可實施Android UI自動化測試
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.lxweimin.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