最近在搞兼容android4.0的一些工作,简单小结一下。

1、编译最好用 make -j16 或者 make -j32,这个要根据机器的配置来。我是在高性能服务器上编译,所以,可以这么设置;

2、有时只是修改了一下makefile,使用mm编译模块并不会工作,可以先cd到模块下:

find . -name *.java | xargs touch

如果你是c,c++,find . -name *.h | xargs touch

然后,再mm,就会重新进行编译了;

3、有时,修改了Java文件和c(c++)文件后,然后用make -j16编译出来的rom有问题。你很有可能是遭遇了没有完全编译的问题。可能有一部分jar包依然在调用旧的接口,但是旧的接口已经被删除掉了。我有遇到过一次,解决的办法是:可以到out目录下的某个子目录,删除对应的jar包。只要删除的jar包,刚好包含了修改过的Java文件,再用make -j16就可以确保完整编译整个模块。比如,我修改了external/bouncycastle/文件夹下的源码,删除:/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates目录下的所有文件(用rm -r *),然后再make -j16就可以确保完整编译,效果和make clean,然后再make -j16的效果是一样的。在怀疑未完全编译导致的问题时,可以先这样尝试一下,因为不是全编,比较节省编译的时间。

怎么怀疑到是哪个模块呢?其实,可以通过离正常状态(手机可以跑起来的状态)之后,究竟修改了哪些文件,可以大致判断出是哪一块代码的修改导致的问题。那就把这部分代码编译出来的jar包删除就可以了。

4、如果是在做系统移植,编译是为了排错,可以只用make -j1,这样编译出错时,在控制台上就能看到导致编译出错的原因。不过,因为是单线程编译,所耗费的时间会久很多。

转载于:https://blog.51cto.com/memory/1212540

编译android系统小结相关推荐

  1. Android编译系统分析三:make完整编译android系统

    这篇博客的目标是摸清楚默认编译整个android系统时代码的流程. 当我们执行make的时候,会查找当前的Makefie文件或者makefile文件并且执行,在android顶级源码目录下面,确实有个 ...

  2. java jni编译_从源码编译Android系统的Java类库和JNI动态库的方法

    利用源码编译Android系统Java类库 1.编写Java项目和Android.mk文件 ├── Android.mk └── src └── com └── lhw └── framework └ ...

  3. 编译Android系统源码--搭建环境

    下载Ubantu14 Google官方建议使用Ubuntu 14 下载路径 双系统安装参考 下载VMware 建议:VMware Workstation 16 Pro 下载路径 下载Android系统 ...

  4. Win10 Linux子系统编译Android系统源码

    一.前言 听说win10合入了Linux作为一个子系统,起初只以为是类似虚拟机的实现机制,想必对性能的提高也很有限.但是稍微了解却发现是并不是虚拟机的那种机制,而是可以完全发挥Host机器的性能,这无 ...

  5. mac 编译android系统,mac 编译 Android 系统杂记

    挂载android分区 sudo hdiutil attach ~/android_code/android7.dmg.sparseimage -mountpoint /Volumes/android ...

  6. Ubuntu编译Android系统源码(msm8909_android5.1.1)

    安装工具 下载Android源码需要git,repo等工具,启动repo是Google写的一个专门用于下载Android源码的工具,主要调用了git. 科普一下git与repo的区别 Git:Git是 ...

  7. 编译Android系统源码推荐的电脑配置

    工欲善其事,必先利其器. 看到很多客户,搞Android产品开发,用的电脑配置是惨不忍睹. 这些老板脑子有坑吗... ------------ 编译Android9推荐电脑配置: 处理器:酷睿i7 5 ...

  8. Android 进阶——Android 系统的基础术语和编译的相关理论小结

    文章大纲 引言 一.Android系统的分区 1./boot 引导分区 2./system 系统分区 3./recovery 恢复分区 刷入RE: 4./data 用户数据区 5./cache 数据缓 ...

  9. Android系统的命令行操作及C程序编译

    在Android系统执行C程序,需要使用Android系统的专用编译器NDK,下载NDK工具可以通过以下博文中给出的链接: https://blog.csdn.net/baidu_35904821/a ...

最新文章

  1. Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据
  2. requests抓取以及Xpath解析
  3. 再次分享一个多选文件上传方案
  4. Android之gravity=“center_vertical“和layout_gravity=“center“的效果
  5. Clos Network
  6. JavaScript文档对象模型DOM节点概述(1)
  7. java gzip压缩_Java GZIP示例–压缩和解压缩文件
  8. csgo躲猫猫模式显示服务器已满,csgo躲猫猫攻略大全
  9. java程序dna,蓝桥杯——DNA(Java题解)
  10. 《Python编程实践》查漏笔记
  11. sql升级重启计算机失败win10,win10纯净版安装sql server 2008重启失败的解决办法
  12. 智能红外遥控器(三):红外学习温湿度读取
  13. OSChina 周六乱弹 —— 周末万岁!
  14. 中文用户名改为英文只要3步复制黏贴
  15. Warshall算法JAVA实现
  16. 苹果App Store 应用商店页面的优化技巧
  17. 第三方代付入帐是什么意思
  18. 前后端是如何交互的?
  19. python 月球上物体的体重,1.重量计算。月球上物体体重是在地球上的16.5%,假如你在地球上每年增长0.5KG,输出未来十年你在地球和月球上的体重状况...
  20. Eslint 从入门到放弃

热门文章

  1. instanceof与typeof 运算符
  2. opencv python BRIEF描述子
  3. 清理服务器,不可不知的两个指令
  4. 区块链学习路线及资料索引
  5. centos 安装php5.6
  6. 手游linux服务器时间同步问题
  7. ITU-T Technical Paper: IP网络测量模型
  8. 升级python2.6.6到python2.7导致pip命令不可用
  9. java实现zip的压缩和解压(支持中文文件名)
  10. mysql修改用户密码