Android模块化编译
来源:互联网 发布:起名软件免费版 编辑:程序博客网 时间:2024/05/09 13:01
如果你只需要修改某一个模块的内容,但是却每次都要执行make, 最后等待很长时间。
使用模块编译,那只需要在你所在的模块的目录或者其子目录,执行mm,便可以编译出一个单独的apk,这样岂不快哉!
具体步骤:
1)打开~/.baserc文件,加入source ~/I850/build/envsetup.sh. 加入你自己该文件所在的路径,这样就免去了每次启动新的终端执行mm命令之前,需要引用此文件。
2)完成步骤1之后,就可以在你的模块里面随意执行mm了,要想使用其他快速命令,可以查看envsetup.sh文件,比如cgrep,jgrep,resgrep在不同类型的文件里面进行相应的查询。还有m,mmm等等
3)还可以使用adb push 将你的apk push到模拟器或者手机终端,也可以在工程根目录通过make -snod生成新的system.img
1、我们平常在编译Android源码,有时并不需要编译整个Android源码,而只需要编译模个模块,这是可以使用mmm工具来编译。
其使用方法是:mmm <dir>,如编译frameworks下的所有文件,则可以这样子:. build/envsetup.sh && choosecombo 1 1 2 3 &&
export ANDROID_JAVA_HOME=$JAVA_HOME && mmm framwork
编译出来的APK,但APK并不包含在system文件夹中,我们可以使用make snod 打包system文件夹,产生新的system.img。
$. build/envsetup.sh && helpInvoke ". build/envsetup.sh" from your shell to add the following functions to your environment:- croot: Changes directory to the top of the tree.- m: Makes from the top of the tree.- mm: Builds all of the modules in the current directory.- mmm: Builds all of the modules in the supplied directories. - cgrep: Greps on all local C/C++ files.- jgrep: Greps on all local Java files.- resgrep: Greps on all local res/*.xml files.- godir: Go to the directory containing a file.
Look at the source to view more functions. The complete list is:
add_lunch_combo cgrep check_product check_variant choosecombo chooseproduct choosetype choosevariant croot findmakefile gdbclient get_abs_build_var getbugreports get_build_var getprebuilt gettop godir help isviewserverstarted jgrep lunch m mm mmm pid printconfig print_lunch_menu resgrep runhat runtest runtest_py setpaths set_sequence_number set_stuff_for_environment settitle smoketest startviewserver stopviewserver tapas tracedmdump
2、关于img文件说明
编译android源码之后,在out/target/product/generic一些文件: ramdisk.img、system.img、userdata.img、 system、 data、root
其中, system.img是由 system打包压缩得到的, userdata.img是由 data打包压缩得到的。
ramdisk.img是模拟器的文件系统,把ramdisk.img解压出来可知道,ramdisk.img里的文件跟root文件夹的文件基本一样。
模拟器装载ramdisk.img并解压到内存,接着分别把system.img和userdata.img挂载到 ramdisk下的system和data目录。我们编译出来的应用程序就是放在system/app下的。用户安装的程序则是放在data/app下。
- Android模块化编译
- Android模块化编译
- android源码模块化编译整理
- Android模块化编译的方法详解
- Android 模块化编译的一些问题解决方案
- Android学习第二篇;模块化编译
- 在Android系统中模块化编译驱动程序
- 源代码编译+模块化编译
- Android模块化与组件化--多模块区分编译
- Android学习之模块化过程多渠道编译详解
- android模块化
- Android模块化
- 模块化编译F2FS
- 我所理解的Android模块化(三)——模块可插拔单独编译运行
- Android模块化(三)——模块可插拔单独编译运行
- Android模块化编程
- Android 创建模块化接口
- android studio模块化开发
- Zend Optimizer优化器介绍
- 存取像素值操作汇总core
- 用于提醒自己
- Ubuntu 下使用nspluginwrapper 调试Flex
- Aspose.BarCode-教你怎么用二维码
- Android模块化编译
- windows store app中ifrmae显示不正常,报错 FORBIDFRAMING的原因
- nginx变量机制
- 智能指针+句柄类 源自百科 [ 很有启发意义 ]
- Python_Json中文编码
- 用XStream读取XML解析成javabean
- Base64Encoder.java
- 使用ZeroClipboard解决跨浏览器复制到剪贴板的问题 .
- 此时,你后悔吗