安卓源碼編譯
編譯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
然後運行模擬器
③ 安卓怎麼使用修改過的源碼編譯程序
1、Android的文件系統結構是怎樣的,我們安裝的程序放在那裡?
編譯Android源碼之後,在out/target/proct/generic一些文件:
ramdisk.img、system.img、userdata.img、 system、 data、root
其中, system.img是由 system打包壓縮得到的, userdata.img是由 data打包壓縮得到的。
ramdisk.img是模擬器的文件系統,把ramdisk.img解壓出來可知道,ramdisk.img里的文件跟root文件夾的文件基本一樣。模擬器裝載ramdisk.img並解壓到內存,接著分別把system.img和userdata.img掛載到 ramdisk下的system和data目錄。我們編譯出來的應用程序就是放在system/app下的。用戶安裝的程序則是放在data/app下。
2、Android SDK和android源碼能為我們提供什麼工具?
AndroidSDK提供有很多工具,如adb,ddms,emulator,aapt等,並提供kernel-qemu、ramdisk.img、system.img、userdata.img。因此,只要有android SDK,我們就可以在模擬器上把android跑起來。
Android源碼可以編譯出android SDK、adb等工具、android文件系統,以及ADT插件,也就是說,我們可以從android源碼編譯出所有android相關的東西。
3、 把Android源 碼」make」之後會生成許多工具和android文件系統(system.img等),我們又可以使用「makesdk」來生成android SDK,android
SDK也包括有工具和android文件系統(system.img等),而原來安裝的時候我們也安裝了androidSDK,那麼我們在開發時應該使用那些工具和android文件系統呢?
④ 如何將源代碼編譯後的文件編譯到android中
1.將應用程序源碼復制進Android源碼目錄中(提前編譯好源碼) 2.使用build/envsteup.sh 配置shell - mm TARGET_PRODUCT=proct_name 或直接./build_android.sh 也能完成編譯。 3.在源碼目錄:out/target/proct/proctname/obj/APPS/test_cert_intermediates 下有三個文件:package.apk package.apk.unsigned package.apk.unaligned 將package.apk.unsigned復制出來,單獨進行sign. 4.在Windows下進行sign: jarsigner -verbose -keystore youkey.keystore d:\package.apk.unsigned youkey 5.zipalign -v 4 d:\package.apk.unsigned d:\package.signed.apk
⑤ 有手機的源代碼,如何編譯安卓4.4的系統
代碼編譯…
恐怕這個不是隨隨便便在這里幾句話就能說明白的…
首先要下載安卓4.4的內核,
然後要把廠商的手機源代碼編譯進去,
還要自己寫腳本,
很多都是很技術的活。
lz確定能hold住么?
⑥ 編譯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,在這個目錄下進行編譯
⑦ 編譯android源代碼的目的是什麼,編譯後會得到什麼東西
定製嘛,就是按你自己的要求設定方案,因為android是開源的,而且google提供了很完備的開發框架,有java基礎的人可以很快上手。
源碼定製估計是現在的android的市場一個發展方向,因為以前都是山寨機,軟體硬體一個樣,而現在智能機在硬體方面基本是差不多的,而android軟體框架也是一樣,但是開發比較簡單,門檻很低,所以一些公司提供了定製服務,改動下源碼提供個性化服務。個人理解,你可以繼續網路了解下。
至於你想學開發android,先看下java,應用層是用java開發的,而且你以後也可以自己開發些小應用鬧著玩。參考書方面很多,什麼android應用開發揭秘啊,adk開發範例大全啊,精通android啊什麼的,可以在網上找電子檔或者別人的教學視頻,很多的。
⑧ android源碼編譯後如何製作成rom
SDK是開發包,不是完整源代碼吧。你可能需要在Linux上repo完整4.3源代碼(25G左右,精簡後8個多G)。如果手機內核不是3.0以上可能還要重新編譯更新內核(Android4.3貌似一定要3.0以上內核版本)。其實我也不知道如何製作Rom,但略懂下載編譯Android源代碼和內核源代碼,也想知道如何從源代碼製作rom,希望能與樓主交流!
⑨ 為什麼android源碼還需要編譯
android源碼中有著許多的源代碼,其中有c和c++編寫的也有java編寫,這些代碼需要通過重新編譯後才能在android機器上運行的!當然你修改源碼,改完源碼後還是需要對源碼進行編譯的編譯的!android系統源碼的整體編譯需要很長時間,所以一般否是分開來編譯的!這樣縮短了編譯的等待時間,而且也實現了不同人對不同板塊代碼的修改和編譯的分工了!
⑩ 自己可以編譯安卓源碼嗎
用最新的Ubuntu 16.04,請首先確保自己已經安裝了Git.沒安裝的同學可以通過以下命令進行安裝:
sudo apt-get install git git config –global user.email 「[email protected]」 git config –global user.name 「test」
其中[email protected]為你自己的郵箱.
簡要說明
android源碼編譯的四個流程:1.源碼下載;2.構建編譯環境;3.編譯源碼;4運行.下文也將按照該流程講述.
源碼下載
由於某牆的原因,這里我們採用國內的鏡像源進行下載.
目前,可用的鏡像源一般是科大和清華的,具體使用差不多,這里我選擇清華大學鏡像進行說明.(參考:科大源,清華源)
repo工具下載及安裝
通過執行以下命令實現repo工具的下載和安裝
mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo
補充說明
這里,我來簡單的介紹下repo工具,我們知道AOSP項目由不同的子項目組成,為了方便進行管理,Google採用Git對AOSP項目進行多倉庫管理.在聊repo工具之前,我先帶你來聊聊多倉庫項目:
我們有個非常龐大的項目Pre,該項目由很多個子項目R1,R2,...Rn等組成,為了方便管理和協同開發,我們為每個子項目創立自己的倉庫,整個項目的結構如下:
這里寫圖片描述
執行完該命令後,再使用make命令繼續編譯.某些情況下,當你執行jack-admin kill-server時可能提示你命令不存在,此時去你去out/host/linux-x86/bin/目錄下會發現不存在jack-admin文件.如果我是你,我就會重新repo sync下,然後從頭來過.
錯誤三:使用emulator時,虛擬機停在黑屏界面,點擊無任何響應.此時,可能是kerner內核問題,解決方法如下:
執行如下命令:
通過使用kernel-qemu-armv7內核 解決模擬器等待黑屏問題.而-partition-size 1024 則是解決警告: system partion siez adjusted to match image file (163 MB >66 MB)
如果你一開始編譯的版本是aosp_arm-eng,使用上述命令仍然不能解決等待黑屏問題時,不妨編譯aosp_arm64-eng試試.
結束吧
到現在為止,你已經了解了整個android編譯的流程.除此之外,我也簡單的說明android源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.