安卓開發需要學:
壹、應用程序
Android以Java為編程語言,使接口到功能,都有層出不窮的變化,其中Activity等同於J2ME的MIDlet,壹個Activity類負責創建視窗,壹個活動中的Activity就是在foreground(前景)模式,背景運行的程序叫做Service。
二、中介軟件
操作系統與應用程序的溝通橋梁,並用分為兩層:函數層(Library)和虛擬機(VirtualMachine)。Bionic是Android改良libc的版本。
Android同時包含了Webkit,所謂的Webkit就是AppleSafari瀏覽器背後的引擎。Surfaceflinger是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自制的BionicLibc。
三、硬件抽像層
Android的HAL(硬件抽像層)是能以封閉源碼形式提供硬件驅動模塊。HAL
的目的是為了把Androidframework與Linuxkernel隔開。
讓Android不至過度依賴Linux
kernel,以達成kernelindependent的概念,也讓Androidframework
的開發能在不考量驅動程序實現的前提下進行發展。
四、編程語言
Android是運行於Linuxkernel之上,但並不是GNU/Linux。因為在壹般GNU/Linux裏支持的功能,Android大都沒有支持。
包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。
五、安全控制
目前Android的Linuxkernel控制包括安全(Security),存儲器管理(MemoryManagemeat),程序管理(ProcessManagement),網絡堆棧(NetworkStack),驅動程序模型等。
下載Android源碼之前,先要安裝其構建工具Repo來初始化源碼。Repo是Android用來輔助Git工作的壹個工具。