當前位置:首頁 » 編程軟體 » android源碼編譯效率提升

android源碼編譯效率提升

發布時間: 2022-10-10 15:49:06

1. android 編譯伺服器大概需要什麼配置 5

工欲善其事,必先利其器」,要想提高團隊整體的開發效率,盡可能的提前完成開發任務,必須要配備一套配置給力的開發設備。源碼編譯伺服器硬體配置的高低,直接影響著系統固件升級和ROM版本發布的速度和效率。

由於目前Google發布的最新版本的Android系統源碼體積越來越大,因此,越是定製高版本的系統,對編譯伺服器的硬體配置要求就越高,這里根據調研,給出目前Android
6.0及以下版本源碼定製開發的基本配置,供大家參考。

首先進行一波企業級android源碼編譯伺服器的推薦,這類推薦網上絕無僅有,這還是我進行了很久的調研,詢問很多朋友【其中包括不乏6年以上系統開發的大牛,也有之前公司的主管等】,也查了很多資料才挑選出來,提出需求後讓上級審批,目前上一級已經認可比審批,等待領導簽字。給力。

詳細

2. 自己可以編譯安卓源碼嗎

用最新的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內核問題,解決方法如下:
執行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通過使用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源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.

    3. 如何加速Android源碼的編譯

    每個編譯單元都會產生一個obj文件,然後所以這些obj文件會被link到一起,並且這個過程很難並行

    4. 如何編譯android手機源碼

    編譯android系統源碼准備工作:
    下載android源碼
    在windows上用gitbash ,git clone 下載代碼
    在linux上這樣下載
    創建~/bin目錄,用來存放repo程序,如下:

    $ cd ~
    $ mkdir bin
    初始化repo
    repo是android對git的一個封裝,簡化了一些git的操作。
    創建工程目錄:
    $ mkdir android
    $ cd android
    下載repo腳本並使其可執行:
    $ curl http://android.git.kernel.org/repo >~/bin/repo
    $ chmod a+x ~/bin/repo
    repo初始化:
    $ repo init -u git://android.git.kernel.org/platform/manifest.git
    在此過程中需要輸入名字和email地址。初始化成功後,會顯示:
    repo initialized in /android
    在~/android下會有一個.repo的隱藏目錄。
    5)同步源代碼
    $ repo sync
    這一步要很久很久。
    安裝linux系統,推薦ubuntu,圖形界面
    安裝編譯需要的支持包
    $ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
    安裝java6.0
    $ sudo apt-get install sun-java6-jdk
    配置java環境
    sudo gedit ~/.bashrc

    末尾加上

    JAVA_HOME=/usr/lib/jvm/java-6-sun
    JRE_HOME=${JAVA_HOME}/jre
    export ANDROID_JAVA_HOME=$JAVA_HOME
    export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export JAVA_HOME;
    export JRE_HOME;
    export CLASSPATH;
    HOME_BIN=~/bin/
    export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};
    sudo source ~/.bashrc
    是環境變數生效

    編譯android源碼,並得到~/android/out目錄

    $ cd ~/andoird
    $ make
    這一過程很久。
    這就編譯結束了

    5. android源碼編譯問題

    應該是gcc編譯器的版本問題,cm那幫人總喜歡高版本的,你自己用4.8或4.9交叉編譯試一下

    6. android編譯源碼,需要生成odex嗎

    不是必須的

    你這是編譯源碼,只需要編譯生成apk就行。
    odex是從apk中提取的可運行文件,是class.dex通過dex優化過程將其優化生成的。主要的是為了提高程序的運行速度,如果沒有odex的話,系統要從apk包中提取dex再運行。
    當然如果你想為了刷完機首次進入系統的時間縮短一些,可以生成odex。
    我們當時做手機的時候就是.apk和.odex一起生成的,但是在我們後續系統應用開發的時候都是把odex刪了,因為如果我們新推一個系統apk是,原先的odex會和新的系統apk沖突

    7. 如何高效閱讀android反編譯後的源碼

    一、工具准備:apktool , dex2jar , jd-gui
    二、使用dex2jar + jd-gui 得到apk的java源碼
    1.用解壓工具從 apk包中取出 classes.dex 文件
    用命令(dex2jar.bat classes.dex)得到一個 jar文件
    2.用jd-gui反編譯工具將得到.jar文件反編譯成.java文件
    三、使用apktool得到apk的xml文件

    1. 用命令(apktool d xxx.apk xxx_xml)反編譯xxx.apk包2.從 xxx_xml 文件夾得到xml文件四、第二步 得到的程序源代碼 和 第三步 得到的xml文件組合下,即可得到完整的apk源碼。

    五、應用: 漢化/去廣告,加 values-zh-rCN, values-zh-rTW, values-de, values-fr

    1.在步驟三的文件夾xxx_xml/res/ 下, 建文件夾: values-zh-rCN,values-zh-rTW

    2.1復制valuesstrings.xml 到 values-zh-rCN 並翻譯.

    2.2 去廣告見;

    3.重建APK,用命令(apktool b xxx) ,輸出到ABC/dist/out.apk

    或命令( apktool b xxx out.apk)

    詳細代碼

    8. 如何搭建android源碼編譯環境

    1
    編譯Android 源代碼,Android官方推薦64位的ubuntu系統,最好是10.04的,對於10.10、11.10、12.04版本的ubuntu系統也是可以,但是小編一直習慣使用10.04的,所以幾年來一直沿用至今

    請不要使用32位的Ubuntu系統,更不要使用10.04以下的ubuntu系統,不然編譯會出現很多都問題,會浪費更多的時間,有的比較難解決,對於新人來說,還不如重新安裝一個64位的ubuntu系統

    下面小編來說說怎麼樣查看當前安裝好的ubuntu系統是多少位的
    按照下圖所示的方法打開終端,然後輸入命令並執行 uname -ar,在最後輸出的信息中如果有amd64或者 x86_64 字樣,那麼就說明是64位的系統了,否則就是32位的系統了

    END
    安裝jdk
    1
    jdk的安裝,雖然Android官方還是有介紹,現在jdk的安裝已經不支持使用添加源,然後用命令安裝了,只能取java官網下載jdk,然後安裝,然後將jdk的路勁添加到環境變數中,具體的安裝和添加變數的方法,可以查看本文參考資料中的文檔介紹,這里就不過多說明了

    另外需說明的是,對於2.3版本以後的Android,需要使用jdk6,即jdk1.6,而不要使用jdk1.7的

    2
    對於安裝好的jdk,並且添加了環境變數,我們可以輸入並執行命令java -version 來查看jdk版本,若是有類似下面的信息輸入,那麼說明jdk安裝成功了

    END
    安裝編譯所需的工具
    1
    對於10.04的系統,我們只需要安裝下面這些軟體工具就可以了,直接復制到終端中,然後回車執行安裝就ok,安裝前保持電腦正常連接網路
    sudo apt-get install git-core gnupg flex bison gperf build-essential \
    zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
    x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
    libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
    libxml2-utils xsltproc

    2
    對於10.10的ubuntu系統,需要先安裝下面的工具軟體,直接輸入執行下面的命令就可以安裝:
    sudo apt-get install git-core gnupg flex bison gperf build-essential \
    zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
    x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
    libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
    libxml2-utils xsltproc

    3
    之後使用下面的命令做一個軟鏈接文件:
    sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

    4
    對於11.10的ubuntu系統,需要先安裝下面的工具,輸入並執行下面的命令:
    sudo apt-get install git-core gnupg flex bison gperf build-essential \
    zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
    x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
    libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
    libxml2-utils xsltproc

    5
    然後再安裝這個對於11.10系統特別需要的工具
    sudo apt-get install libx11-dev:i386

    END
    設置高速緩存加快編譯速度
    設置告訴緩存可以加快我們的編譯速度,對於配置不是很高的電腦,最好是進行這個設置,這樣可以為我們節約很多都時間

    先用vi或者gedit軟體打開宿主目錄下的.bashrc文件,然後在文件的最後添加:
    export USE_CCACHE=1
    之後保存退出,重新登陸系統,使設置生效

    在終端中,切換到源碼根目錄中,然後執行下面的命令,設置ccache的大小
    prebuilts/misc/linux-x86/ccache/ccache -M 50G

    其實ccache就是一個執行文件,後面的-M和50G是傳遞給ccache的參數,表示設置50G的緩存空間,這個大小可以根據我們的時間需要來修改

    9. 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

    然後運行模擬器

    熱點內容
    內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
    編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:374
    linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:610
    java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
    linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
    砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
    安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
    為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
    網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
    接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371