关于android.mk中的LOCAL_OVERRIDES_PACKAGES 说明

关于android.mk中的LOCAL_OVERRIDES_PACKAGES需要说明一下,此变量可以使其他的模块不加入编译,

如: 源码中DeskClock的android.mk有

LOCAL_OVERRIDES_PACKAGES := AlarmClock

使 AlarmClock不会加入到编译系统中,不会生成 AlarmClock.apk。


原先我是死活不明白会什么有两个闹钟 AlarmClock和 DeskClock ,源码几乎相同,原先只在 AlarmClock中的文件中修改,就是没有效果,测试说没有修改,原来发布的版本中只有DeckClock.apk,我却在本地make AlarmClock编译出了AlarmClock.apk,>_<!!

试了一下在 DeskClock的android.mk中加入LOCAL_OVERRIDES_PACKAGES := Calendar,删掉Calendar.apk, 然后全部make一下,在system/app下calendar.apk竟然没再生成了????!!!

p.s

# Some packages may override others using LOCAL_OVERRIDES_PACKAGES.
# Filter out (do not install) any overridden packages.
overridden_packages := $(call get-package-overrides,$(modules_to_install))
ifdef overridden_packages
#  old_modules_to_install := $(modules_to_install)
  modules_to_install := /
      $(filter-out $(foreach p,$(overridden_packages),$(p) %/$(p).apk), /
          $(modules_to_install))
endif

原文地址:https://www.cnblogs.com/liulaolaiu/p/11744559.html