问题标签 [dex2oat]

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.

0 投票
0 回答
762 浏览

android - 在 Linux 主机上使用 dex2oat 编译 APK

我正在尝试在 Linux 主机上使用 dex2oat 将 APK(更具体地说,dex 文件)编译为 OAT。我按照此处给出的说明进行操作,但出现以下错误:

Could not create image space with image file '/home/user/Documents/Android/out/host/linux-x86/framework/x86_64/core.art'. Attempting to fall back to imageless running. Error was: Cannot compile image to /home/user/Documents/Android/out/host/datadir/dalvik-cache/x86_64/dalvik-cache/x86/home@user@Documents@Android@out@host@linux-x86@framework@x86_64@core.art: Image compilation disabled.

它会响铃吗,还是有另一种方法可以在不使用模拟器或 VM 的情况下编译为 OAT?

0 投票
4 回答
2584 浏览

android - 安装应用程序需要几分钟时间并出现 dex2oat 警告

很长一段时间后,我重新打开了一个 Android Studio 项目,并且我看到像往常一样快速构建,但现在 Android Studio (3.5) 的“安装”步骤需要几分钟,而过去需要几秒钟。

如果我在安装时打开设备 Logcat,我可以看到大量这些:

所有方法似乎都被处理了两次(至少),垃圾收集器似乎做了很多工作。

我不知道发生了什么,但我很想保持这样的速度——现在开发是不可能的。任何人都可以帮忙吗?

额外信息

在 dex2oat 开始这个很长的过程之前,我可以看到以下日志:

构建文件

这是build.gradle应用程序模块的一部分。这是一个多模块项目,但其他文件非常相似。

使用 vmSafeMode="true" 时的 aapt 输出

运行时输出./Library/Android/sdk/build-tools/29.0.2/aapt list -a app-debug.apk很大,只粘贴相关部分:

0 投票
0 回答
61 浏览

android - Android 6 (Marshmallow) 默认启用 JIT 吗?

我对 Android 平台第 6 版中使用的构建方法有疑问。我有一个根深蒂固的 LG Nexus 5,运行版本 6.0.1,我正在对 Android 应用程序进行性能研究,我多次运行应用程序并在整个测试过程中观察它们的行为。下图显示了我在所有应用程序中获得的标准行为示例: 25 次测试中能源性能的演变

据报道,从版本 5 开始,Android 开始使用 AOT 构建而不是 JIT。但是,根据我的阅读,这并不总是正确的,在某些情况下,并非所有应用程序代码都是 AOT 编译的,而 JIT 用于分析代码并在运行时优化其执行。查看获得的结果后,似乎需要对应用程序及其代码进行运行时优化。由于 JIT,可以进行这些优化吗?

当我使用 ADB 调用以下命令时,我没有得到返回值:

这是否意味着 JIT 被禁用,还是应该显示为“假”?这个版本的默认值是多少?

0 投票
1 回答
36 浏览

android - dex2oat 是否编译所有方法?

我了解在最新版本的 Android 上,Dex 文件会在设备上编译成 OAT 文件。OAT 文件是否包含 Dex 文件中所有方法的编译版本,还是某些方法保留为 Dex 字节码并在运行时解释?