Re: [問題] Android 核心、源碼、系統?
謝謝aimw0202大詳細的回覆:)
所以AOSP最底層的,Kernel是各家廠商再客制化的東西
我以為是反過來:P
SD卡的部份不是要使用SD卡,那個我還不太會描述就先算了^^;
推荐的那本書網路上好像都沒得買了,我會再去找找看其他通路,很謝謝推荐!
底下補充一下我在做什麼,順便請教一下編譯source code的問題:
我編譯kernel比如是因為要開啟rndis module;想要編譯source code比如目前是想使用
一些分析工具來改進我的程式碼效能。
分析工具上網看到有oprofile和perf。
oprofile也是在kernel裡打開,可是oprofile所產生的結果要在PC上打指令觀看(如果
我理解沒錯誤的話),只是我不曉得如何能讓PC使用那些opreport指令,看過一些文件沒
嘗試成功。又看到說ubuntu 12.04已經不支援oprofile,所以我就改嘗試perf。
我看到perf要使用的話似乎是必須透過build source code來產生一些驅動檔,再push到
device上使用。只是以往build source code都會卡在某些步驟失敗,這次又一樣卡住了
..@@
教導使用perf的文件:
http://lxr.free-electrons.com/source/tools/perf/Documentation/android.txt
在I-(b)-2這段 ./build/tools/build-ndk-sysroot.sh --abi=arm 出現錯誤
ANDROID_PRODUCT_OUT is not defined in your environment. Aborting
所以也沒辦法往下make了...請教一下這個錯誤怎麼解決呢?隨便給路徑可以嗎?
謝謝回覆:)
※ 引述《aimw0202 (等待那天)》之銘言:
※ 引述《hyhjcjy (翊玥)》之銘言:
: 各位前輩們好,
: 在學習android的時候有些搞不清楚的地方:最近常常在需要一些功能的時候會遇到
: 需要編譯kernel、編譯source code的狀況,不知道android kernel source和
: android source code有什麼用途差別?為什麼有時候要編譯kernel,有時候要編譯
: source code?
所謂的Kernel,泛指在framework之下階層,大部分是在最底BootLoader+BSP Driver那塊
如果你是單純AP開發者,Kernel基本上不太需要去編譯。
一隻出貨的手機,Kernel已經包含了原生Google Source Code(ex 4.x)+Vendor(Qualcomm
、Broadcom、MTK...),Vendor商會處理BT、Wifi、Camera等等driver。
當一隻手機driver出問題的時候 才需要從Kernel編譯image,在編譯到上層framework+
AP。如果driver沒問題,像一般app開發者,其實只須build AP層,像Eclipse Build apk
: 我們常說的手機是android x.x版的系統,x.x就是source code的版本號嗎?
是的,我們可以統稱為android 4.x版本的source code
: 我看到網路上有列出android x.x是基於linux y.y kernel,那kernel版本跟
: source code 版本有一定要對應的關係嗎?我可以把某個android版本換kernel或是把
: 某個kernel上使用的android版本換掉嗎?
詳細對應關係,我想妳能要自己找。
當然可以,只是穩定性問題,不過這種問題通常是vendor商在傷腦筋
不過我想妳不需要特地傷腦筋,除非你在聯發科XD
: 我想應該可以?只是不知道我編譯kernel和編譯source code,又是產生什麼去替換什麼?
: (因為我目前編譯source code都沒成功過,不知道會產生什麼)
: 我使用學習工具的是安裝了Android 2.x OS的開發版,在SD卡中有一些系統相關的檔案和
: 資料夾以及一些boot用的image(uImage),我知道某些功能可以經由編譯kernel所產生的
: uImage檔,替換原本的uImage檔,就能啟動某些功能。但不知道編譯source code的話是?
: 還有,在SD卡中那些系統相關的檔案和資料夾,也不是source code也不是kernel code,
: 那這些東西又是從哪來的呢?如果壞掉了,又要從哪裡下載呢?
我這樣說吧,MTK拿google kernel的source code,tune出她們vendor商的kernel source
code,當然Qualcomm等等也是如此,編譯出來的image當然只能是MTK晶片的手機才會正常
操作。
你使用google原生的boot image,只是個殼,本身它的wifi BlueTooth與Camera等是沒有
Driver的,當然不能正常運作。SD卡我不知道是不是也是類似如此,要請這塊的專家補充。
只是我搞不懂 你一直想改kernel build image做什麼XD,因為這是vendor商在做的工作
SD卡的資料大部分都放在/mnt/sdcard/ 當然你可以透過framework層改寫他檔案產出路徑
例如,我改寫framwork讓它出現在/mnt/sdcard2/下,但是權限問題可能要在kernel改
(權限問題我忘了XD rwx-rwx-rwx之類的)
我相信sd卡應該有Driver,不過是goole在own還是vendor再own不清楚
: 我可能有點初學,也不確定這樣問對不對,所以上網也好像關鍵字下不對,找不到可以解
: 答這些迷惑的資訊...
: 希望前輩們可以提供解答或是可以閱讀什麼資料來釐清這些觀念!
: 謝謝回覆哦:)
http://www.books.com.tw/products/0010470576
買下去就對了...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 101.10.109.199
推
12/27 20:30,
12/27 20:30
→
12/27 20:30,
12/27 20:30
→
12/27 20:30,
12/27 20:30
→
12/27 22:01,
12/27 22:01
推
12/28 22:38,
12/28 22:38
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.61.240.28
推
12/30 17:21, , 1F
12/30 17:21, 1F
→
12/30 17:22, , 2F
12/30 17:22, 2F
→
12/30 17:23, , 3F
12/30 17:23, 3F
→
12/30 17:23, , 4F
12/30 17:23, 4F
→
12/30 17:24, , 5F
12/30 17:24, 5F
→
12/30 17:24, , 6F
12/30 17:24, 6F
推
12/30 17:47, , 7F
12/30 17:47, 7F
→
12/30 17:48, , 8F
12/30 17:48, 8F
→
12/30 19:24, , 9F
12/30 19:24, 9F
謝謝兩位大大~ 我有做lunch的動作^^
我覺得應該是branch的問題。文件上面說要用master,我為了配合開發板使用了別的
branch,似乎檔案不太完整所以build-ndk-sysroot.sh的設置會失敗。
我重新下載master之後那行指令就可以過了!
後面make的時候還是有遇到一點問題,同下面連結(含解決方式)
http://ppt.cc/mhzB
是java版本的問題,照著 http://ppt.cc/E1OF 處理後,目前看起來在順利make中,
期待結果,不知道用不同branch編出來的是不是都適用:)
話說我也對java版本很疑惑啊,我是按照Android官網 http://ppt.cc/-9sP
安裝sun-java6-jdk,卻沒辦法直接用apt-get install sun-java6-jdk,
還是透過這篇 http://ppt.cc/jCSS 第2段安裝Java的方式才成功。雖然裝了
sun-java6-jdk,卻有上面遇到的問題,還要手動去java官網找檔案,真是好迷惑
這一堆java :O
※ 編輯: hyhjcjy 來自: 61.61.240.28 (12/31 11:37)
推
01/02 09:59, , 10F
01/02 09:59, 10F
→
01/02 10:00, , 11F
01/02 10:00, 11F
→
01/03 10:26, , 12F
01/03 10:26, 12F
→
01/03 10:27, , 13F
01/03 10:27, 13F
→
01/03 10:28, , 14F
01/03 10:28, 14F
→
01/03 14:00, , 15F
01/03 14:00, 15F
→
01/03 14:00, , 16F
01/03 14:00, 16F
→
01/03 14:02, , 17F
01/03 14:02, 17F
→
01/03 14:03, , 18F
01/03 14:03, 18F
→
01/03 14:03, , 19F
01/03 14:03, 19F
→
01/07 17:45, , 20F
01/07 17:45, 20F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):