编译android源码apk是否生成odex方法
2015-07-30 16:08
579 查看
其实Android系统默认的配置是,如果没有指定DISABLE_DEXPREOPT := true,那么user版本生成odex,其他版本不生成odex文件;
进入源码目录:build/core/main.mk中找到
ifneq (true,$(DISABLE_DEXPREOPT))
ifeq ($(user_variant),user)
ifeq ($(HOST_OS),linux)
WITH_DEXPREOPT := true
endif
endif
endif
所以user版不想生成odex,那么只需要定义DISABLE_DEXPREOPT := true;
而eng版本要生成odex的话,那么只需要把WITH_DEXPREOPT := true ;
如果想单独控制某一个应用是否生成odex的话可以在这个应用的Android.mk中添加WITH_DEXPREOPT := true;
对于这个配置的逻辑可以参考
/build/core/package.mk
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
转载自:http://blog.cofface.com/archives/721.html
进入源码目录:build/core/main.mk中找到
ifneq (true,$(DISABLE_DEXPREOPT))
ifeq ($(user_variant),user)
ifeq ($(HOST_OS),linux)
WITH_DEXPREOPT := true
endif
endif
endif
所以user版不想生成odex,那么只需要定义DISABLE_DEXPREOPT := true;
而eng版本要生成odex的话,那么只需要把WITH_DEXPREOPT := true ;
如果想单独控制某一个应用是否生成odex的话可以在这个应用的Android.mk中添加WITH_DEXPREOPT := true;
对于这个配置的逻辑可以参考
/build/core/package.mk
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
转载自:http://blog.cofface.com/archives/721.html
相关文章推荐
- 详解Java编程中的反射在Android开发中的应用
- android用户界面屏幕分辨率参考
- android 剪裁图片
- android 读取原始(Raw)资源 作为数据库文件
- Android应用插件式开发解决方法
- 使用android-junit-report.jar导出单元测试报告
- Android的按钮单击事件及监听器的实现方式
- 无root手机版抓android包工具,超好用
- Android(java)学习笔记137:Android中SimpleAdapter,ArrayAdapter和BaseAdapter常见的适配器
- Process
- Android隐藏软键盘
- android开发之Parcelable使用详解
- android开发之Parcelable使用详解
- android开发之Parcelable使用详解
- android开发之Parcelable使用详解
- android 画图用到的DrawFilter
- Android Splash 页面
- android:gravity="right" 没有居右侧
- Android 客户端登陆超时退出处理方案
- Android视图TMD感受