Android应用开发之Ubuntu 14.04下Android系统源码编译
白羽 2018-08-10 来源 :网络 阅读 868 评论 0

摘要:本文将带你了解Android应用开发之Ubuntu 14.04下Android系统源码编译,希望本文对大家学Android有所帮助

        本文将带你了解Android应用开发之Ubuntu 14.04下Android系统源码编译,希望本文对大家学Android有所帮助


Ubuntu 14.04下Android系统源码编译
Android源码编译需要Linux环境,我这里用的是Ubuntu 14.04,虽然Ubuntu 16.04出来很久了。但是16.04有些依赖没解决得了,所以用14.04版本方便很多。下面将用Ubuntu 14.04环境为大家讲述源码的下载、编译和刷机。

1、安装curl、repo和git

安装curl

sudo apt-get install curl        //install curl tool
安装curl

sudo curl //commondatastorage.googleapis.com/git-repo-downloads/repo  //download repo
如果你用这个下载安装不了,你可以直接sudo apt-get install repo,按照上面的提示安装即可。

安装Git

sudo apt-get install git
git配置

sudo git config --global user.email "your@example.com"
sudo git config --global user.name "Your Name"
这个配置是否真实性对于下载源码影响不大,你也可以直接填写your@example.com和Your Name这样的字样下载源码。

2.下载源码

下载源码之前先建好一个文件夹,然后用命令进入该文件夹,最后才建仓下载。这样的做的好处就是没那么混乱。

repo init -u git://codeaurora.org/platform/manifest.git -b release -m LA.BR.1.2.3-10210-8x09.0.xml --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable
repo sync
我这里下载的是高通安卓源码, 
下载地址见:https://wiki.codeaurora.org/xwiki/bin/QAEP/release 
上面的LA.BR.1.2.3-10210-8x09.0.xml对应的是Android5.1.1版本。你也可以选择你要下载的版本。 
另外你也可以从谷歌和清华下载源下载。 
谷歌源码下载:https://source.android.com/source/downloading.html#initializing-a-repo-client 
清华下载源:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 
一个系统的源码大概是40多GB,编译也要部分的空间,你的磁盘注意要留有足够的空间。

3.依赖包下载

sudo apt-get install git-core 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
1
1
安装openjdk7

sudo apt-get install openjdk-7-jdk
4.编译源码

在命令行里进入该源码的目录里。

source build/envsetup.sh
lunch
它会显示可选编译cpu架构,然后选择对应的cpu结构,一般选0,你也可以根据你需要来选。

Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_arm64-eng
     3. aosp_mips-eng
     4. aosp_mips64-eng
     5. aosp_x86-eng
     6. aosp_x86_64-eng
     7. mini_emulator_mips-userdebug
     8. mini_emulator_x86_64-userdebug
     9. m_e_arm-userdebug
     10. mini_emulator_arm64-userdebug
     11. mini_emulator_x86-userdebug
     .......
aosp_arm64-eng 
- arm CPU架构。 
- 64代表64位系统 
- eng代表engineer版本 
- user正式版,权限受限制 
- userdebug版本,在user版本的基础上开放了root权限和debug的权限。

最后开始编译

make -jn (“n” means the thread numbers of CPU)
这里的n表示线程数,一般是cpu数目的两倍。比如说make -j8。 
编译好的文件在work/LINUX/Android/out/target/product/xxx/里面, 
这里的目录根据因你的项目目录不同而不同。一般来说,emmc_appsboot.mbn、boot.img、userdata.img、system.img、recovery.img是你最终需要的产物。

5.部分编译

部分编译一般用于修改代码后在原来已经有编译好的资源下进行差异化编译。这样的编译速度快很多。 
预备

source build/envsetup.sh
lunch
这里的命令意义同上。差别在最后一步。下面每一步执行前请先执行source build/envsetup.sh和lunch。

1)编译about(生成emmc_appsboot.mbn)

make aboot -jn(“n” means the thread numbers of CPU)
目标文件夹work/LINUX/android/out/target/product/xxx/ 
这里根据因你的项目目录不同而不同,如果你的命令执行不了,可能是你输入的命令字符格式不对,”-jn”需要是英文格式的

2)编译内核(生成boot.img)

make bootimage -jn
目标目录work/LINUX/android/out/target/product/xxx/,下面几个目录都是在这个目录下,就不一一重复了。 
3)编译system(生成system.img)

make systemimage –jn
4)编译userdata(生成userdata.img)

make userdataimage –jn
5)编译recovery(生成recovery.img)

make recoveryimage –jn
6.刷机

这里我假定你配置好adb环境,如果没有请先下载Android SDK搭建环境。然后连上机子在电脑上让电脑识别,在命令行里输入下面命令进行烧写。 
1)烧写emmc_appsboot.mbn

adb reboot bootloader
fastboot flash aboot <path to emmc_appsboot.mbn >
fastboot reboot
path to emmc_appsboot.mbn 是你的emmc_appsboot.mbn目录路径,下同。

2)烧写boot.img

adb reboot bootloader
fastboot flash boot <path to boot.img>
fastboot reboot
3)烧写system.img

adb reboot bootloader
fastboot flash system <path to system.img>
fastboot reboot
4)烧写userdata.img

adb reboot bootloader
fastboot flash userdata <path to userdata.img>
fastboot reboot
5) 烧写 recovery.img:

adb reboot bootloader
fastboot flash recovery <path to recovery.img>
fastboot reboot    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程