问题标签 [android-runtime]

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 投票
2 回答
725 浏览

android - 如何停止当前正在执行的命令

我想开始使用start按钮保存我的应用程序的日志并使用stop. 该addLog按钮用于查看是否有更多行被添加到log.txt文件中。该start按钮可以正常工作,但问题是它永远不会以stop. 即使按下stop,当我按下addLog按钮并检查log.txt 文件时,我看到最后一行已添加。我有什么错?

我需要启动流,关闭此活动并参观其他活动,然后返回并关闭伐木机。

0 投票
2 回答
77 浏览

android - Android 运行时和 Android 原生接口

根据 wiki ( http://en.wikipedia.org/wiki/Android_Runtime),Dalvik完全被 Lollipop 中的 ART 取代,即从该版本开始,任何应用程序都将在安装时编译为本机代码。这就引出了一个问题,如果应用程序无论如何都会被编译为本机代码,那么在 NDK 中编写计算密集型例程是否有意义?

0 投票
0 回答
74 浏览

android - 在焦点 EditText 上关闭 VM?

我遇到了一个特殊的问题。
在我的对话框中,我有一个 EditText,当我关注它时,键盘出现并输入第一个单词,但我的应用程序长时间没有响应,直到我关闭它。
这是我的显示对话框功能代码:

我的purchase_view.xml

注意:加载一个 URL 的 web 视图,它有几个文本输入。

注意:我在显示对话框之前和之后也使用此代码,但我的问题没有解决:

我的Logcat错误:



提前致谢。

0 投票
1 回答
783 浏览

android - ART中的Android自修改代码

我正在尝试使用 JNI 在我的 Android 应用程序中实现自修改代码。

我的应用程序的 MainActivity 类中有以下方法:

这是此方法的字节码:

这就是该方法在 classes.dex 文件中的表示方式:

13 00 2A 00 0F 00

methodToModify我的目标是从本机代码更改运行时方法的返回值。所以,这是实现自修改代码的 JNI 方法的算法:

  1. 读取进程内存(这里有更多关于了解 Linux /proc/id/maps的信息):

    FILE *fp; fp = fopen("/proc/self/maps", "r");

  2. 检测 .dex 文件(或 .oat 文件在 ART 的情况下)的开始和结束地址:

    while (fgets(line, 2048, fp) != NULL) { // search for 'dex' or 'oat' if (strstr(line, ".oat") != NULL || strstr(line, ".dex") != NULL) // get starting and ending addresses of the DEX file region

  3. methodToModify在 .dex 或 .oat 文件中查找字节。

  4. 使用mprotect函数设置写入文件的权限。

  5. 修改返回值方法。

我的问题是,这种方法在我的 Nexus 7 和 Android 4.2 上完美运行,但在 Nexus 5 和 Android 5.1 上不起作用。我可以用 Dalvik 实现自我修改代码,但我不能用 ART 做同样的事情。

那么,是否可以用 ART 实现自修改代码呢?

0 投票
2 回答
2990 浏览

android - 覆盖调试版本的 android:vmSafeMode 属性

/system/bin/dex2oat在尝试优化调试应用程序的构建和部署速度时,我发现在安装过程中执行了大量时间。这是ART 提前编译器

我发现当面向 API 22 时,您现在可以停止 ART AOT 编译:

我看到部署速度显着提高,但我担心进行此更改可能产生的副作用。它必须对运行时性能造成小的影响,但启用该android:vmSafeMode选项是否有任何其他后果?

是否可以在 gradle 构建文件中为调试构建覆盖此属性?还是创建一个调试特定的清单文件是唯一的解决方案?

0 投票
2 回答
10610 浏览

java - android.widget.FrameLayout$LayoutParams 无法转换为 android.widget.AbsListView$LayoutParams

还有其他相关问题,但它们没有解决我的情况(它们的错误代码与某种回收和/或客户端代码的错误转换调用有关)。

我的情况比较复杂。

我有一些代码,用户可以在其中提取照片库。

问题是,它在我拥有的 7 部手机上运行良好,都运行 API 19+。

但是我有一个运行 API 17 的 Google Nexus 4.3。我得到了这个崩溃日志,其中没有我的代码,只有库代码。如果您能建议我如何编写工作代码,我会全神贯注:

更新

我的违规课程是这样的:

我正在使用 Ultimate Image Loader 库,这是使用上述类的代码。

0 投票
0 回答
101 浏览

android - 通过 ART 与 DVM 对 Android 应用程序的安装时间验证

与 DVM 相比,DVM 对 android App 执行什么样的安装时间验证,以及 ART 引入了什么样的更严格的验证。

0 投票
1 回答
659 浏览

android - Android 垃圾收集器释放内存

我正在开发一个处理大量分配的应用程序(大约 400 万个双打和 100 万个类)。我正在查看垃圾收集器日志,我看到不同设备释放的内存总量不同。

例如,我有一个 Moto X (2014),它最终释放了超过 312 MB。我还有一个 Droid Bionic 在相同的数据上运行相同的代码,平均释放 616 MB。两种设备最终的堆大小约为 50 MB。

为什么 Bionic 上的 GC 释放的内存比 Moto X 多得多?它们应该各自产生相同数量的垃圾。垃圾收集器的幕后发生了什么?Moto X 运行的是 Android 5.1,而 Bionic 运行的是 4.1.2。

编辑:我有四台设备正在释放大约 300 MB RAM:Moto X (2014)、Nexus 7 2013、Nexus 7 2012 和 Razr i。所有这四个都使用ART。Bionic 正在运行 Dalvik 运行时。这就是释放较少的原因吗?我注意到 GC_FOR_ALLOC 不会在 ART 中发生,但在 Dalvik 上一直被调用。

0 投票
1 回答
1341 浏览

android - 什么是 Android 中的 ART 和 DART

简而言之,什么是 ART(Android 运行时)和 Android 中的 DART,我在这里读到了它,但我并不真正了解它的重要性和用法。

在我询问之前,我还在 Stackoverflow 中搜索了任何相关问题。

0 投票
1 回答
1245 浏览

android - 如何将形状drawable和drawable组合成单个drawable

我正在以编程方式在 android 中生成形状可绘制和可绘制运行时。我所需要的是将两个drawable组合成一个drawable。我尝试通过以下方法实现,但似乎没有任何效果。

使用 LayerDrawable 将两个可绘制对象组合成单个的示例代码

我传递的论点:

我的要求:

我需要结合两个drawable(一个是ShapeDrawable和drawable)。输出必须如下所示

在此处输入图像描述

请帮助我提供解决方案或替代方法,将两个可绘制对象合并为一个可绘制图标。提前致谢。