Android系統移植——爲了在不一樣設備上完美運行Android,須要另外開發一些程序,使得Android能夠識別相應設備中的硬件,這個爲特定設備定製Android的過程被稱爲「移植」。java
Android系統架構——4層:網絡
1.Linux內核架構
這一層主要包括Linux的驅動程序以及內存管理、進程管理、電源管理等程序。函數
2.C/C++代碼庫spa
這一層主要包括使用C/C++編寫的代碼庫(Linux下的.so文件),也包括Dalivk虛擬機的運行時(Runtime)。操作系統
3.Android SDK API對象
因爲Android SDK API是用Java語言編寫的,所以這一層也可稱爲Java API層。實際上,這一層是用java編寫的各類Library。blog
4.應用程序接口
這一層至關於Android的UI。主要依靠第三層的Android SDK API 來完成各類功能。進程
Android移植
應用移植:將第4層的應用程序移植到某一個特定硬件平臺上。通常 不涉及驅動和HAL程序庫(位於第2層)的移植。
系統移植:讓Android操做系統在某一個特定硬件平臺上運行。移植 CPU架構和Linux驅動。
/proc是系統內核的映像。
Linux內核版本號組成:主版本號,次版本號,修訂版本號,微調版本號,爲特定的Linux系統特別調校的描述。
驅動針對的對象是存儲器和外設,而不是針對CPU核。
Linux將存儲器和外設分爲3大類:字符設備,塊設備,網絡設備。
字符設備與塊設備:
相同點:對用戶而言,它們都使用文件系統的操做接口open、close、read、write等函數進行訪問。
不一樣點:字符設備指那些必須以串行順序依次進行訪問的設備,如鼠標、鍵盤等。不經 過系統的快速緩衝。
塊設備能夠用任意順序進行訪問,以塊爲單位進行操做,如硬盤、軟驅等,經 過系統的快速緩衝。
任何的Linux驅動都有一個裝載函數和一個卸載函數,分別經過module_init和module_exit宏指定
http://www.cnblogs.com/875825a/