编译android系统小结
最近在搞兼容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系统小结相关推荐
- Android编译系统分析三:make完整编译android系统
这篇博客的目标是摸清楚默认编译整个android系统时代码的流程. 当我们执行make的时候,会查找当前的Makefie文件或者makefile文件并且执行,在android顶级源码目录下面,确实有个 ...
- java jni编译_从源码编译Android系统的Java类库和JNI动态库的方法
利用源码编译Android系统Java类库 1.编写Java项目和Android.mk文件 ├── Android.mk └── src └── com └── lhw └── framework └ ...
- 编译Android系统源码--搭建环境
下载Ubantu14 Google官方建议使用Ubuntu 14 下载路径 双系统安装参考 下载VMware 建议:VMware Workstation 16 Pro 下载路径 下载Android系统 ...
- Win10 Linux子系统编译Android系统源码
一.前言 听说win10合入了Linux作为一个子系统,起初只以为是类似虚拟机的实现机制,想必对性能的提高也很有限.但是稍微了解却发现是并不是虚拟机的那种机制,而是可以完全发挥Host机器的性能,这无 ...
- mac 编译android系统,mac 编译 Android 系统杂记
挂载android分区 sudo hdiutil attach ~/android_code/android7.dmg.sparseimage -mountpoint /Volumes/android ...
- Ubuntu编译Android系统源码(msm8909_android5.1.1)
安装工具 下载Android源码需要git,repo等工具,启动repo是Google写的一个专门用于下载Android源码的工具,主要调用了git. 科普一下git与repo的区别 Git:Git是 ...
- 编译Android系统源码推荐的电脑配置
工欲善其事,必先利其器. 看到很多客户,搞Android产品开发,用的电脑配置是惨不忍睹. 这些老板脑子有坑吗... ------------ 编译Android9推荐电脑配置: 处理器:酷睿i7 5 ...
- Android 进阶——Android 系统的基础术语和编译的相关理论小结
文章大纲 引言 一.Android系统的分区 1./boot 引导分区 2./system 系统分区 3./recovery 恢复分区 刷入RE: 4./data 用户数据区 5./cache 数据缓 ...
- Android系统的命令行操作及C程序编译
在Android系统执行C程序,需要使用Android系统的专用编译器NDK,下载NDK工具可以通过以下博文中给出的链接: https://blog.csdn.net/baidu_35904821/a ...
最新文章
- Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据
- requests抓取以及Xpath解析
- 再次分享一个多选文件上传方案
- Android之gravity=“center_vertical“和layout_gravity=“center“的效果
- Clos Network
- JavaScript文档对象模型DOM节点概述(1)
- java gzip压缩_Java GZIP示例–压缩和解压缩文件
- csgo躲猫猫模式显示服务器已满,csgo躲猫猫攻略大全
- java程序dna,蓝桥杯——DNA(Java题解)
- 《Python编程实践》查漏笔记
- sql升级重启计算机失败win10,win10纯净版安装sql server 2008重启失败的解决办法
- 智能红外遥控器(三):红外学习温湿度读取
- OSChina 周六乱弹 —— 周末万岁!
- 中文用户名改为英文只要3步复制黏贴
- Warshall算法JAVA实现
- 苹果App Store 应用商店页面的优化技巧
- 第三方代付入帐是什么意思
- 前后端是如何交互的?
- python 月球上物体的体重,1.重量计算。月球上物体体重是在地球上的16.5%,假如你在地球上每年增长0.5KG,输出未来十年你在地球和月球上的体重状况...
- Eslint 从入门到放弃