android|android 编译源码不生成odex

一.可以选择编译eng版本(也就是工程版本)
通过choosecombo命令行选择


二.修改mk文件实现非odex优化
【android|android 编译源码不生成odex】这里涉及到两个地方,一个是apk的odex优化,还有framework的odex优化
1.禁止apk生成odex: 修改../build/core/package.mk

# This file will be the one that other modules should depend on. common_javalib.jar := $(intermediates.COMMON)/$(LOCAL_BUILT_MODULE_STEM) LOCAL_INTERMEDIATE_TARGETS += $(common_javalib.jar)ifneq (true,$(WITH_DEXPREOPT)) LOCAL_DEX_PREOPT := else ifeq (,$(TARGET_BUILD_APPS)) ifndef LOCAL_DEX_PREOPT LOCAL_DEX_PREOPT := true endif endif endif ifeq (false,$(LOCAL_DEX_PREOPT)) LOCAL_DEX_PREOPT := endif################################# include $(BUILD_SYSTEM)/java.mk #################################


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

proguard_options_file := ifneq ($(LOCAL_PROGUARD_ENABLED),custom) ifneq ($(all_resources),) proguard_options_file := $(package_expected_intermediates_COMMON)/proguard_options endif # all_resources endif # !custom LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS)ifneq (true,$(WITH_DEXPREOPT)) LOCAL_DEX_PREOPT := else ifeq (,$(TARGET_BUILD_APPS)) ifneq (,$(LOCAL_SRC_FILES)) ifndef LOCAL_DEX_PREOPT LOCAL_DEX_PREOPT := true endif endif endif endif ifeq (false,$(LOCAL_DEX_PREOPT)) LOCAL_DEX_PREOPT := endif################################# include $(BUILD_SYSTEM)/java.mk #################################



LOCAL_DEX_PREOPT := ture修改为 LOCAL_DEX_PREOPT := false

编译的时候先make clean-framework
然后再make frameworkmake systemimage

    推荐阅读