tar xf aosp-latest.tar cd AOSP # 解压得到的 AOSP 工程目录
这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
或 repo sync -l 仅checkout代码
这是清华大学开源软件镜像站提供的方法,按照这个做,没错,只不过耗时而已,看个人的网速。当然了也可以下载指定的Android版本源码,具体方法,请查看介绍: [Android 镜像使用帮助]( )
* 首先我们需要安装一些依赖:
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g+±multilib sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev sudo apt-get install git-core gnupg flex bison gperf build-essential sudo apt-get install zip curl zlib1g-dev gcc-multilib g+±multilib sudo apt-get install libc6-dev-i386 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev sudo apt-get install lib32z-dev ccache sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
* 设置编译器高速缓存
prebuilts/misc/linux-x86/ccache/ccache -M 50G
* 安装openJDK8
sudo apt-get install openjdk-8-jdk
* 接着导入编译Android源码所需的环境变量和其它参数:
source build/envsetup.sh
* 使用 lunch 选择要编译的目标。确切的配置可作为参数进行传递
lunch aosp_arm-eng
* 编译代码
make -j4
通过以上几步,我们就可以耐心的等待编译了,我这边是下班的时候开始编译的,等到第二天早上过来的时候,就提示已经编译成功,我也没想到一次性编译通过,毕竟在Mac上面编译了一个多月,基本都是在1%的时候就会报错,然后就一直Google,奈何一直找不到解决方法,就换成Ubuntu了,没想到一次性编译通过。
* * *
我们编译Android源码的主要目的还是查看分析Android源码,所以接下来我们得生成AndroidStudio查看源码的格式。
* AndroidStudio查看源码环境
以上若已经编译成功的话,我们进入到Android源码的路径下面,首先我们需要生成AndroidStudio所需要的格式
mmm development/tools/idegen/
执行成功之后再次执行
sh ./development/tools/idegen/idegen.sh
通过以上两条命令的话,就可以生产AS 所需要的文件了**android.ipr**,进入Android源码根目录,打开AndroidStudio,导入这个文件即可,初次导入,时间比较久。
**以上便是大概的过程,我大概经历了一个多月的时间才真正的编译成功,这期间放弃、继续、放弃、继续,来回挣扎,所以如果真想编译Android源码的话,建议,耐心一点,出现问题,找Google,换种思路继续,坚持到最后应该就可以了编出来了。**
* * *
### 关于作者
## 最后
都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。
**技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;**
> 我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 PDF(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
>![](https://img-blog.csdnimg.cn/img_convert/5601c01d335c9471298b3faf63a67da2.png)
**Java语言与原理;**
大厂,小厂。Android面试先看你熟不熟悉Java语言
> ![](https://img-blog.csdnimg.cn/img_convert/0c2daffc664f845ff6ff99ce5a9c1b48.png)
**高级UI与自定义view;**
自定义view,Android开发的基本功。
> ![](https://img-blog.csdnimg.cn/img_convert/e39b4144c488367a6a9b8cbcce4654b1.png)
**性能调优;**
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。
> ![](https://img-blog.csdnimg.cn/img_convert/c06aeb96e8d5bcc112e5934a711d50a4.png)
**NDK开发;**
未来的方向,高薪必会。
> ![](https://img-blog.csdnimg.cn/img_convert/65821be67062d6573b4604918e4d87b6.png)
**前沿技术;**
组件化,热升级,热修复,框架设计
> ![](https://img-blog.csdnimg.cn/img_convert/9a9921e2298921d0efb85eec652fce4f.png)
> 网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,CodeChina可见;
**[CodeChina开源项目地址:https://codechina.csdn.net/m0_60958482/android_p7](https://codechina.csdn.net/m0_60958482/android_p7)**
当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。
**不出半年,你就能看出变化!**
0958482/android_p7)**
当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。
**不出半年,你就能看出变化!**
|