当前位置:   article > 正文

android 编译单个模块_android 9.0 单模块编译

android 9.0 单模块编译

android中的一个应用程序可以单独编译,编译后要重新生成system.img

在源码目录下执行
  . build/envsetup.sh (.后面有空格)
就多出一些命令:
  - 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.
可以加—help查看用法

 
我们可以使用mmm来编译指定目录的模块,如编译联系人:
mmm packages/apps/Contacts/

或者

make Contacts
编完之后生成两个文件:
  out/target/product/generic/data/app/ContactsTests.apk
  out/target/product/generic/system/app/ Contacts.apk
可以使用"make snod"重新生成system.img

转自:http://www.cnblogs.com/philander/archive/2010/10/16/1853024.html


二. apk文件编译到系统文件中的方法


把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法: 
1  (1)源码编译后,把apk拷贝到out\target\product\generic\system\app中。 
    (2) 执行命令make snod , 把添加的spk编到system.img 中 
   缺点:执行make clean 后,再次make 完毕需要重新执行上面操作。 
2  "方法一"的改进。 
    (1) 新建一个文件夹目录,用来存放apk文件 
             mkdir packages/apps/Prebuilt_apps 
             cd packages/apps/Prebuilt_apps 
             在Prebuilt_apps中新建make文件 
             vi Android.mk 
             并写入 
             LOCAL_PATH := $(call my-dir) 
             include $(CLEAR_VARS) 
             LOCAL_POST_PROCESS_COMMAND := $(shell cp -r $(LOCAL_PATH)/*.apk (TARGET_OUT)/app/) 
             保存退出。
    (2) 把需要编译的apk拷贝到目录Prebuilt_apps下,执行make ,Prebuilt_apps中的apk就会考被到out\target\product\generic\system\app中。
     (3) 执行make snod 。完成。 
    此方法执行make clean 后,再次make 完毕,只需要make snod即可(有时make后,out\target\product\generic\system\app没有需要添加的apk,此时再make一次即可,速度很快)。

-----------------------
感谢11楼提供的关于编译成功但无法运行问题的解决方法。
解压apk,如其中lib(.so)文件,把 .so文件copy到system\lib下,再编译。
本人在模拟器上直接加入angrybird.apk(愤怒的小鸟)编译,编译后无法运行。把libangrybirds.so拷贝到system\lib下,再编译后就可以运行。 
触宝输入法apk使用此方法也可编译运行成功。
--------------------
使用mkyaffs2image工具,使上面的操作更简单!
把apk及相关文件(如.so)拷贝到system的相应路径下,执行 mkyaffs2image -f direction/system system.img,即可生成system.img

转自:http://www.cnblogs.com/IamEasy_Man/archive/2011/08/05/2128228.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/228125
推荐阅读
相关标签
  

闽ICP备14008679号