前言

  本文的介绍是基于有一套Android系统源码供你玩耍之上的,主要介绍Android系统的编译流程及系统app的模块化编译。我的源码是放在Linux服务器上的,如果你对Linux常用命令感兴趣可以看一下Linux常用命令。

系统编译流程

1. 检查jdk版本(java -version)

 这一步并非必须,根据自身的实际情况决定,对于部分系统的编译需要用到特定的jdk版本,否则编译会失败,

会报如下错误:


2. source build/envsetup.sh

 利用cd命令切换到android源码的目录下,也就是拥有下图文件夹的目录,执行 source build/envsetup.sh命令。


3. make clean

 make clean命令是用来清除前一次编译结果的,所以这一步是非必须的,这一步应该执行在lunch之前,

因为lunch之后会生成一个out文件夹,而make clean会删除该文件夹。

4. lunch

 系统源码可以编译生成不同版本的系统,lunch过后如下图,然后选择对应的版本。


5. make update-api -j30

 用来更新系统api的,非必须执行,-j30用来指定编译的线程数,根据自己的硬件的性能来决定。

6. make -j30>makelog01.log 2>&1

 编译系统,并将编译log输出到log文件中,如果不需要保存log信息可以直接使用make -j30进行编译。

然后漫长的等待。。。

在编译完成后在android目录out目录下,保存着编译生成的各种文件。

7. 利用自己的打包脚本,将编译生成的文件打包然后烧进手机,至此系统编译已经完成。


单模块编译

注意:单模块编译需要在系统编译成功一次后才能顺利进行的,在系统没有编译前或者执行了make clean之后,单模块编译是不能成功的!

如果你在编译系统后退出过编译的终端或关闭过编译设备,在进行单模块前你需要重新执行系统编译的1,2,4步骤,然后就可以进行单模块编译了。

如:编译Calculator这个app

先切到Bluetooth工程目录下:cd packages/apps/Calculator/

然后在该文件夹下执行 mm,进行编译,成功的话会在下面显示出一个apk的存放路径,如下图:


编译成功后就需要把apk运行到手机上看效果了,因为编译的是系统级的应用,安装过程和第三方的应用有些不一样,在终端需要执行如下操作:

1. adb devices :检测手机是否连接上;

2. adb root :获取root权限;

3. adb renount:获取手机system分区的读写权限;

4. adb push 你的apk存放路径 /system/app/

注意:你编译的apk可能是经过定制的,编译生成的apk是存放在 xxxx/system/priv-app/apk名,这时候上面4步骤如下:adb push 你的apk存放路径 /system/priv-app/

整个安装流程截图:


更多相关文章

  1. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  2. [置顶] Android系统下的动态Dex加载
  3. 基于Android系统的IPv6网络接入分析
  4. 面试题目及其答案
  5. Android(安卓)armeabi的so库兼容问题
  6. Android6.0权限系统
  7. 安卓源码框架学习-framework层
  8. 开放的安卓系统遇上了麻烦
  9. 210开发板Android系统串口程序

随机推荐

  1. Android(安卓)之 Fast Scroll 、字母索引
  2. 通读Android文档系列 ONE
  3. android系统学习笔记三
  4. 【多图】Google工程师解析Android系统架
  5. 截取android正在播放音乐的audio音频流(后
  6. 使用Android(安卓)Studio调试Android(安
  7. Android(安卓)渗透测试学习手册 第一章 A
  8. Android中的权限问题
  9. Android(安卓)源码分析-Dalvik 虚拟机创
  10. 使用fastboot命令刷机流程详解