久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Android編譯環(huán)鏡的搭建和編譯

 James130 2015-10-12
  • 第一部分:Android開發(fā)環(huán)鏡的硬件和軟件平臺

    一,、開發(fā)服務器配置

    我用的是自己家里的電腦搭建的編譯環(huán)鏡,,主機配置為 i5-3230,,4g DDR3 和 500g 硬盤。

    二,、軟件硬件平臺選取

    選取全志 A20 的硬件方案,,作為最基本的硬件平臺。使用全志提供的Android 4.4 SDK開發(fā)包,。

    第二部分:構(gòu)建Android編譯環(huán)鏡

    一,、開始構(gòu)建Linux編譯環(huán)鏡

    1. 我安裝的是Ubuntu Kylin 14.04 AMD64版本(官網(wǎng)上是說要用64位的系統(tǒng)編譯)。

    2. 編譯Gingerbread(2.3.x)以上android版本(包含主流版本),,應使用64位系統(tǒng)環(huán)境,。

    3. 在虛擬機上是可以編譯android的,但是至少要保證16G的RAM或SWAP和不少于30G的磁盤空間,。

    4. 安裝以下工具:Python 2.6-2.7,,GNU Make 3.81-3.82,JDK 6(sun-java6-jdk),,Git 1.7 or newer,。

    備注:1)Python的下載路徑:http://www./download/ ,官網(wǎng)上是推薦安裝 2.x 的版本,,說 3.x 的版本與repo不兼容,,如下官網(wǎng)的截圖所示:

    \

    但是在Ubuntu Kylin 14.04 的系統(tǒng)中已經(jīng)自帶有 Python 3.4的版本,我就沒有安裝了,,但在后面的使用和編譯過程中并沒有發(fā)現(xiàn)不兼容的情況,,所以如果有朋友若遇到不兼容的情況的話可以把它換成 2.x 版本的。如果沒有問題就不用換了,。Python的安裝方法可以使用 sudo apt-get install python 安裝,,或者在上面的下載網(wǎng)頁上下載 .tgz 的包,下載 .tgz 包后的安裝方法如下:

    例如安裝在opt下:

    tar -zxvf Python-2.7.6.tgz
    cd Python-2.7.6
    ./configure --prefix=/opt/python2.7.6
    make && sudo make install

    由于Ubuntu默認就安裝了PYTHON,,需要設置PATH,,使得剛安裝的PYTHON先被搜索到:(可以編輯到~/.bashrc)
    export PATH=/opt/python2.7.6/bin:$PATH

    2)make的下載路徑:http://ftp./gnu/make/,也可以直接使用 sudo apt-get install make 進行安裝,。

    二,、安裝JDK

    我是按官網(wǎng)上的步驟安裝的,后來發(fā)現(xiàn)Android 4.4的編譯需要在JDK6的基礎上,,所以后來又換成JDK6了:

    1.$ sudo apt-get update
    2.$ sudo apt-get install openjdk-7-jdk

    由于Ubuntu默認就安裝了openjdk,,所以通過下面的指令來修改默認的JDK:

    1.$ sudo update-alternatives --config java
    2.$ sudo update-alternatives --config javac
    備注:官方的推薦JDK版本:

    Java 6: for Gingerbread through KitKat
    Java 5: for Cupcake through Froyo

    三、安裝依賴包

    在Ubuntu Kylin 14.04 上我安裝好官方上所提到的12.04的依賴包后,在編譯lichee時報下面的錯誤:

    "mkimage" command not found - U-Boot images will not be built

    然后我使用 sudo apt-get install uboot-mkimage去安裝uboot-mkimage包,,但發(fā)現(xiàn)在該系統(tǒng)上沒有這個包,,安裝失敗,然后提示安裝u-boot- tools:i386 和 u-boot-tools這兩個包,,我把這兩個包都安裝好之后,,lichee編譯就可以通過了。所以在14.04的系統(tǒng)比12.04需要多安裝這兩個包,, 如下所示:

    1.$ sudo apt-get install git gnupg flex bison gperf build-essential \
    2.zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
    3.libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
    4.libgl1-mesa-dev g++-multilib mingw32 tofrodos \
    5.python-markdown libxml2-utils xsltproc zlib1g-dev:i386 u-boot-tools:i386 u-boot-tools
    6.$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

    根據(jù)官方文檔 Ubuntu 12.04需要的安裝包為:

    1.$ sudo apt-get install git gnupg flex bison gperf build-essential \
    2.zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
    3.libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
    4.libgl1-mesa-dev g++-multilib mingw32 tofrodos \
    5.python-markdown libxml2-utils xsltproc zlib1g-dev:i386
    6.$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
    Ubuntu 10.04 -- 11.10 需要安裝的依賴包為:
    1.$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
    2.zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
    3.x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
    4.libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
    5.libxml2-utils xsltproc
    On Ubuntu 10.10:
    1.$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
    On Ubuntu 11.10
    1.$ sudo apt-get install libx11-dev:i386
    四,、配置USB設置:

    The recommended approach is to create a file /etc/udev/rules.d/51-android.rules (as the root user) and to copy the following lines in it. <username> must be replaced by the actual username of the user who is authorized to access the phones over USB.

    01.# adb protocol on passion (Nexus One)
    02.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
    03.# fastboot protocol on passion (Nexus One)
    04.SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
    05.# adb protocol on crespo/crespo4g (Nexus S)
    06.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
    07.# fastboot protocol on crespo/crespo4g (Nexus S)
    08.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
    09.# adb protocol on stingray/wingray (Xoom)
    10.SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
    11.# fastboot protocol on stingray/wingray (Xoom)
    12.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
    13.# adb protocol on maguro/toro (Galaxy Nexus)
    14.SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
    15.# fastboot protocol on maguro/toro (Galaxy Nexus)
    16.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
    17.# adb protocol on panda (PandaBoard)
    18.SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
    19.# adb protocol on panda (PandaBoard ES)
    20.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"
    21.# fastboot protocol on panda (PandaBoard)
    22.SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
    23.# usbboot protocol on panda (PandaBoard)
    24.SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
    25.# usbboot protocol on panda (PandaBoard ES)
    26.SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
    27.# adb protocol on grouper/tilapia (Nexus 7)
    28.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
    29.# fastboot protocol on grouper/tilapia (Nexus 7)
    30.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"
    31.# adb protocol on manta (Nexus 10)
    32.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"
    33.# fastboot protocol on manta (Nexus 10)
    34.SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"

    五、配置ccache

    在你的.bashrc文件中增加下面的語句:

    1.export USE_CCACHE=1

    這時默認的緩存路徑是在~/.ccache,,當然你也可以保存你自己定義的路徑中,,自己可以設置你想要存放的路徑,在你的.bashrc文件中加入你需要存放的路徑:

    1.export CCACHE_DIR=<path-to-your-cache-directory>

    我是就存放在我的根目錄下的,,即:CCACHE_DIR=~/.ccache

    建議的ccache大小是50~100G,,在你把源代碼下下來之后在編譯之前需要在android的目錄下執(zhí)行下面的這句代碼,,這樣才能做緩存:

    1.prebuilts/misc/linux-x86/ccache/ccache -M 50G
    如果編譯的是Ice Cream Sandwich (4.0.x) 或者更舊的版本的話,,那么執(zhí)行下面的這句:
    1.prebuilt/linux-x86/ccache/ccache -M 50G
    這個緩存的部分的話你可以設也可以不設,設了的話就可以起到緩存的作用,,如果你在執(zhí)行make clean后再重新編譯的話就會為你節(jié)省大量的時間,,我有做過實驗,我在沒有設緩存的時候編譯和打包花了58分鐘的時候,,但設了這個緩存后,,發(fā)現(xiàn)只需要 28分鐘,確實大大節(jié)省了時間,。我是在我們的服務器上做的實驗,。

    六、配置輸出路徑:

    可以在你的 .bashrc文件中配置編譯的輸出路徑:

    1.export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>
    如果沒有配置輸出路徑的話,,那么默認的輸出文件是在android/out/target/ 對應的產(chǎn)品下面,,貼上這部分官方的文檔:

    The output directory for each separate source tree will be named after the directory holding the source tree.

    For instance, if you have source trees as /source/master1 and /source/master2 and OUT_DIR_COMMON_BASE is set to /output, the output directories will be /output/master1 and /output/master2.

    It's important in that case to not have multiple source trees stored in directories that have the same name, as those would end up sharing an output directory, with unpredictable results.

    This is only supported on Jelly Bean (4.1) and newer, including the master branch.

    第三部分:安裝repo,下載源代碼

    一,、安裝repo

    在你的根目錄下創(chuàng)建bin文件夾:

    1.$ mkdir ~/bin
    2.$ PATH=~/bin:$PATH
    下載repo,,并增加可執(zhí)行權(quán)限:
    1.$ curl http://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    2.$ chmod a+x ~/bin/repo
    二、下載源代碼,,全志的源代碼分成兩部分,,分別為lichee和android部分:

    1. 下載到我自己的筆記本上(我是把源碼放在/home/huangph/目錄下的),下載步驟如下:

    1)創(chuàng)建lichee和android目錄用于分別存放lichee和android代碼

    1.$ mkdir a20_kitkat
    2.$ cd a20_kitkat
    3.$ mkdir lichee
    4.$ mkdir android
    2)連服務器([email protected]是服務器的地址)
    1.$ ssh-keygen -t rsa
    2.$ ssh-copy-id -i ~/.ssh/id_rsa.pub xxxx@192.168.1.xx
    3.$ 輸入服務器的密碼
    3)下載lichee代碼
    1.$ cd lichee
    2.$ repo  init -u ssh://[email protected]/a20_44/manifest.git -b kitkat-a20  -m lichee.xml
    3.$ repo sync
    4.$ repo start a20-kitkat-dev  --all  創(chuàng)建分支
    4)下載android代碼
    1.$ cd android
    2.$ repo  init -u ssh://[email protected]/a20_44/manifest.git -b kitkat-a20  -m exdroid.xml
    3.$ repo sync
    4.$ repo start a20-kitkat-dev  --all  創(chuàng)建分支
    下載完畢,。

    2. 如果是直接下載到服務器上,,那就比較簡單,步驟如下:

    1)下載lichee代碼

    1.$ cd lichee
    2.$ repo init -u /a20_44/manifest.git -b kitkat-a20  -m lichee.xml
    3.$ repo sync
    4.$ repo start a20-kitkat-dev  --all  創(chuàng)建分支
    2)下載android代碼
    1.$ cd android
    2.$ repo init -u /a20_44/manifest.git -b kitkat-a20  -m exdroid.xml
    3.$ repo sync
    4.$ repo start a20-kitkat-dev  --all  創(chuàng)建分支
    下載完畢,。

    3. 下面也附上從Google上下載源碼的方法:

    \

    如果你需要下載對應的哪一個舊版本的tag,,可以參考:http://git./

    第四部分:分別編譯lichee和android源代碼

    一,、編譯lichee代碼(wing-xxxxx 通ky"http://www./qq/" target="_blank" class="keylink">qqy+sa3tcTD+7PGo6mjujwvcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">$ cd lichee $ ./build.sh -p sun7i_android -b wing-xxxxx

    二、編譯android代碼:

    1.$ cd android
    2.$ . build/envsetup.sh
    3.$ lunch
    4.$ 18    選擇需要編譯的產(chǎn)品序號或者名稱都行
    5.$ extract-bsp
    6.$ make-j8
    extract-bsp 和 make-j8 這兩個步驟也可以合成一個步驟,,合成 make-all,。編譯完之后將 /lichee/tools/pack/sun7i_android_wing-xxxxx.img 燒到機器上就OK了,大功造成,。

    備注:由于我最初安裝的是 openjdk,,而android的編譯需要 jdk,所以需要安裝jdk后才能編譯android,,下一篇博客我會寫linux下android開發(fā)環(huán)鏡的搭建,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多