目錄
目錄
一、一些概念
① CTS測試
以自動化測試爲基礎,測試Android系統的兼容性;
② CTS Verify
一個手工測試的apk,完成自動化測試無法完成的操作(鎖屏、藍牙、攝像頭等);
③ GTS
手機出口到國外,並且通過運營商出售,就i必須通過GTS測試;
④ GMS認證週期
手機通過CTS測試、CTS Verify以及GTS測試之後,就可以拿到GMS認證。但是GMS認證週期較長,一般需要3個月至半年。
⑤ MADA協議
全稱Mobile Application Distribution Agreement(移動應用軟件分發協議)。是谷歌和Android廠商之間簽署的一個協議,根據該協議,手機廠商在推出採用Android設備前,必須預裝所有Google應用,並且,要把Google Search、Google Play放在手機首屏,並以Google Search作爲默認的搜索引擎。
二、GMS認證
2.1 認證背景
手機沒有GMS認證,那麼對於手機出口商而言,就沒有了生產的產品走不了運營商通道,所以在歐美等由運營商主導的手機市場,GMS認證是十分必要的。但是沒有GMS認證,Google也不會做限制,只是進不了運營商市場,第三世界市場,出於成本考慮(GMS認證需要收費),也就沒裝GMS認證。
2.2 GMS認證目的
- 提高產品android系統的兼容性和穩定性
- 授權Google的手機APP和服務
- 授權使用Android LOGO
- 產品可以進入歐美市場
2.3 GMS認證要求
- 必須申請與Google簽署MADA協議(網站操作)
- 產品必須使用7.0以上的安卓版本
- 產品必須依次通過CTS測試、CTS Verify測試以及GTS測試
- 產品還可以通過CE、FCC、BT以及WIFI等硬件認證(這一部分不是GMS認證的硬性指標)
2.4 GMS認證流程
- 申請谷歌MADA協議
- 產品做硬件測試
- 提交測試報告給谷歌審覈
- 獲得谷歌認證授權
2.5 MADA協議申請流程
st=>start: 開始:https://www.android.com/certified/partners/
op1=>operation: 填寫公司基本信息
op2=>operation: 向谷歌發起MADA請求
cond=>condition: 谷歌評估審覈
e=>end: 結束
st->op1->op2->cond
cond(yes)->e
cond(no)->op1
三、CTS測試
3.1 CTS測試介紹
CTS測試全稱爲系列兼容測試(Compatibility Test suite),CTS是爲了測試手機是否符合google定義的兼容性規範(Compatibility Definition)。從而基於Android的應用程序能在基於同一個api版本的設備上面運行。通過CTS測試的設備可以獲得Android的商標,並且享受Android Market的權限。
CTS測試是一個基於uiautomator安卓原生自動化框架運行的自動化測試。通過CTS測試,保證系統的安全性和穩定性。
3.2 CTS測試的目的
由於Google系統的開源性,很多手機廠商基於安卓系統做出了深度優化,從而造成了安卓移動終端的碎片化,導致android終端的兼容性差的問題,嚴重影響用戶體驗。手機通過CTS測試,是市場得到了一個通過的規範:
- 讓App提供更好的用戶體驗,用戶可以選擇更多的適合自己設備的app
- 讓開發者設計更高質量的app
- 通過CTS的設備可以運行Android market
CTS是免費的,很簡單
3.3 CTS測試運行原理
在pc端安裝CTS測試套件,安裝完成後,就可以通過連接到pc端的數據線將測試用戶發送至手機上,完成測試用例的執行,並且把執行結果返回給PC端。CTS測試套件下載連接如下:https://source.android.com/compatibility/cts/downloads
需要下載文件有:對應手機系統、架構的的測試套件以及CTS Verify、Android Compatibility Defination Document(CDD)、Compatibility Test Suite(CTS) User Manual、CTS Media1.1(音視頻資料)
3.4 CTS測試套件目錄文檔結構
CTS目錄結構
-- docs
-- logs 運行cs產生的log文件
-- plans 運行計劃
-- results 測試結果
-- testcases 測試用例配置
-- respository
-- resource 資源文件
-- tools 運行工具
3.5 CTS測試環境準備
3.5.1 測試環境
① windows
windows環境,需要自己重寫腳本
- 電腦端配置JDK/SDK的環境
- 將解壓後的測試套件(文件名android-cts)拷貝至adt目錄下的sdk目錄
② Linux(推薦64位UBUNTU 10.04)
一般來說,linux上運行較爲穩定,所以手機廠商都是在linux端跑cts測試
- 電腦端配置JDK/SDK的環境
- 將測試套件解壓至pc端/data目錄下
3.5.2 測試準備工作
- 下載需要進行測試的軟件版本(ROM)
- 插入可用的SIM卡(雙開手機,需確保卡1有sim卡)
- 寫入合法的IMEI號(手機的身份證,每一個手機都會有唯一的一個IMEI號)
- 連接一個可翻牆的WIFI網絡(可以使用香港專線,網絡比較穩定)
3.5.3 手機端配置
- 手機恢復出廠設置
- 手機語言設置爲英語
- 手機需常亮並取消鎖屏
- 開啓GPS
- 開啓USB調試後勾選stay awake和allow mock location
- 安裝CtsDeviceAdmin.apk(位於android-cts/repository/testcases),進入setting->security->device administrators的前兩項
- 確保手機SD卡有>1G的存儲空間
- 確保手機沒有谷歌賬號或其他賬號存在
- 確保手機時間和日期設置正確(連接數據後,會自動更新時間,時區選擇默認時區)
...(其餘在CDD文檔中有定義)
3.5 CTS測試流程
- 手機和PC連接,打開USB調試模式,用adb devices檢查是否連接好手機
- 在/data進入android-cts/tools/目錄,執行cts-tradefed腳本進入測試環境
- 在測試環境中輸入以下命令進行整體測試
run cts --plan CTS
或
run cts -c android.app.cts.SystemFeaturesTest
注意: CTS測試會持續10+個小時
補充: CTS測試環境基本命令介紹
分類 | 命令 | 說明 |
Host | help | 基本命令幫助說明 |
help all | 基本命令幫助說明 | |
exit | 退出控制檯 | |
Run | run cts --plan test_plan_name | 運行指定計劃 |
run cts --package/-p | 運行指定包 | |
run cts --class/-c [--method/-m] | 運行指定方法 | |
run cts --continue-session session_ID | 繼續運行指定會話session_id | |
run cts [options] --serial/-s device_ID | 運行指定設備 | |
run cts [options] --shards number_of_shards | 運行多個設備 | |
run cts --help/--help-all | 運行幫助 | |
List | l/list d/devices | 列出連接的設備 |
l/list packages | 列出所有測試包 | |
l/list p/plans | 列出所有測試計劃 | |
l/list r/results | 列出已經保存的測試結果 |
3.6 查看測試結果
3.6.1 測試結果存放路徑
android-cts/repository/results/testResult.xml
3.6.2 測試日誌存放路徑
android-cts/repository/logs/
四、GTS測試
4.1 GTS測試介紹
谷歌移動服務測試套件(Google Mobile Services Test Suite),谷歌移動服務提供了Search、 Search by Voice、Gmail、Contact Sync、 Calendar Sync、Talk、 Maps、 Steet View、 YouTube、 Android Market (Play store)等服務,當用戶使用谷歌時,谷歌可以把各種廣告嵌入到谷歌的服務中。
4.2 GTS授權級別
根據GMS,谷歌對android手機給與不同程度的授權,把搭載android系統的手機廠商分爲3個級別:
- 免費使用Android系統,但不內嵌GMS
- 內嵌部分GMS,但手機不能打上谷歌的商標
內嵌所有GMS服務,也可以使用谷歌商標。如果在android手機中內置有谷歌GMS服務的話,是等同被谷歌官方認證的產品
4.3 GTS測試流程
GTS的環境安裝、執行、報告分析這一系列操作和CTS類似,只是GTS必須連接VPN。
4.3.1 手機環境準備
- 刷好GMS版本的ROM包
- 恢復手機出廠設置
- 設置手機、連接外網
- 插入SIM卡,打開移動數據
- 打開藍牙
- 顯示中睡眠時間顯示最大
- 豎屏
- 語言選擇英語
- 鍵盤選擇谷歌鍵盤
- 打開定位、高精度
- 安全中鎖屏選擇None
- 時間將自動獲取時間和日期關閉,選擇太平洋時區、24小時制
在開發者模式中打開stay awake和USB debugging
4.3.2 執行GTS測試
- 開始全部GTS測試
run gts --plan GTS
- 單跑某一模塊的GTS測試
run gts -plan 'Module Name' -t 'class name'
- 接着某一次中斷的gts測試跑
run gts --retry session_id
其中session_id可由lr查看
4.4 GTS測試結果展示
五、獲取GMS認證
通過GMS認證後,就可以申請到一個GMS的APK的包,可以將這些谷歌應用集成到手機系統裏面。通過GMS認證的手機,可以在Googie play中看到如下內容: