前期准备从这里开始,我们就去做android系统的修改,相信会有更多的同学有更多的玩法。android是开源的,在源代码里没有秘密。同学们可以去修改系统,做成自己喜欢的样子。做汽车的车机,到家里面的物联网系统。你可以改一个iOS一样的UI出来,也可以改一个跟Windows一样的UI出来。前期准备:做android开发,最好可以访问到google的网站!这样子你才可以访问AOSP的网站https://source.android.com/什么是AOSP呢,原单词是:android open source project. 安卓开源项目硬件方面电脑配置尽量高一点,我用的mac(客户端)+服务器(两个E5的CPU+32G内存)机械硬盘也OK,同事做过实验,编译的瓶颈不在IO,另外一个服务器是1T的固态硬盘。同学们的电脑一般i7就够用了,第一次编译时间长一点,后果面是增量编译,不需要太多的时间(5~10分钟左右)。软件方面在官网里有说明https://source.android.com/setup/build/initializing.html1、系统要求编译android系统使用Mac系统或者Ubuntu系统。您必须使用 Linux 或 Mac OS。目前不支持在 Windows 环境下进行编译我们这里推荐使用Ubuntu 14.04,我服务器上的也是这个版本。2、工具软件1)JDK,做android开发的同学肯定会配置这个的,如果不会配置这个的同学,先去学习基础。jdk稍微注意一下,6.0是要1.7.x的版本7.0以上的是1.8+,目前我测试了这两个版本。2)安装所需要的软件,官方直接提供了在线安装命令: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 libgl1-mesa-dev libxml2-utils xsltproc unzip3)安装 Repo创建一个bin目录,你可以放在自己用户的home目录下面,并且当这个bin添加到环境变量中去。mkdir ~/bin
PATH=~/bin:$PATH下载repo,并且修改它的权限curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo同学们知道repo有什么用的吗?我的理解是repo是用来管理git的,而git用来管理android系统里面的各个模块(单独的应用/模块)android系统是一个很庞大的系统,里面有很多单独的应用,也有很多不同的模块。而每个单独的模块或者应用是用git来管理。而repo则是用来管理git的。repo也会提升效率,比如说你一个repo指令,就可以让所有的git同时去拉代码。可以查看所有项目的改变状态,等等.Android系统代码下载有了前面的软件和硬件准备,我们就可以下载系统源码了。1)创建文件夹,一般来说,我习惯用android版本号来命名,下面我们下载android5.1的系统为例子,这些版本去哪里看呢?当然是官网,由此可见,能上google是多么重要的事情呢。mkdir 文件夹名称mkdir android5.1进入当前文件夹cd android5.12)初始化,关联到远程仓库。如果没法访问google,可以使用清华镜像,或者中科大的镜像地址,这样下载速度也比较快。清华镜像地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/中科大镜像地址:
https://lug.ustc.edu.cn/wiki/mirrors/help/aosp以下是清华大学的,格式是:repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b 版本号版本号可以到这里去查看:官网:https://source.android.com/setup/start/build-numbers.html#source-code-tags-and-builds初始repo仓库repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1我们这里下载5.1的系统代码,我直接在系统上操作吧,这里的-u就是url,-b则是分支,branchrepo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-5.1.0_r1接着我们就可以同步代码了:repo sync也可以加上参数,这里的话就不要加了,并发太高的话别人就没法用了。这样子就在同步代码了,具体要下载多久代码,那就看网速了。可以晚上放着,第二天起床,没有什么问题的话,应该就可以了。下载完成的样子:系统编译我们下载完源码以后,就会得到这样一份目录的代码了:编译系统分几步呢?我们先不分析这些文件夹有什么用,后面我们修改代码的时候才去进行说明。系统编译第一步:把脚本载入到环境中source build/envsetup.sh第二步:加载要编译的目标版本第三步:编译系统我这里使用了make -j40这个40就是你cpu的线程数的2倍。我的CPU是20线程,所以我用40,一般个人电脑的话,使用8/16就OK啦。看自己的配置即可。等待系统编译完成,i7的顶配CPU大概1个小时左右,服务器快一点45分钟左右。编译结果编译完成以后,则会如下显示:看到上面这个,就是编译成功了!耗时一个小时9分钟,31秒编译完成以后,就会多一个out目录至于跑起这个系统来,大家自己跑吧,因为我的系统是没有UI的。运行自己编译出来的系统,通过以下命令启动模拟器即可emulator源码下载地址:https://pan.baidu.com/s/1fbLQR69JuEWa0RdF0vEjpQ 提取码:at1k 这个是我今天编译的android7.1.1,以上是5.1的代码下载和编译。套路是一样的,环境搭建,下载源码,编译。至于增量编译,单独编译那些,我们后面再单独分析吧。总结android系统编译分为:环境搭建,下载源码,编译系统。在编译系统的时候,我们用到了几个命令,source 这个其实就是把控制编译的脚本载入到环境中,可以直接使用里面的命令。其中我们的lunch也是里面的命令。而这个脚本是shell脚本。打开脚本可以看到上面的说明。也就是说,顺序不可以乱,必须先把脚本载入到系统环境中。第二个是lunch,参数你填写编号可以,写名称也可以。user,userdebug,eng各是什么意思呢?以下是官网的说明:最后就是make啦,-j表示编译并发量,google的推荐是cpu线程数的2倍。我有验证过,太高了或者太低了会影响速度。
本文出自快速备案,转载时请注明出处及相应链接。