欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Ubuntu Android源碼以及內(nèi)核下載與編譯

 更新時(shí)間:2016年09月06日 14:49:20   作者:相對(duì)靜止  
本文主要介紹Android源碼的下載和編譯,這里整理了相關(guān)資料及如何下載和編譯的詳細(xì)步驟,有需要的小伙伴可以參考下

本教程是基于Ubuntu下Android6.0.1源碼以及內(nèi)核的下載和編譯,記錄一下,以后也就不用自己去找資料,一遍一遍的嘗試了。可以翻墻的,英語好的,直接去AndroidSource.

系統(tǒng)環(huán)境:Ubuntu14.04LTS

Android版本:6.0.1

重要網(wǎng)址

清華大學(xué)鏡像
AndroidSource

下載前的準(zhǔn)備

安裝OpenJdk

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo update-alternatives --config java
java -version

安裝git

sudo apt-get install git-core

安裝額外的組建

sudo apt-get install gnupg flex bison gperf build-essential \
 zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
 libgl1-mesa-dev libxml2-utils xsltproc unzip

組建 功能 介紹網(wǎng)址
gnupg 加密工具 GPG入門教程
flex The Fast Lexical Analyzer 快速的語法分析工具
bison 用于自動(dòng)生成語法分析器程序 自動(dòng)生成語法分析器程序
gperf 完美的散列函數(shù)生成器 使用 gperf 實(shí)現(xiàn)高效的 C/C++ 命令行處理
build-essential 編譯內(nèi)核中make menuconfig進(jìn)圖形編譯 build-essential
zip Linux 下zip包的壓縮與解壓 Linux 下zip包的壓縮與解壓
curl 網(wǎng)絡(luò)請(qǐng)求和提取工具 curl網(wǎng)站開發(fā)指南
zlib1g-dev 用于發(fā)現(xiàn)gzip和PKZIP的工具 Binary package “zlib1g-dev” in ubuntu trusty
gcc-multilib 允許在64位機(jī)器中運(yùn)行32位應(yīng)用 multilib
g++-multilib 同上(g++編譯工具) 多平臺(tái)支持
libc6-dev-i386 Embedded GNU C Library: 32-bit development libraries for AMD64 libc6-dev-i386
lib32ncurses5-dev 待完善 待完善
x11proto-core-dev 待完善 待完善
libx11-dev 待完善 待完善
lib32z-dev 待完善 待完善
ccache 待完善 待完善
libgl1-mesa-dev 待完善 待完善
libxml2-utils 待完善 待完善
xsltproc 待完善 待完善
unzip 待完善 待完善

下載

因?yàn)榫W(wǎng)絡(luò)以及墻的原因,我們使用清華大學(xué)鏡像,步驟如下:

下載repo工具

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

下載源碼

wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下載初始化包
tar xf aosp-latest.tar
cd AOSP   # 解壓得到的 AOSP 工程目錄
# 這時(shí) ls 的話什么也看不到,因?yàn)橹挥幸粋€(gè)隱藏的 .repo 目錄
repo sync # 正常同步一遍即可得到完整目錄
# 或 repo sync -l 僅checkout代碼

ps:總共25G,慢慢下吧!

編譯

進(jìn)入AOSP根目錄

初始化編譯環(huán)境

. build/envsetup.sh

選擇編譯目標(biāo),選擇1,所有選項(xiàng)的意思,后面更新

lunch

開始編譯,這里使用了4個(gè)并發(fā)數(shù):

make -j4

使用打包工具mmm,完成命令后會(huì)在根目錄下生成android.irp,用android studio打開一個(gè)現(xiàn)有項(xiàng)目,打開android.irp即可

mmm development/tools/idegen/

運(yùn)行當(dāng)前版本的模擬器

將emulator源碼目錄加入PATH中

export PATH=&PATH:~/bin/AOSP/out/host/linux-x86/bin

設(shè)置源碼編譯輸出目錄

export ANDROID_PRODUCT_OUT=~/bin/AOSP/out/target/product/generic

運(yùn)行emulator

emulator

下載Android內(nèi)核源代碼

進(jìn)入kernel目錄,下載內(nèi)核

git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/goldfish.git

進(jìn)入goldfish目錄,選擇分支

cd goldfish
git branch -a
git checkout remotes/origin/android-goldfish-2.6.29

