導航:首頁 > 源碼編譯 > hal看不看源碼

hal看不看源碼

發布時間:2024-02-08 04:17:33

Ⅰ 請教關於android移植的問題

一、概述

移植的工作一般的主要不外乎做以下這些事情:

A、有的現成好的直接選配

這個工作主要是熟悉該源碼編譯系統,就是源碼自動化編譯是怎麼組織的。Linux環境下不外乎是Makefile及腳本。所以得熟悉這兩個方面的知識。

B、有的不好的代碼修改好後選配

這個工作不僅僅是要熟悉編譯系統,還要熟悉別人的代碼結構。一般牛X的軟體架構也牛X,所以主要是學習牛X的人設計的代碼結構,所謂的框架。框架懂了,再熟悉裡面的細節,就可以改了。

C、添加新代碼並選配

這個工作同樣要熟悉編譯系統及源碼結構。這個時候對框架可能不能僅僅限於知道,而且要深刻理解,按照牛人的思路來設計代碼。

所以Android的移植就可以簡單的說成有以下方面的工作:

A、熟悉android的編譯系統

主要是.mk文件的規則,這個官網及源碼中有文檔說明(development/Ndk/Docs/android-mk.txt),得好好研究清楚。

就源碼中的腳本,譬如:build/envsetup.sh

B、熟悉android的源碼目錄結構

system:根文件系統相關的一些代碼

packages:android的一些APP的源碼

frameworks:framework層代碼,不改動android源碼的話,主要就是app層調用hal層代碼的介面實現的源碼

hardware:hal層代碼

devices和vendor:廠商定製代碼

build:編譯系統的一些mk文件

out:是編譯輸出目錄

主要的一些目錄就是上面了,對於初學的話,差不多就足夠了。當然所有的都熟悉是最好了。

C、三個層次的代碼

要向android添加代碼的話,一般主要熟悉三個層次的代碼就差不多了。

APP<--->framework<--->HAL

APP:應用程序層次,主要是java代碼,通過跨平台的java編寫的代碼來完成需求邏輯對系統提出功能性要求,讓系統去完成相應的動作。

framework:cpp代碼,主要是提供給java調用的介面,這些介面通常是去調用到hal層的代碼。

HAL:登記一組供framework回調的函數,來完成一定的功能。

Ⅱ 拿到Android 項目源碼後,如何才能以最高效的速度看懂

1.顯然Eclipse不是閱讀Android源碼的好工具,不流暢,搜索低效,繼承性關系/調用關系都無法有效查看。推薦Source Insight,在這個工具幫助下,你才可以駕馭巨大數量的Android 源碼,你可以從容在Java,C++,C代碼間遨遊,你可以很快找到你需要的繼承關系。
順便,我們公司一直是Windows+Linux+Samba的工作模式。
2.宏觀上看,Android源碼分為功能實現上的縱向,和功能拓展上的橫向。在閱讀源碼時需要把握好著兩個思路。
譬如你需要研究音頻系統的實現原理,縱向:你需要從一個音樂的開始播放追蹤,一路下來,你發現Jni調用解碼庫,共享內存的創建和使用,路由的切換,音頻輸入設備的開啟,音頻流的開始。
3.Android的功能模塊絕大部分是C/S架構,你心裡一定需要有這個層級關系,你需要思路清晰地找到Server的位置,它才是你需要攻破的城。然後你才能發現HAL和Kernel一層層地剝離。
我大概在三個月前閱讀完Android UI系統的源碼,這是Android最復雜的部分,沒有之一。
我需要先找一個開頭,和UI有直接關系的就是最常見的Activity了吧,我就從它開始解剖。
我從Activity的創建入手,尋找Activity真正的創建位置,setContentview這個方法很明顯和UI有關,這兩方面一結合,我發現了ViewRoot和WindowManager的身影,沿著WM和WMS我發現了Surface,以及draw的函數,它居然在Activity 創建時出現的DeCorView上畫東西。藉助Source Insight我總結了UI Java層的橫向靜態圖。
完成這個靜態UML,我覺得我可以開始功能實現上追蹤了,這部分主要是C++的代碼(這也是我堅定勸阻的放棄Eclipse的原因),我沿著draw函數,看到了各個層級的關系,SurfaceSession的控制和事務處理,SharedBuffer讀寫控制,彪悍的SurfaceFlinger主宰一切,OpenGL ES的神筆馬良。FrameBuffer和FrameBufferDevice的圖像輸出。一氣呵成的完成了。

閱讀全文

與hal看不看源碼相關的資料

熱點內容
楊凝冰改編綠帽子 瀏覽:545
公主為奴txt下載 瀏覽:30
將女人收服成神奇寶貝的小說 瀏覽:303
縱情似海4 瀏覽:920
雪花霜電影完整版 瀏覽:681
虛無未判鴻蒙未開 瀏覽:513
高尺度bl電影 瀏覽:504
葉凡司空嫣然小說名叫什麼 瀏覽:1002
主角連女兒都上的小說 瀏覽:44
主角有投資系統的小說 瀏覽:835
原著小智為主角的小說 瀏覽:165
女主叫簡寧男主姓席 瀏覽:729
女主重生男主姓陸軍婚 瀏覽:854
看片小網站 瀏覽:195
穿越之一女n蛇王 瀏覽:677
曹查理吃千年人參是什麼電影 瀏覽:396
《色變天下》女尊 瀏覽:416
碧藍航線同人小說 瀏覽:761
sci謎案集小說全集+番外TXT下載 瀏覽:98
最經典的啄木鳥電影 瀏覽:295