1、爲何須要兼容性測試(如下稱CTS)?html
1.一、讓APP提供更好的用戶體驗。用戶能夠選擇更多的適合本身設備的APP。讓APP更穩定。java
1.二、讓開發者設計更高質量的APP。linux
1.三、經過CTS的設備能夠運行Android market。android
另外,CTS是免費的,並且很簡單。vim
二.CTS是開源的測試框架,使用它來測試你的設備是否具有兼容性。CTS主要包含兩個組件:瀏覽器
運行在PC上的測試框架組件。主要用來管理測試用例(test case)的執行。框架
運行在設備或模擬器上的測試用例。這些用例用Java寫成的APK文件。ide
3、工做流程工具
一、能夠從源碼編譯CTS,也能夠從網站下載編譯好的CTS測試
二、安裝配置CTS。
三、把設備鏈接到PC上。
四、運行CTS。CTS會把相應的測試用例(也就是一個APK文件)傳送到設備上並經過instrumentation運行,而後記錄運行結果,最後刪除測試用例。
全部的測試用例執行完畢後,能夠參照測試結果從新調整或優化系統。而後繼續運行CTS測試。
五、測試經過之後,你能夠把CTS生成的結果(就是result下面那個以測試時間命名的.zip文件)提交給cts@android.com。
4、目前的測試覆蓋面
目前,爲了確保兼容,測試用例覆蓋了下面的這些範圍
一、Signature
對每一個Android產品,都有一些XML文件來描述全部的公開API。CTS包含了一個工具來檢測這些API簽名中包含的API是否都在系統中被支持。
二、Platform
測試SDK文檔中描述的平臺API,好比core libraries,Android Application Framework等。要求這些API能夠提供:
正確的類、屬性、方法簽名、方法行爲、錯誤參數處理方式
三、Dalvik VM
專門針對Dalvik Vm的測試。
四、Platform Data Model
平臺經過ContentProvider提供給開發者使用的數據,好比:Contacts,Browser,Settings等。
五、Platform Intents
平臺提供的用於核心功能的Intent。
六、Platform permission
平臺提供的一些重要APP權限
七、Platform Resources
simple values,drawables,nine-patch,animations,layouts,styles and themes,loading alternate resources等
5、CTS搭建(Unbutu/Linux平臺)
1. 下載CTS包http://source.android.com/compatibility/downloads.html
2. 在手機或者模擬器上安裝CtsDelegatingAccessibilityService.apk非必需
(1)$sudo ./adb install -r /home/tester/cts/android-cts/repository/testcases
/CtsDelegatingAccessibil
ityService.apk
(2)手機或模擬器設置Settings > Accessibility > Accessibility > Delegating Accessibility Service
3. 進入android/out/host/linux-x86/cts /android-cts/repository/tools目錄下,修改startcts腳本文件。將腳本中的SDK_ROOT該成本身的android SDK路徑.
$cd home/tester /cts/android-cts/repository/tools $vim startcts修改腳本中出現的第一個SDK_ROOT,如"SDK_ROOT=/home/tester/cts/android-sdk- linux_86"。
4. 執行startcts腳本。在執行CTS測試計劃時(執行一段時間後,大於5分鐘)會出現沒有足夠權限啓動devices,使用$sudo ./startcts可解決該問題。
(Windows下配置好sdk和android開發環境後,能夠直接經過java命令來執行cts測試:java -Xmx512M -cp D:\android-cts\tools\cts.jar;D:\android-cts\tools\hosttestlib.jar;D:\android-cts\tools\junit.jar;C:\Android\android-sdk\tools\lib\ddmlib.jar com.android.cts.TestHost D:\android-cts\repository\host_config.xml
若是使用的是android-cts-2.2_r4-x86.zip,-cp選項中須要多一個D:\android-cts\tools\lib\CtsTestAnnotationsHostLib.jar,可參考startcts腳本。)
5. 出現以下提示符表示啓動cts並鏈接設備成功。(紅色部分未deviceID,視設備號而定)
Android CTS version 2.3_r4
Device(emulator-5544) connected
cts_host > cts_host >
6. 在「cts_host >」提示符下輸入命令,如下爲幾個經常使用的命令
help查看全部
exit退出
ls -p列出全部的測試包
ls --plan列出全部的測試方案
start --plan plan_name運行一個測試方案,如:start --plan CTS
start --plan plan_name --package package_name運行一個特定的測試包,如:start --plan CTS --package android.bluetooth
6、查看測試報告
運行測試時,在CTS運行界面能看到測試報告與運行情況。測試完成後可在android-cts/repository/results/下生成詳 細的測試報告和一些附加信息,其中用日期和時間命名的文件夾下爲全部的測試結果,同時文件夾也會被打成一個對應的.zip包方便提交。用瀏覽器打 開.xml文件(默認就是,直接雙擊)就能夠查看所用的測試報告了。