android在全局执行make时,编译目标的一个入口files是依赖于modules_to_install的  818 .PHONY: files  819 files: prebuilt \  820         $(modules_to_install) \  821         $(INSTALLED_ANDROID_INFO_TXT_TARGET)
而modules_to_install变量的组成定义如下:  719 modules_to_install := $(sort \  720     $(ALL_DEFAULT_INSTALLED_MODULES) \ //包含Product_copy_file的入口dst  721     $(product_FILES) \ //包含变量PRODUCT_PACKAGES定义的变量  722     $(foreach tag,$(tags_to_install),$($(tag)_MODULES)) \ //eng_MDOULES/debug_MODULES 变量PRODUCT_PACKAGES_ENG入口  723     $(CUSTOM_MODULES) \  724   ) 即如果上面的变量中要是没有定义对应的目标模块,则即使加载了对应模块的Android.mk文件(加载Android.mk文件只是建立了模块编译和安装所需要的各种依赖关系),但在全局编译时最终还是不会执行build和install操作的,因为该module编译入口并没有存在于modules_to_install变量之中:
 704 eng_MODULES := $(sort \  705         $(call get-tagged-modules,eng) \  706         $(call module-installed-files, $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES_ENG)) \  707     )
 671   product_MODULES := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES)  690   product_FILES := $(call module-installed-files, $(product_MODULES))
这里需要区别于单个Android.mk模块的mm/mmm指令,他的make编译过程时是直接将all_modules(本质也就是Andorid.mk中定义的LOCAL_MODULE变量)变量作为编译的入口,而该入口all_modules 又是依赖于LOCAL_BUILT_MODULE和LOCAL_INSTALLED_MODULE这两个变量的,故每一次全新的mm操作肯定会执行built和install的操作。
QA: 如何让系统中的某个默认模块不被安装到system.img中去,最根本的方法是:     android系统默认的PRODUCT_PACKAGES的变量配置mk文件一般存在于build/target/product下,此外和自己hardware平台相关的模块需求一般是定义到device目录下的product.mk或者device.mk文件中。如果不想让某个系统模块如apk等编译进入system下,则需要定位到 PRODUCT_PACKAGES 变量并删除bypass相应的module名字(一般加在 PRODUCT_PACKAGES变量中的 模块名字就是定义在android.mk中的LOCAL_MODULE变量值)。 ps:当然如果Android.mk中的模块存在依赖关系,则对应的依赖目标模块所在的android.mk定义的LOCAL_MODULE也是会编译和安装输出的,无需在变量 PRODUCT_PACKAGES指定

更多相关文章

  1. 深入理解AsyncChannel、Messenger
  2. Activity实现自定义Dialog
  3. [Android(安卓)Pro] Android(安卓)studio jni中调用Log输出调试
  4. Android(安卓)自定义TitleBar
  5. Cocos2d-x 发布 Android
  6. Android动画知识汇总
  7. Android(安卓)SELinux 一个编译错误
  8. 【Android(安卓)开发教程】自定义服务
  9. Android(安卓)解决自定义控件布局中match_parent属性无效

随机推荐

  1. [置顶] Android(安卓)SQlite使用实践Demo
  2. build command in android
  3. android读取SD卡下面所有的TXT文件名,list
  4. android 简单比较 两个图片是否一致
  5. Android P 隐藏Setting主页面Suggestion
  6. android 內存等使用情況
  7. android中使用intent传输值
  8. Android(安卓)检测是否有ROOT权限
  9. android 之 新浪微博
  10. Android Handler:子线程发消息到UI主线程