Friday, May 27, 2011

運行CTS時的問題收集

韌體在撰寫後,
為了檢測是不是符合Google的要求,
通常都會在交給Google認證前,
做CTS(Compatibility Test Suite︰兼容度測試套件)測試。

在CTS測試前,硬體製造商須先遵從CDD(Compatibility Definition Documents︰兼容度定義文件),
然後再做CTS測試。
如果根本沒有符合CDD,那麼做再多的CTS,也完全沒用的(過不了Google認證)!
詳細的內容都可以在這裡看到。

目前我遇過的問題有︰
1.在cts_host >start --Plan Android 時,
遇到了ShellCommandUnresponsiveException。
詳細內容如下︰
Exception in thread "Thread-5" com.android.ddmlib.ShellCommandUnresponsiveException
    at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408)
    at com.android.ddmlib.Device.executeShellCommand(Device.java:276)
    at com.android.cts.TestDevice$1.run(TestDevice.java:1718)

這個原因是SDK版本本身的BUG造成的,換個SDK版本即可。

Tuesday, May 24, 2011

Build Android OS

Android的骨子裡是Linux Kernel(以Linux做為核心的系統),
最近因為在研究Android的Launcher,
左右滑動、軟體清單、Widget...
這些都是Launcher底下的內容

開始要學會make(製作)自己的Android System。

主要原因是Launcher也是APK - 放在預設系統內的一隻APK,
而Google釋出的Source Code裡,Launcher用了很多Android Library以外的系統原生類別(Class),
所以必須make出一個Android系統來搭配Launcher,才看的出執行結果。

在製作自己的Android OS時,
如果遇到了︰
You are attempting to build with the incorrect version
of java.

Your version is: java version "1.6.0_22".
The correct version is: 1.5.



原來是Android Froyo(含)以下在make時,要求使用JDK5,
而非你現在可能在用的JDK6。
所以必須將系統的OS切換成JDK5。

指令為︰

$ sudo update-java-alternatives -s java-1.5.0-sun


剩下的文章等手邊案子差不多再繼續吧...XD