Android Compatibility Test Suite, Security部份 (1)

Android Compatibility Test Suite是Android上用來測試相容性的一個系統,這系統不是給一般使用者用的,預設情況下,是給OEM廠商使用的,通過CTS的測試之後才能申請Google Play,沒打算申請Google play的雜牌機就沒差了,若是要讓大部份使用者接受,那麼通過CTS就是一件必要的事。

取得CTS有幾種主要方法,第一是到http://source.android.com/compatibility/downloads.html下載,第二個方法是取得AOSP的BSP後,自己make出來,還有一種就是去Git抓,網址是https://android.googlesource.com/platform/cts。下載的版本是沒有原始碼的,所以我在這裡是採用自己建置的方式,不然沒有原始碼就不好修改了。

1

 

CTS Verifier可以先不管,那是手動測試在用的,就是會有一些測試過程,用人工的方式去驗證這種效果正不正確。

直接下載的版本,在解壓縮之後會是下面這樣的結構:

2

logs跟results裡面應該要是空的啦,是因為我有跑過測試才會這樣。

repository/logs是執行測試的log記錄檔,而repository/results就是測試的結果了,以XML的方式儲存,開啟後會以表格的方式呈現。

repository/testcases就是所有測試的apk檔案。

tools目錄下包含了我們進行測試要用到的執行檔與jar檔。


 

我用的環境是Ubuntu 12.04.

CTS的原始碼目錄長得像這樣:

3

因為是用來開發的嘛,多了很多東西是正常的,再來最讓人困惑的就是,那我要自己修改的話,主檔在哪裡?要改哪一個?

用eclipse來做為開發環境時,專案目錄其實是在 tools/tradefed-host,現在來看要怎麼弄進去。你要先開一個新專案,類型就選General就好:

7

新專案建立好了之後,再來就選File -> import匯入專案,然後在import的畫面中選擇Existing Projects into Workspace。

 

8

再來就是選目錄啦,我的目錄是放在/project/BSP/android-4.4.2/cts/tools/tradefed-host,所以就先選這個目錄當做 root directory:

9

在匯進來的專案上按個右鍵,選一下Debug,然後設定Debug configurations,這個專案的Java Application是叫做CtsConsole,Arguments的部份其實就是CTS的指令部份,我們只打算跑Security的測試,所以這裡輸入 run cts -p android.security

4

最後呢,是最奇怪也最重要的部份,就是JAVA囉哩叭嗦的JAR路徑,這個部份有點雞生蛋蛋生雞,因為這裡需要的JAR檔,必須在CTS被make以後才會產生….

所以現在先講怎麼make。

切換到你原始碼的根目錄,然後輸入

再執行 lunch,這就跟建置AOSP一樣,是要設定你的環境與基本編譯條件。

然後執行

就會開始編譯CTS了,第一次make會很久啦,因為我是用整包AOSP去跑,如果你只有CTS那一包的話,時間應該會少很多,順利的話,第一次大約是一個小時到兩個小時之間,make的結果會在 out 目錄裡面。

既然都編完了,想要跑一下也是OK的啦,/project/BSP/android-4.4.2/out/host/linux-x86/cts/android-cts/tools中有個可執行檔 cts-tradefed,可以直接執行它來進入互動界面,也可以用

直接進行security的測試,詳細的語法就先參見官方網站吧~

 

然後呢,回到你的eclipse,設定專案的properties,左邊選擇Java Build Path,右邊選 Add External JARs,到out/host/linux-x86/cts/底下去找JAR檔:

5 JAR檔是這幾個:

  1. cts-tradefed.jar
  2. ddmlib-prebuilt.jar
  3. hosttestlib.jar
  4. junit.jar
  5. tradefed-prebuilt.jar

再回到Debug Configurations的畫面,下面VM Arguments的部份其實是要在make CTS以後才有,很奇怪….-DCTS_ROOT是在指定CTS的ROOT目錄,這個目錄必須要有android-cts這個子目錄,不然你在debug的時間一開始跑就會報錯,以我的環境來看,目錄的路徑就是 /project/BSP/android-4.4.2/out/host/linux-x86/cts:

4

順利的話,按個F5就會開始跑了,跑的過程跟執行cts-tradefed一樣。

 

 

參考資料

官方網站: http://source.android.com/compatibility/downloads.html

很詳細的12篇文件: http://blog.csdn.net/itfootball/article/details/40189401

2 comments

Leave a Reply

你的電子郵件位址並不會被公開。 必要欄位標記為 *