Android開發(fā)上有三個層次技術(shù):
第一個層次和傳統(tǒng)的嵌入式Linux最接近,主要涉及的是CPU、GPU以及外設(shè)的驅(qū)動以及使能方面。多需要熟悉Linux內(nèi)核,Android框架定義中驅(qū)動的接口規(guī)范等等,這部分開源社區(qū)的力量最大。這個層次技術(shù)主要需求方是是各種CPU和Android設(shè)備解決方案供應(yīng)商。
第二個層次主要是涉及Android框架中間件部分,如多媒體/3D框架,Java虛擬機等等,這部分Google控制的是最嚴格的,因為他要控制 Android各種feature以及捆綁自己的移動互聯(lián)網(wǎng)應(yīng)用,必須規(guī)范中間件。這部分所涉及的軟件技術(shù)也最多,從各種C/C++庫,Java虛擬機性 能,用戶體驗抽象到數(shù)據(jù)庫設(shè)計等等很大的內(nèi)涵。開發(fā)的一般也是選擇一個方向發(fā)力。另外深度定制Android ROM重點也是這個層次。
第三個層次就是App開發(fā)層次,這個層次主要就是利用Android SDK開發(fā)了。很多C/C++出身的覺得是用Java開發(fā),其實Java就是啥都是指針的C++,外帶try/catch以及垃圾收集,上手其實是很快的。Android程序最重要一點是理解生命周期概念,將一個Activity和Linux進程關(guān)系搞清楚,啥時候這個進程啟動,啥時候睡眠,啥時候退出,后臺的事件循環(huán)如何運行的,最后時刻要提醒自己虛擬機在運行,垃圾收集在運行。Google Code上有還多參考代碼,在看中學(xué),體會很快的。
|