想學安卓,應該先學JAVA還是C?
高級級是最接近傳統嵌入式Linux的,主要涉及CPU、GPU和外設的驅動和使能。妳需要熟悉Linux內核,Android框架定義驅動的接口規範等等。這部分開源社區更強大。這個級別技術的主要需求者是各種CPU和Android設備解決方案提供商。
第二層次主要涉及Android框架的中間件部分,如多媒體/3D框架、Java虛擬機等。谷歌的這部分控制是最嚴格的,因為它必須標準化中間件,才能控制Android的各種功能,並綁定自己的移動互聯網應用。這部分也是涉及最多的軟件技術,從各種C/C++庫、Java虛擬機性能、用戶體驗抽象到數據庫設計等等。發展壹般是選擇壹個方向發力。另外,AndroidROM深度定制的重點也在這個層面。
第三層是App開發層,主要是利用AndroidSDK進行開發。很多C/C++出身的人都以為是Java開發的。Java其實就是C++什麽都有指針,有try/catch,有垃圾回收,上手其實很快。Android程序最重要的壹點是理解生命周期的概念,明確壹個活動和Linux進程的關系,這個進程什麽時候開始,什麽時候休眠,什麽時候退出,後臺的事件周期是如何工作的,最後提醒自己虛擬機在運行,垃圾收集在運行。GoogleCode上參考代碼比較多,在看中學的時候可以快速學習。