編輯:關於Android編程
硬件廠商測試cts的目的
1.平台兼容性測試:不需要過google cts認證(國內一些廠商這樣做的,海外產品必須過cts)
2.過google的兼容性測試:拿到google的cts認證,才具有Google Play的通行證
cts相關源碼目錄:
jbcts
jbcts ests ests
jblibcorelunisrc --》測試android.core.test.libcore.*相應的測試源碼路徑
cts 測試設置步驟:
1.配置測試環境(測試電腦的環境要求及配置等,具體步驟和要求參考google說明)
2.cts所需測試資源:在sd卡下面創建test目錄,放入如下網站下載的測試資料CTS Media Files,主要是視頻播放片源等
http://source.android.com/compatibility/downloads.html -》CTS Media Files
3.目標設備的設置
1).安裝cts測試需要的apk到目標板:CtsDelegatingAccessibilityService.apk,CtsDeviceAdmin.apk
(這兩個APK可以在cts源碼目錄的testcase中找到)
2).系統setting的配置
(如果項目刪除了默認的setting或者深度修改了,可以用google的原生setting替代原有的setting來進行設置)
進入settings打開Wi-Fi並連接AP (AP需要連外網)
進入settings->Security->Screenlock設為None
進入settings->Security->Deviceadministrators->Enable兩個選項
進入Language&input->language設為English(UnitedStates)
進入settings->Display->Sleep設為30minutes或None
進入settings->Accessibility->EnableDelegating Accessibility Service
進入settings->Developeroptions->Enable USB debugging、Stay awake、Allowmock locations
手動設置時間,並將時區調為北京,設置國家為china
4.連接要求
測試過程中:測試電腦和目標板通過adb連接,目標板連上wifi熱點
我們的設備是智能電視,沒有usb device接口,所以只能通過網絡來連接adb。
為了保證測試過程中adb的穩定性,可以通過網線,路由在電腦和設備之間組成一個局域網絡,並連接外網測試
5.目標板插上usb攝像頭(設備沒有自帶的攝像頭,部分測試用例需要camera功能),
6.執行cts測試命令
CTS測試步驟命令精簡:
首先按上面步驟配置好相應環境,然後在電腦終端執行下面的命令
1. setprop sys.usb.config adb
在android設備終端串口輸入這個命令,打開ADB功能 (若adb默認打開,不需要此步)
2. adb connect IP_address_android
在電腦命令終端輸入adb connect 192.168.1.XX (android設備的IP地址,在串口中通過ifconfig命令可以查看到)
3. ./cts-tradefed android-cts/tools目錄下面自帶的執行文件,目的是用來進入CTS測試模式cts-tf >
4. l d 查看設備是否連接正常
5. run cts --plan CTS --disable-reboot
啟動CTS測試,測試CTS的全部測試計劃
加上--disable-reboot選項,防止設備重啟(某些CTS測試項可能會使設別重啟,不能繼續測試,加上這個選項可以避免)
中斷後重新啟動測試:
6. l r 查看上次運行情況,獲知 sessionID 號
7. run cts --continue-session sessionID --disable-reboot
繼續運行上次的cts項 ,sessionID = 0, 1 ,2 。。。。。。
單獨測試:
8.run cts -p package_name 單獨測試package_name包
9.run cts -c com.class_name -m methmod_name 單獨測試某個類的方法 -c 後面跟類名全路徑 –m 後面跟方法名
單獨對fail/notExecuted/timeout的測試項進行測試:
10. l r 獲取上次測試的session ID
11. add derivedplan --plan plan_name --session/-s sessionID -r [pass/fail/notExecuted]
run cts --plan plan_name
例子:
add deriveplan --plan mycts -s 2 -r fail
run cts --plan mycts --disable-reboot
12.對整體測試完成後,單獨測試fail項的一種簡單方法:
1) .整體測試完成,生成result report 等xml文件 ,通過l r 查看session ID號,
2) .編輯result report 中的xml文件,把其中的fail項全部替換成not executed 項,
3) .使用run cts --continue-session session_ID 重新執行之前的fail項,得到新的result report xml
cts fail項處理
每次測試完一個CTS ID後,都會產生一個目錄,裡面有測試log及測試result report 的xml文件.
通過xml文件及log信息裡面的錯誤信息,找到對應的cts 測試安排款源碼,分析定位問題
cts fail項 log 關鍵字查找
TestRunner: started:
TestRunner: finished
TestRunner: passed
TestRunner: failed
智能電視cts測試的特點:
除了上述提到的adb連接和手機、平板有區別外,在外圍設備上也有一些差別。
比如,一般智能電視android TV 都沒有藍牙等功能,所以在測試cts的藍牙項時往往會失敗,需要把系統的藍牙配置功能關閉。如下:
1.刪除etc/*xml下面藍牙相關的xml配置文件
2.在systemserver.java中關閉bluetoothservice的注冊
其他硬件功能相關的配置文件 :etc/*xml 或者 system/etc/*xml
??
綜述 Android中的事件分發機制也就是View與ViewGroup的對事件的分發與處理。在ViewGroup的內部包含了許多View,而ViewGroup繼承自Vi
一、前言 最近學習http框架。 目前寫的這個框架暫時只適用於學習之用,實際用於項目之中還需要不斷的優化。 要從服務器或者
翻譯自:https://code.facebook.com/posts/366199913563917 快速有效的展示圖片對Facebook Android客戶
Android設備啟動的時候有兩種模式:第一種是正常啟動,使用boot分區;第二種是啟動恢復過程,使用recovery分區。這兩種分區的結構是相同的,後面會介紹到。兩者的