1、CTS(兼容性測試套件Compatibility Test Suite)
https://source.android.com/compatibility
CTS是一套自動化測試套件,其目的是盡早發現不兼容性,確保軟件在整個開發過程中保持兼容性。測試內容包括:簽名測試、平臺API測試(核心庫和Android 應用框架)、Dalvik測試、平臺Intent、平臺權限、平臺資源。
測試套件下載地址:
https://source.android.com/compatibility/cts/downloads
測試命令:
https://source.android.com/compatibility/cts/command-console-v2
注意事項
1.1、安裝Cts Verifier后,請手動授予CtsVerifier所有的權限,Android R請安裝JDK 11
2、CDD(兼容性定義文檔),代表兼容性的“政策”方面
本文檔列舉了設備必須滿足哪些要求才能與最新版本的Android兼容
https://source.android.com/compatibility/cdd
3、GTS(GMS測試套件Google Mobile Service Test Suite)
Google移動服務(GMS)是Google提供的應用程序和服務的集合,它運行在Android應用程序框架之上。GMS測試套件(GTS)是一個自動化測試套件,用于驗證GMS應用程序是否已正確集成,同意的合同條款保持是否與google一致。GTS使用Tradefed測試工具,類似于兼容性測試套件(CTS)一樣。
注意事項
3.1 、GMS包和對應GTS測試工具包都是google不開源,無源碼的。GMS測試fail主要對比Google原生機器的測試結果參考,看fail的log提示,或者反編譯測試apk進行分析。
4、BTS(構建測試套件Build Test Suite)
MBA(Mobile Bundle Apps)安全漏洞政策
對于違反MBA安全漏洞政策的應用,構建測試套件(BTS)發出WARN(警告)。合作伙伴必須在披露之日起90天內解決此問題。如果問題仍未解決,則狀態會在90天后自動變為ALERT(警報),并導致構建批準被阻止。當BTS發出WARN(警告)時,除了Android合作伙伴批準(APA)中的消息外,還會為您分配一個錯誤,以通知您違規行為。
5、VTS(供應商測試套件 Vendor Test Suite)
供應商測試套件(VTS)會自動執行HAL和操作系統內核測試。要使用VTS測試Android原生系統實現,請設置一個測試環境,然后使用VTS方案來測試相應補丁程序。
6、GSI(Generic System Image)
GSI可視為一種“純Android”實現,采用未經修改的Android開源項目(AOSP)代碼,在任何運行Android8.1或以上版本的Android設備上都可以順利運行。GSI用于運行VTS和CTS-on-GSI測試。為確保運行最新版Android的設備正確實現供應商接口,您需要將Android設備的系統映像替換為GSI,然后使用供應商測試套件(VTS)和兼容性測試套件(CTS)來測試設備。R上的GSI測試是在CTS工具下測試,Q上是用VTS工具測試,GSI測試需要刷google GSI,VTS跟GSI的區別是VTS需要刷boot-debug.img,需要root權限。
7、CTS測試結果分析
7.1 一份報告一般有result和log目錄,根據報告的result目錄,查看test_result.html、test_result_failures_suite.html,查看測試fail項,搜索項目源碼,查看fail項報告的原因。如果測試工具更新了,對應的測試項也更新了,行號對應不上,此時可以查看源碼網站:
https://android.googlesource.com/platform/cts
https://cs.android.com/
例如:https://android.googlesource.com/platform/cts/+/refs/tags/android-cts-11.0_r2/tests/tests/permission/src/android/permission/cts/RemovePermissionTest.java
7.2 如果缺少log,請環境編譯,CTS測試源碼添加log,編譯apk替換原有APK進行分析
7.3 實在搞不定,請確認google原生機器pixel是否也會fail,如果也有問題可以找google尋求幫助。如果定位是google測試工具問題或是GMS包的問題,也可以找google尋求幫助。