Android P的系统编译中,采用了DEX优化编译。

单个apk或者jar去Dex编译

在系统中编译出来的文件如下:
oat
-arm64
-SystemUI.odex
-SystemUI.vdex
SystemUI.apk

生成了后缀为odex和vdex的文件,在调式过程中,可能会出现问题。

去掉DEX优化编译的方法:
1、mm WITH_DEXPREOPT=false
2、Android.mk中增加:LOCAL_DEX_PREOPT := false

整个系统去DEX编译

make -j8 WITH_DEXPREOPT=false
报错:

ninja: no work to do.
[1/1] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
No need to regenerate ninja file
Environment variable WITH_DEXPREOPT was set, regenerating...
: error: : DEXPREOPT must be enabled for user and userdebug builds
build/make/core/dex_preopt.mk:55: error: done.
09:51:08 ckati failed with: exit status 1

修改build/make/core/dex_preopt.mk

  # Non eng linux builds must have preopt enabled so that system server doesn't run as interpreter# only. b/74209329ifeq (,$(filter eng, $(TARGET_BUILD_VARIANT)))ifneq (true,$(WITH_DEXPREOPT))ifneq (true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY))$(call pretty-error, DEXPREOPT must be enabled for user and userdebug builds)endifendifendif

将ifneq (true, ( W I T H D E X P R E O P T ) ) 改 为 i f e q ( t r u e , (WITH_DEXPREOPT))改为ifeq (true, (WITHD​EXPREOPT))改为ifeq(true,(WITH_DEXPREOPT))或者ifneq (false,$(WITH_DEXPREOPT))
因为默认eng编译,WITH_DEXPREOPT必须打开为true,否则提示编译报错。

即:非英文linux构建必须已启用preopt,以便系统服务器不会仅作为解释器运行。

Android P去掉DEX优化编译相关推荐

  1. 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | dvmDexFileOpenPartial | dexFileParse | 脱壳点 | 获取 dex 文件在内存中的首地址 )

    文章目录 前言 一.DexPrepare.cpp 中 rewriteDex() 方法分析 二.DvmDex.cpp 中 dvmDexFileOpenPartial() 方法分析 ( 脱壳点 ) 三.D ...

  2. 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmContinueOptimizati() 函数分析 )

    文章目录 前言 一.DexPrepare.cpp 中 dvmContinueOptimizati() 方法分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DEX 优化流程分析 | D ...

  3. 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )

    文章目录 前言 一.DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 二./bin/dexopt 源码分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ...

  4. 【Android 安全】DEX 加密 ( Java 工具开发 | 加密解密算法 API | 编译代理 Application 依赖库 | 解压依赖库 aar 文件 )

    文章目录 一.加密解密算法 API 二.编译代理 Application 依赖库 三.解压代理 Application 依赖库 aar 文件 参考博客 : [Android 安全]DEX 加密 ( 常 ...

  5. 【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

    文章目录 一.apktool 1.apktool 简介 2.直接解压 3.使用 apktool 反编译 4.使用 apktool 重新打包 二.dex2jar 1.dex2jar 简介 2.dex2j ...

  6. android 内存和性能优化汇总

    1.即时编译(Just-in-time Compilation,JIT),又称动态转译(Dynamic Translation),是一种通过在运行时将字节码翻译为机器码,从而改善字节码编译语言性能的技 ...

  7. android studio 多dex,AndroidStudio利用android-support-multidex解决64k的各种异常

    64k的各种异常 当你的应用程序和库引用达到一定规模,你遇到构建错误显示你的应用已经达到了一个Android应用程序构建体系结构的限制.早期版本的构建系统报告这个错误如下: Conversion to ...

  8. 【Android 安全】DEX 加密 ( Proguard 简介 | 默认 ProGuard 分析 )

    文章目录 一.Proguard 配置简介 二.Proguard 完整注释 一.Proguard 配置简介 更多 ProGuard 混淆配置参考 : https://www.guardsquare.co ...

  9. 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译

    本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:http://item.jd.com/12212640.html 试读地址:http:/ ...

最新文章

  1. 使用代理软件之后其他软件不能联网的解决方法
  2. BAT面试必知:DubboZookeeper面试集锦
  3. osmnx 补充笔记:get_edge_colors_by_attr get_node_colors_by_attr
  4. 配置启动MySQL的Docker容器
  5. javaweb学习总结(十九):JSP标签
  6. 通过adb巧用monkey获取android设备中所有应用的主activity
  7. SQL注入-联合注入
  8. 使用vmware12安装Ubuntu 遇到的两个问题和解决
  9. 【POJ】1384 Piggy-Bank
  10. python扇贝每日一句api,英语每日一句API封装
  11. IRS beamforming 译
  12. 全桥并网逆变器PLECS仿真
  13. Andriod OpenGL 教程 10 - 3D世界
  14. JAVA 订单号生成类
  15. java 配置文件加密_Spring cloud config 配置文件加密方式
  16. Invalid MEX-file 'C:\Users\zs\Desktop\CSR-DCF\mex\mex_extractforeground.mexw64': 找不到指定模块
  17. 计算机毕业设计django基于python学校在线打印系统
  18. 闪蝶-COBOL代码分析工具
  19. 巴比特 | 元宇宙每日必读:中国互联网企业涌入元宇宙的群像:“只有各种求生欲,没有前瞻创新的雄心”...
  20. Linux Shell远程执行命令(ssh)

热门文章

  1. 【HigherHRNet】 HigherHRNet 详解之 HigherHRNet的整体框架与流程
  2. R语言作图——Circular bar plot(环形柱状图)
  3. 从零开始在服务器上搭建QQ机器人——起步(一)
  4. QFramework简介
  5. 新规出|一建证书公路与水利专业含金量上升
  6. 扬州大学大一计算机课,扬州大学计算机硬件课程设计报告
  7. Mysql一些表结构字段是数据库关键字需要避开,如果发现了就需要解决
  8. 最优化理论——(二)凸性1 凸集
  9. 百度首页快照不更新,内页收录正常是什么原因
  10. 用计算机计算的教案,计算器优质课教案