Chinaunix首页 | 论坛 | 博客
  • 博客访问: 438947
  • 博文数量: 205
  • 博客积分: 5630
  • 博客等级: 大校
  • 技术积分: 1945
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-06 20:28
文章分类

全部博文(205)

文章存档

2016年(1)

2015年(6)

2014年(9)

2013年(10)

2012年(53)

2011年(25)

2010年(87)

2009年(14)

分类:

2010-08-12 13:48:43

1、我们平常在编译Android源码,有时并不需要编译整个Android源码,而只需要编译模个模块,这是可以使用mmm工具来编译。

其使用方法是:mmm

,如编译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 && help

Invoke ". 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下。

阅读(1050) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~