build/core/package.mk
LOCAL_BUILT_MODULE_STEM := package.apk
在package.mk中 LOCAL_BUILT_MODULE_STIM定义为package.apk
在base_rules.mk中,对LOCAL_BUILT_MODULE_STIM做如下处理:
LOCAL_MODULE_STEM := $(strip $(LOCAL_MODULE_STEM))LOCAL_BUILT_MODULE := $(built_module_path)/$(LOCAL_BUILT_MODULE_STEM)
在package.mk中LOCAL_BUILT_MODULE会依赖R_file_stamp,而R_file_stamp会依赖resource_export_package,resource_export_package会做的动作有create-empty-package、add-assets-to-package
ifdef LOCAL_EXPORT_PACKAGE_RESOURCES# Put this module's resources into a PRODUCT-agnositc package that# other packages can use to build their own PRODUCT-agnostic R.java (etc.)# files.resource_export_package := $(intermediates.COMMON)/package-export.apk$(R_file_stamp): $(resource_export_package)# add-assets-to-package looks at PRODUCT_AAPT_CONFIG, but this target# can't know anything about PRODUCT.  Clear it out just for this target.$(resource_export_package): PRIVATE_PRODUCT_AAPT_CONFIG :=$(resource_export_package): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=$(resource_export_package): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT)        @echo "target Export Resources: $(PRIVATE_MODULE) ($@)"        $(create-empty-package)        $(add-assets-to-package)endif# Other modules should depend on the BUILT module if# they want to use this module's R.java file.$(LOCAL_BUILT_MODULE): $(R_file_stamp)
LOCAL_BUILT_MODULE做的动作有create-empty-package、add-assets-to-package、add-jni-shared-libs-to-package、add-dex-to-package、add-carried-java-resources、add-java-resources-to-package、sign-package、align-package。
$(LOCAL_BUILT_MODULE): $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest)             @echo "target Package: $(PRIVATE_MODULE) ($@)"        $(create-empty-package)        $(add-assets-to-package)ifneq ($(jni_shared_libraries),)        $(add-jni-shared-libs-to-package)endififneq ($(full_classes_jar),)        $(add-dex-to-package)endif        $(add-carried-java-resources)ifneq ($(extra_jar_args),)        $(add-java-resources-to-package)endif        $(sign-package)        @# Alignment must happen after all other zip operations.        $(align-package)ifdef LOCAL_DEX_PREOPT        $(hide) rm -f $(patsubst %.apk,%.odex,$@)        $(call dexpreopt-one-file,$@,$(patsubst %.apk,%.odex,$@))ifneq (nostripping,$(LOCAL_DEX_PREOPT))        $(call dexpreopt-remove-classes.dex,$@)endifbuilt_odex := $(basename $(LOCAL_BUILT_MODULE)).odex$(built_odex): $(LOCAL_BUILT_MODULE)endif




更多相关文章

  1. Android 自定义Dialog样式
  2. 自定义Activity标题栏(Title bar)和窗体显示状态操作(requestWind
  3. android之4.0控件switch自定义开关背景图片和控制宽度
  4. Android 自定义标题栏
  5. 为什么android的R类要定义成16进制
  6. Android 图片裁剪功能实现详解(类似QQ自定义头像裁剪)
  7. Android 自定义Tabbar

随机推荐

  1. SQL 查询分析中使用net命令问题
  2. SQLServer 批量导入目录文件
  3. SQL Server 触发器 表的特定字段更新时,触
  4. SQLServer中求两个字符串的交集
  5. 被遗忘的SQLServer比较运算符谓词
  6. SQLServer XML查询快速入门(18句话)
  7. 从每个分类选择10条记录的sql语句
  8. SQLServer 循环批处理
  9. 从两种SQL表连接写法来了解过去
  10. SQL Server 索引维护sql语句