问题标签 [dex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 上的 Dalvik 字节码混淆
我最近读了这篇文章Dalvik Bytecode Obfuscation on Android
我还在https://github.com/thuxnder/dalvik-obfuscator/blob/master/injector.py下载了源代码
我知道该技术的作用是遍历所有方法,在代码块中插入垃圾字节并在代码块前面无条件分支(以确保永远不会执行代码块)。
但是我不熟悉 Python 脚本,所以我很难理解从第 204 行到第 212 行的代码块,这会导致异常:
如果有人能向我解释这段代码的作用,我将不胜感激,以便我能理解作者的想法。
编辑:追溯如下:
android - 如何剥离android.Log.d?
一般假设
所以我发现了很多关于使用 proguard 从代码中剥离日志语句的信息。基本上所有人都说 -assumenosideeffects 与使用 ${sdk.dir}/tools/proguard/proguard-android-optimize.txt 配置一起可以解决问题。我的理解是得到等于做一些的字节码
又名我假设从我的 apk 中消除了对 doSomeExpensiveStuff() 的调用:
我的代码
proguard-project.txt:
反编译的dex文件
问题
现在,如果我将它部署到我的设备上,我不会得到任何日志输出,但仍然是 5s 睡眠(或任何其他不应该打扰我的用户的代码延迟或崩溃)。我究竟做错了什么?
进一步调查
android - 是否有任何工具可以从 dalvik DEX 文件中删除不必要的引用?
我有一个项目来处理一些现有的 dex 文件。要求之一是去除所有不必要的信息并减小它们的大小。
如果您尝试使用 Eclipse 插件并按照向导构建一个简单的“hello world”应用程序(SDK 和插件是我昨晚刚刚下载并安装的最新版本),您将创建一个classes.dex
超过 300KB 的文件。
但是,如果您查看该项目,您会发现 lib 文件夹中出现了一个支持 lib 文件。如果你摆脱它,应用程序仍然可以工作,但 dex 文件的大小突然下降到 3KB。
所以我认为我们现有的文件也可能包含类似的不必要的引用。现在的问题是如何找到它们并摆脱它们。
有什么工具可以做到这一点吗?
android - 在 IntelliJ IDEA 中加快 Android 项目构建时间
我想知道,如果有任何方法,如何skip packaging and dexing
在 IntelliJ IDEA 中设置,如在 Eclipse 和 ADT 中。Additional VM Options
IntelliJ 的 Android DX Compiler 部分中有字段Preferences
,也许这可能是一种方法,如何设置它。我也很欣赏另一个技巧,如何加快 IntelliJ Android 项目的构建。
android - 当 dex.force.jumbo=true 时,Dexopt 在一个非常大的 APK(乱序 method_idx)上失败
我有一个非常大的 Android 项目,其中包含多个大型 3rd 方 jar(作为 Android 库)。
我相信我已经达到了 Dex 的最大方法数限制(通过 eclipse 编译):
[2012-11-18 02:28:45 - 在文件中查找] Dx 处理 classes.dex ...
[2012-11-18 02:28:48 - Dex Loader] 无法执行 dex:无法将新索引 66774 合并到非巨型指令!
[2012-11-18 02:28:48 - 在文件中查找] 转换为 Dalvik 格式失败:无法执行 dex:无法将新索引 66774 合并到非巨型指令中!
因此,我利用 SDK 工具 21(平台工具 16)将我的主项目 project.properties 编辑为 set dex.force.jumbo=true
。
该标志允许我生成 APK。但我无法正确安装它(在物理和模拟器上)。似乎有一个 dex 优化器故障:
11-18 20:11:05.338: I/PackageManager(103): 运行 dexopt: com.mypackage.myapp
11-18 20:11:08.577: E/dalvikvm(868): 无序 method_idx: 0x2ae0 然后0x1
11-18 20:11:08.577: E/dalvikvm(868): 项目 1544 出现问题@偏移量 0xf7ae24
11-18 20:11:08.577: E/dalvikvm(868): 部分类型 2006 的交换失败
11-18 20 :11:08.577:E / dalvikvm(868):错误:字节交换+验证失败
11-18 20:11:08.597:E / dalvikvm(868):优化失败
11-18 20:11:08.597:W / installd( 39): DexInv: --- END '/data/app/com.mypackage.myapp-1.apk' --- status=0xff00, 进程失败
11-18 20:11:08.597: E/installd(39): dexopt 在“/data/dalvik-cache/data@app@com.mypackage.myapp-1.apk@classes.dex”上失败 res = 65280
11-18 20:11:08.697: W/PackageManager(103): 包无法安装在 /data/app/com.mypackage.myapp-1.apk
11-18 20:11:09.018: D/dalvikvm( 103): GC_EXPLICIT 释放 1698K, 13% 释放 17034K/19463K, 暂停 7ms+135ms
11-18 20:11:09.068: D/AndroidRuntime(780): 关闭 VM
我是否试图将dex.force.jumbo
标志用于它不打算用于的目的,或者这个错误是不可预测的?
如果是这样,是否有更好的策略来生成包含大量类/方法的项目?
android - 方法参数的Android字节码分析
我想分析 Android 字节码,并找到与方法参数相关的所有指令(对参数进行切片)。有人可以为此提供一些参考吗?任何帮助将不胜感激!
android - Android:导入时 Dex 转换失败
我在 Eclipse 中将一个 android 项目从一个工作区位置导入到另一个工作区时出现错误。
我在我的项目中使用 Google_admob 来展示广告。我没有任何错误,它在我的旧工作区中运行良好。
Eclipse 版本:Indigo 服务版本 2
Android-项目版本: Android 4.0.3
错误状态: [2012-12-03 12:02:27 - Dex Loader] 无法执行 dex:多个 dex 文件定义 Lcom/google/ads/Ad;转换为 Dalvik 格式失败:无法执行 dex:多个 dex 文件定义 Lcom/google/ads/Ad;
java - 包含不在 .dex 文件中的 Java 库
我对在我的 android 应用程序中使用 lgpl 库有一些疑问:
- 是否可以在我的 apk 中的其他任何地方拥有该库 - 而不是在 .dex 文件中?
- 如果我在同一个项目中创建服务,该服务是否在 .dex 文件中?
- android 应用程序可以在 apk 中包含多个 .dex 文件吗?
- 有没有办法在安装过程中自动安装另一个 apk(无需询问用户/无需先搜索)?
谢谢,弗洛里安
android - 如何修复错误无法执行dex:多个dex文件定义Lcom/google/android/gcm/GCMBaseIntentService;?
我经常遇到以下两个错误:
我是Android新手,所以我自己没有成功。
android - 无法执行dex:多个dex文件定义了Lcom/google/android/gcm/GCMBaseIntentService;
我正忙于创建一个时间表应用程序,该应用程序通过 JSON 从我的数据库中获取数据。
我将 GCM 服务用于推送通知和 Johan Nilsson 的 Android Actionbar。
但是,当我尝试将我的应用程序导出到 .APK 文件时,会发生以下错误。
导出 Android Dependencies 映射时会创建并创建副本。里面有对 GCM 和 android actionbar 的引用。在将 gcm 从 libs 文件夹添加到构建路径后,GCM 已经在引用的库映射中。
因此,在删除依赖项后,由于错误,我无法运行和导出应用程序。
我已经尝试清理和重建应用程序。请帮我。