編譯Android內(nèi)核源代碼

將交叉編譯工具目錄添加到PATH環(huán)境變量中

export PATH=$PATH:~/bin/AOSP/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin

打開goldfish下Makefile修改配置文件,找到ARCH,CROSS_COMPILE,將其修改如下

ARCH      ?=arm
CROSS_COMPILE  ?=/home/user/bin/AOSP/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/
arm-linux-androidkernel-

note:一定要設(shè)為絕對(duì)路徑。

生成配置文件以及編譯

make goldfish_defconfig
make

運(yùn)行當(dāng)前內(nèi)核版本的模擬器

運(yùn)行當(dāng)前模擬器

emulator -kernel ./kernel/goldfish/arch/arm/boot/zImage

查看內(nèi)核版本

adb shell
cd proc
cat version

BUG

JDK內(nèi)存溢出

FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/dex-dir/classes.dex.rsp
Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] 錯(cuò)誤 1

A:

export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server

以上就是對(duì)Android源碼的下載,和編譯,后續(xù)繼續(xù)更新相關(guān)文章,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Android仿新浪微博發(fā)布微博界面設(shè)計(jì)(5)

    Android仿新浪微博發(fā)布微博界面設(shè)計(jì)(5)

    這篇文章主要為大家詳細(xì)介紹了Android仿新浪微博發(fā)布微博界面設(shè)計(jì)方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android自定義控件實(shí)現(xiàn)icon+文字的多種效果

    Android自定義控件實(shí)現(xiàn)icon+文字的多種效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)icon+文字的多種效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android組件content provider使用解析

    Android組件content provider使用解析

    這篇文章主要為大家詳細(xì)解析了Android組件content provider的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 基于SQLite的Android登錄APP

    基于SQLite的Android登錄APP

    這篇文章主要為大家詳細(xì)介紹了基于SQLite的Android登錄APP,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 快速解決Android適配底部返回鍵等虛擬鍵盤的問題

    快速解決Android適配底部返回鍵等虛擬鍵盤的問題

    今天小編就為大家分享一篇快速解決Android適配底部返回鍵等虛擬鍵盤的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 微信小程序 canvas開發(fā)實(shí)例及注意事項(xiàng)

    微信小程序 canvas開發(fā)實(shí)例及注意事項(xiàng)

    這篇文章主要介紹了微信小程序 wxcanvas開發(fā)實(shí)例及注意事項(xiàng)的相關(guān)資料,這里對(duì)微信canvas與H5中的canvas做對(duì)比,并說明注意事項(xiàng),需要的朋友可以參考下
    2016-12-12
  • Android開發(fā)之項(xiàng)目模塊化實(shí)踐教程

    Android開發(fā)之項(xiàng)目模塊化實(shí)踐教程

    這篇文章主要給大家介紹了關(guān)于Android開發(fā)之項(xiàng)目模塊化的相關(guān)資料,文中通過示例代碼給各位Android開發(fā)者們介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。
    2017-09-09
  • Android編程獲取通知欄高度的方法

    Android編程獲取通知欄高度的方法

    這篇文章主要介紹了Android編程獲取通知欄高度的方法,涉及Android針對(duì)通知欄屬性相關(guān)操作技巧,需要的朋友可以參考下
    2016-01-01
  • Android中二維碼的掃描和生成(使用zxing庫)

    Android中二維碼的掃描和生成(使用zxing庫)

    ZXing是一個(gè)開放源碼的,用Java實(shí)現(xiàn)的多種格式的1D/2D條碼圖像處理庫,它包含了聯(lián)系到其他語言的端口,下面這篇文章主要給大家介紹了關(guān)于Android中二維碼掃描和生成的相關(guān)資料,主要使用的zxing庫,需要的朋友可以參考下
    2022-09-09
  • Android 中TabLayout自定義選擇背景滑塊的實(shí)例代碼

    Android 中TabLayout自定義選擇背景滑塊的實(shí)例代碼

    TabLayout是Android 的Material Design包中的一個(gè)控件,可以和V4包中的ViewPager搭配產(chǎn)生一個(gè)聯(lián)動(dòng)的效果。接下來通過本文給大家分享TabLayout自定義選擇背景滑塊的實(shí)例代碼,感興趣的朋友一起學(xué)習(xí)吧
    2016-10-10

最新評(píng)論