android 编译源码不生成odex

本文介绍如何通过修改Android源码中的mk文件来禁用apk和jar包的Odex优化,包括选择eng版本进行编译及具体的修改步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.可以选择编译eng版本(也就是工程版本)

    通过choosecombo命令行选择


二.修改mk文件实现非odex优化

    这里涉及到两个地方,一个是apk的odex优化,还有framework的odex优化

    1.禁止apk生成odex: 修改../build/core/package.mk

            

[cpp]  view plain  copy
  1. # This file will be the one that other modules should depend on.  
  2. common_javalib.jar := $(intermediates.COMMON)/$(LOCAL_BUILT_MODULE_STEM)  
  3. LOCAL_INTERMEDIATE_TARGETS += $(common_javalib.jar)  
  4.   
  5. ifneq (true,$(WITH_DEXPREOPT))  
  6. LOCAL_DEX_PREOPT :=  
  7. else  
  8. ifeq (,$(TARGET_BUILD_APPS))  
  9. ifndef LOCAL_DEX_PREOPT  
  10. LOCAL_DEX_PREOPT := true  
  11. endif  
  12. endif  
  13. endif  
  14. ifeq (false,$(LOCAL_DEX_PREOPT))  
  15. LOCAL_DEX_PREOPT :=  
  16. endif  
  17.   
  18. #################################  
  19. include $(BUILD_SYSTEM)/java.mk  
  20. #################################  

           把LOCAL_DEX_PREOPT := ture 修改为 LOCAL_DEX_PREOPT := false
    2.禁止jar包生成odex: 修改/build/core/java_library.mk  

           

[cpp]  view plain  copy
  1. proguard_options_file :=  
  2. ifneq ($(LOCAL_PROGUARD_ENABLED),custom)  
  3. ifneq ($(all_resources),)  
  4.     proguard_options_file := $(package_expected_intermediates_COMMON)/proguard_options  
  5. endif # all_resources  
  6. endif # !custom  
  7. LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS)  
  8.   
  9. ifneq (true,$(WITH_DEXPREOPT))  
  10. LOCAL_DEX_PREOPT :=  
  11. else  
  12. ifeq (,$(TARGET_BUILD_APPS))  
  13. ifneq (,$(LOCAL_SRC_FILES))  
  14. ifndef LOCAL_DEX_PREOPT  
  15. LOCAL_DEX_PREOPT := true  
  16. endif  
  17. endif  
  18. endif  
  19. endif  
  20. ifeq (false,$(LOCAL_DEX_PREOPT))  
  21. LOCAL_DEX_PREOPT :=  
  22. endif  
  23.   
  24. #################################  
  25. include $(BUILD_SYSTEM)/java.mk  
  26. #################################  


           LOCAL_DEX_PREOPT := ture  修改为 LOCAL_DEX_PREOPT := false  


编译的时候先make clean-framework

然后再make framework  make systemimage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值