对于一个Android工程师而言,没有玩过源码是很悲哀的一件事情,我们的开发不能只是停留在上层的应用开发,这篇文章就是教大家如何搭建源码的编译环境,环境的搭建主要是以下几个步骤:

1、准备一台运行linux系统或者一台mac笔记本,下载一份源码。

2、根据源码的版本安装好jdk的版本。

3、使用make命令整体编译一遍源码。

4、新建一个apk文件,写好对应的makefile文件,编译好之后push到手机里面就搞定了(手机需要有root权限,也可以push到模拟器里面)。

在源码下开发大致的步骤就是这样的,玩过之后你会发现其实也不难,下面我来具体的给大家讲解一下上面的4个步骤。

第一步:准备工作

mac电脑的话就不说了,主要介绍如何使用普通的电脑来搭建环境。根据我的经验,你最好是给机子安装成linux系统,不要使用虚拟机来玩,最好安装ubuntu系统,因为基本大家都是在这下面编译的,碰到什么问题也可以上网查到资料,当然如果你对别的linux玩的比较溜的话也可以。看google的官方介绍说最好使用14.04LTE版本的ubuntu系统,4.4以后的话就只能使用64位的系统了,所以我给的建议就是如果你现在是window的电脑,那最好是现在压缩两个盘出来一个大概20G左右一个和你的机器的内存一样大的盘,分别用来作为ubuntu的安装目录和交换空间,这样可以保存现在的window系统不被破坏然后ubuntu也能安装,这样就可以实现双系统无干扰并存,千万不要使用直接安装的方式来实现双系统,一定要我教你的这种方式来实现。然后网上去下载一份源码,如果你可以翻墙的话也可以到这里去下载:官方下载

第二步:搭建编译环境

根据你系统的版本和需要编译的源码的版本来安装对应的jdk版本,看下面的建议:

就是说如果你是5.0到6.0的源码,就需要安装64位的OpenJDK7.0的,如果是2.3到4.4的就需要安装oracle版本的64位的JDK6,如果是6.0以上就需要安装64位的OpenJdk8,注意分清Openjdk和oracleJdk,前面的版本你直接可以在Ubuntu的终端里面可以下载到,后一个版本需要你到甲骨文的官网去下载。你可以安装多个jdk版本在系统里面,然后根据需要来动态的切换,限于篇幅我这里就不写的那么详细了,如有不懂的可以百度也可以给我留言。

ubuntu 14.04LTE及以下版本安装openjdk8:


sudo add-apt-repository ppa:openjdk-r/ppa


sudo apt-get update


sudo apt-get install openjdk-8-jdk


sudo update-alternatives --config java



第三步:整体的编译一遍源码

一套源码往往包括多套机子,也就是说你下载一套源码可以编译出多款机子的刷机包。是的,可以直接从源码中编译出来一个刷机包来刷你的手机,通过这里我们就可以定制出属于我们自己的刷机包,比如去掉内置的一些apk,添加上一些你喜欢的图片到手机里面等等一些贴上你自己的logo的刷机包。make大概分为三步:

1、source命令把编译脚本导入到终端中。

2、lunch命令选择需要make出的刷机包版本。

3、make命令开始编译,如果电脑的性能够好也可以开多条线程来加快编译速度。

需要注意的是一定要执行第二个步骤,要不然第三步的时候一定会报错!

编译大概需要几个小时的时间,这要看你的电脑的性能了,如果是intel I系类的处理器,固态硬盘,8G以上的内存,可能只要2 3个小时。等待编译好了之后整个的源码环境就搭建好了,你可以在源码中新建自己的应用,在源码中开发app,源码开发的好处是可以使用很多sdk中不能使用的api,当然你也可以给源码中添加上你自己的api,反正一句话:有了源码就有了一切,任何你想干的事都可以去做!玩的溜不溜就得看你目前的水平了,注意的是源码编译完成之后可能要占用200G以上的存储空间,注意给出足够多的空间,很幸运的是linux可以识别window的NTFS格式的分区,所以你可以给源码放在window的分区中,这样就可以做到最小程度的破坏现在的电脑环境!

最后一步:在源码中新建自己的应用然后push到手机里面来调试

在packages/apps/目录下面新建一个文件夹,文件夹的名字就是你应用的名字,注意不要使用中文,新建一个makefile脚本文件用来编译开发的app,这里需要提醒你的是,源码下开发就不能和使用上层开发一样,直接在Android Studio里面点击运行就可以了,需要使用makefile文件编译出来一个apk文件然后push到手机里面的/system/private-app/xxx下面,xxx是你应用的名字,你需要先在这里mkdirs一个这样的文件夹,push进去之后重启手机就可以在手机的桌面上面看到你的app图标了。以后调试的时候如果没有修改过manifest文件,你就不用每次重启手机来看效果,只需要给原来的app杀死掉然后重新打开app就可以看到修改后的效果了。我们的用来调试的工具也就是我们怎么来写我们的app里面的代码,最好使用2.2以上的AS来开发,不要使用eclipse这种已经淘汰的东西了。写代码和我们在上层开发的步骤一样,只是写好之后我们不能直接点击AS上面的运行来直接安装到手机里面,需要使用我们自己写的makefile脚本来编译出apk,然后push到手机里面看修改后的效果。


总结:

好了,这里就给大家介绍了如何搭建源码编译环境,如何在源码下面开发我们自己的app。对于从来没有接触过源码环境的同学来说,也许这些步骤还是有很多的困难的,碰到困难不要着急,冷静的分析一些是那步出错了,然后查资料来解决问题,争取做到每解决一个问题都学到新的知识,有新的认识,我们要做到对原理熟悉,而不是对类似的问题熟悉,只有做到对原理熟悉了,以后再遇到相似的问题就很容易解决了。多做几次上面的步骤,用不了几天你就会对源码的开发很熟练了,我给大家的建议是:开发之前,先熟悉一下linux的基本操作、adb常用的命令、git的使用,这些对于从window过来的人来说是很陌生的东西,一定要针对性的加强一下!好了,Good Luck For You!不懂留言~~~~