android編譯51源碼
Android源碼目錄下的build/envsetup.sh文件,描述編譯的命令
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
要想使用這些命令,首先需要在android源碼根目錄執行. build/envsetup.sh 腳本設置環境
m:編譯所有的模塊
mm:編譯當前目錄下的模塊,當前目錄下要有Android.mk文件
mmm:編譯指定路徑下的模塊,指定路徑下要有Android.mk文件
下面舉個例子說明,假設我要編譯android下的\hardware\libhardware_legacy\power模塊,當前目錄為源碼根目錄,方法如下:
1、. build/envsetup.sh
2、mmm hardware/libhardware_legacy/power/
編譯完後 運行 make snod
會重新將你改過的模塊打入到system.img中
2. 編譯android源碼5.1.1多大
android源碼5.1.1
很大
3. 編譯 android 源碼 用什麼配置機器
用Android studio編譯最低配置8G內存,i5處理器,才勉強帶的動,要是有經濟條件的,配16G內存,i7處理器,就可以了,7000塊錢
4. Android源碼編譯是干什麼
編譯Android系統。
5. 一個超級大的安卓SDK,解壓之後怎麼關聯到ubuntu14
android sdk包括開發android app所需要的編譯、調試、測試開發工具和API庫。
下載android sdk:
http://developer.android.com/sdk/index.html
在這個下載頁中提供兩種下載方式:
集成了adt的ide和android sdk的包,即包含了android sdk、adt、eclipse的包。下載後,解壓就可以了用了,所有依賴關系統都已設置好了。
僅僅只有android sdk的包。
下載、安裝androidsdk
設置androidsdk環境變數
由於我們需要了解詳細的過程。所以我們目前選擇下載僅僅只有android sdk的包。
安裝、設置:
windows平台下:
下載後,解壓到到目錄:
E:sourceandroidandroid-sdk-windows
設置環境變數:ANDROID_SDK=E:sourceandroidandroid-sdk-windows
linux平台下:
下載集成了的sdk包
k@k-C410:/data/adt-bundle-linux-x86_64-20130917$ ls
eclipse sdk
設置sdk的環境變數:
export ANDROID_SDK=/data/adt-bundle-linux-x86_64-20130917/sdk
放到~/.bashrc文件中。
如果你是新手,看到這里就可以了,下面的內容你可能會看得暈,但是等你看完後面的文章後,再回頭看下面的內容,你就會好理解了.
android sdk瀏覽:
在根目錄中:
AVD Manager.exe:虛擬機管理工具
SDK Manager.exe:sdk管理工具
tools目錄:包括測試、調試、第三方工具。模擬器、數據管理工具等。
build-tools目錄:編譯工具目錄,包含了轉化為davlik虛擬機的編譯工具。
platform-tools目錄:包含開發app的平台依賴的開發和調試工具。包括 adb、fastboot等
platforms/<android-version>目錄:包括android的平台。包含在android.jar庫中。你必須指一個平台為你的編譯目標。
system-images目錄:編譯好的系統映像。模擬器可以直接載入。
sources目錄:androidsdk的源碼目錄
samples目錄:sdk例子
android sdk工具介紹:
SDK Manager.exe:sdk管理工具,用於管理、下載sdk、sdk工具,能及擴展工具。
zipalign:
對齊工具。用於對簽名後的apk包進行對齊。
更多信息可參考《Linux就該這么學》
6. 編譯Android源碼和內核源碼的區別
Android源碼編譯之後生成的是ramdisk.img、system.img和userdata.img。而內核源碼編譯完成之後生成的是ZImage。在一般情況下Android源碼是不帶有內核源碼的,但是帶有一個鏡像,這樣在編譯完Android源碼之後就可以模擬器啟動了,如果要更換系統的內核,此時將高版本的內核源碼進行編譯生成ZImage然後替換Android系統的的鏡像。這樣使用模擬器啟動之後就可以查看內核是否已經被刷新。
請注意,android源碼和kernel源碼是分開下載的
編譯android源碼
進入source目錄下,執行make 即可。
編譯完成後,可以在源碼目錄的out/target/proct/generic/目錄下看到編譯好的ramdisk.img、system.img和userdata.img了。
編譯內核源碼
新建Kernel/goldfish,在這個目錄下進行編譯
7. android編譯源碼後怎樣運行
編譯:
1. 初始化:
source build/envsetup.sh
2. 選擇target
lunch
然後選擇aosp_arm
3.
make -j4
等待大概2個小時,就可以順利編譯完成。
模擬器運行
直接運行emulator,會出現如下錯誤:
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
原因是文件路徑沒有設置,解決辦法添加絕對路徑:
out/host/Linux-x86/bin/emulator -kernel prebuilts/qemu-kernel/arm/kernel-qemu -sysdir out/target/proct/generic/ -system out/target/proct/generic/system.img -ramdisk out/target/proct/generic/ramdisk.img -data out/target/proct/generic/userdata.img -sdcard sdcard.img -scale 0.7 -memory 512 -partition-size 1024
然後運行模擬器
8. Android編譯和運行在手機上使用的系統源碼版本各是什麼版本
如果app是和android系統一起進行編譯,如果想讓app的源碼保持一套,卻能夠同時在android4.1和android4.2下進行編譯。如果app源碼與android系統的版本無關,那麼,不存在問題。
但,如果app的實現代碼與所依賴的framework的版本強相關,譬如,Location相關的API,在android4.1和android4.2上的差異比較大。應用如果是採用4.2的API來實現的,在配合android4.1系統編譯時就會報錯。此時,可以採用在Android.mk文件中,根據PLATFORM_SDK_VERSION的值,在編譯時決定要編入哪些Java文件,源碼中同時保留針對android4.1和android4.2的特有實現。
源碼目錄為:
9. 編譯android源碼時,意外中斷,如何能讓其接著編譯 ,求高手解答
重新編譯,會檢查已經編譯過的,不需要再編譯,沒有編譯過的需要重新編譯
10. 如何單獨編譯Android源碼中的模塊
第一次下載好Android源代碼工程後,我們通常是在Android源代碼工程目錄下執行make命令,經過漫長的等待之後,就可以得到Android系統鏡像system.img了。以後如果我們修改了Android源代碼中的某個模塊或者在Android源代碼工程新增一個自己的模塊,是不是還是執行make命令呢?答案是否定的,Google為我們准備了另外的命令來支持編譯單獨的模塊,以及重新打包system.img的命令。在繼續學習Android源代碼之前,就讓我們先來看看這個命令吧。
一. 首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具: USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh 注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用: - croot: Changes directory to the top of the tree. - m: Makes from the top of the tree. - mm: Builds all of the moles in the current directory. - mmm: Builds all of the moles in the supplied directories. - cgrep: Greps on all local C/C++ files. - jgrep: Greps on all local Java files. - resgrep: Greps on all local res/*.xml files. - godir: Go to the directory containing a file. 這些命令的具體用法,可以在命令的後面加-help來查看,這里我們只關注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。
二. 使用mmm命令來編譯指定的模塊,例如Email應用程序: USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/ 編譯完成之後,就可以在out/target/proct/generic/system/app目錄下看到Email.apk文件了。Android系統自帶的App都放在這具目錄下。另外,Android系統的一些可執行文件,例如C編譯的可執行文件,放在out/target/proct/generic/system/bin目錄下,動態鏈接庫文件放在out/target/proct/generic/system/lib目錄下,out/target/proct/generic/system/lib/hw目錄存放的是硬體抽象層(HAL)介面文件。
三. 編譯好模塊後,還要重新打包一下system.img文件,這樣我們把system.img運行在模擬器上時,就可以看到我們的程序了。 USER-NAME@MACHINE-NAME:~/Android$ make snod
四. 參照Ubuntu上下載、編譯和安裝Android最新源代碼一文介紹的方法運行模擬器: USER-NAME@MACHINE-NAME:~/Android$ emulator 這樣一切就搞定了。