android 编译源码不生成odex

一.可以选择编译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

你可能感兴趣的:(预置文件)