淺談Android系統移植、Linux設備驅動


一、Android系統架構

   第一層:Linux內核

             包括驅動程序,管理內存、進程、電源等資源的程序

   第二層:C/C++代碼庫

            包括Linux的.so文件以及嵌入到APK程序中的NDK代碼

  第三層:Android SDK API

           包括用Java編寫的各種Library

  第四層:應用程序

           這是程序員與非程序員都要接觸到的應用程序

二、Android系統移植

首先,了解一個概念HAL(硬件抽象層),它位於第二層,普通的程序庫(.so文件);

Android操作系統:AndroidSDK——>HAL——>Linux驅動;

Linux系統:應用程序——>Linux驅動;

先用一個例子說明一下,例如,為硬件平台增加了一個新型的Wi-Fi模塊,就需要為這個Wi-Fi模塊編寫新的驅動程序,或修改原來的驅動程序,以使得Linux內核可以與Wi-Fi模塊正常交互。

由此可知道,Android系統移植是讓Android操作系統在某一個特定硬件平台上運行,即該操作系統支持硬件平台的CPU架構,要讓Android可以識別平台上的各種硬件,主角就是Linux驅動。

注意:在移植Linux驅動時,主要考慮Linux內核版本,就算Android版本不同,只要Linux內核版本相同,Linux驅動就可以相互替換

三、Linux設備驅動

驅動就是直接和硬件交互的一類程序,負責對硬件進行抽象;提供應用程序可方位的API,只要應用程序通過驅動來訪問硬件,就不需要修改應用程序的源代碼。當有很多型號的打印指令不一樣的打印機,同時被同一個應用程序調用,會出現不能使用的情況,當我們進行了驅動程序的開發,通過接口對類進行抽象,就可以大大降低硬件耦合度過高的情況,通過驅動來訪問打印機。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM