标签: dalvik

WAIT_FOR_CONCURRENT_GC阻止了什么意思?

我刚刚在我的Android手机上从ICS(4.0.4)到JB(4.1)进行了自动更新,当我运行我的应用程序时它引入了多个垃圾收集调用:

WAIT_FOR_CONCURRENT_GC blocked 30ms
Run Code Online (Sandbox Code Playgroud)

我在我的应用程序中播放视频,这些阻止的GC调用几乎使我的延迟加倍,这是什么意思?

android garbage-collection blocked dalvik

21
推荐指数
2
解决办法
2万
查看次数

Multidexing android应用程序的缺点

最近我读到了有关Dalvik 65K方法限制的内容.我已经知道方法调用列表只能调用第一个65536方法引用.为解决这个问题,我们提供了许多解决方案.其中一个是多索引,我们通过使用android的支持库将.dex文件拆分为多个类[classes.dex,classes1.dex ...].

我无法理解的是,由于这种多重索引,Android应用程序有什么缺点,为什么我们应该花费大量精力来减少引用方法的数量.

基本上在我的理解中,为了减少方法计数,我必须减少模块化,这使得我的代码可读性降低,从而消除了在删除第三方库代码时消耗的小时数.减少方法计数值得吗?

performance android dalvik

21
推荐指数
2
解决办法
2524
查看次数

为什么android建立在VM上(Dalvik)

我很想知道google选择在java VM上开发android框架的原因.

在为Android编写代码近6个月的过程中,我观察到在资源有限的平台上运行VM的代码非常慢.涉及很多开销.我知道java是可移植的等等,是不是可以使用本地语言并获得VM提供的性能和功能?对于面向性能的应用程序,人们仍然最终编写本机代码并用JNI包装它,

那么谷歌为什么选择这个特定的堆栈:

  1. 基于臂的核心(可理解,ARM是移动设备的最佳选择)
  2. Linux(开源)
  3. Java VM(我的问题)

编辑:我知道java - JVM与我服务器上的C++应用程序相同,但不是在android上运行.关于android并非如此 - 根据我的经验,用JNI包装的C++代码运行速度远远快于java代码(注意我甚至用java中的静态块完全相同的代码检查)我同意你的意见在任何其他平台上回答.

android dalvik

20
推荐指数
1
解决办法
1万
查看次数

Android和Dalvik - 获取对象的大小

众所周知,Java 5引入了Instrumentation轻松获取对象大小的能力.在Android和Dalvik上有这样的方法吗?

java.lang.instrument软件包在Android上不可用.

java android dalvik

20
推荐指数
1
解决办法
9181
查看次数

Android Studio在设备上慢速调试

一切都很好,直到最近我注意到调试变得非常缓慢.我不记得任何会引起这种情况的剧烈变化.

UI导航有明显的滞后,网络操作需要永远.如果我重新启动手机并重新启动Android Studio/ADB,这可以解决一些问题.

在正常模式下运行时,App表现良好.

我在Android 4.4.2上使用Dalvik运行时.我还没有用过ART.

关于如何解决这个问题的任何建议?

debugging performance android dalvik

20
推荐指数
2
解决办法
6758
查看次数

android系统是否包含JVM?

我知道android系统包括Dalvik虚拟机(DVM)但是我不明白android系统是否包含JVM还是DVM是JVM的替代品?谢谢

java android jit jvm dalvik

20
推荐指数
2
解决办法
2万
查看次数

不断得到...... DeviceMonitor]无法开始监控

我发现在使用eclipse运行或调试我的应用程序几次之后,我在我的控制台中得到了上面的输出(红色),我得不到Dalvik关于我手机连接状态的反馈.我的应用程序仍将调试等.我的控制台中没有任何用处.

任何想法如何解决这一问题?它似乎是间歇性的.几分钟后它就开始做了,继续做了很长一段时间,偶尔会再次消失.这发生在我的最后一台笔记本电脑上,现在在我的新笔记本电脑上进行了全新安装等.

android monitor device dalvik

19
推荐指数
2
解决办法
1万
查看次数

如何最小化GC_FOR_ALLOC次数?

我的应用程序导致这些可怕的GC_FOR_ALLOC在特定位置(方法)多次发生:

12-29 22:20:30.229: D/dalvikvm(10592): GC_FOR_ALLOC freed 1105K, 14% free 10933K/12615K, paused 33ms, total 34ms
12-29 22:20:30.260: D/dalvikvm(10592): GC_FOR_ALLOC freed 337K, 13% free 11055K/12615K, paused 25ms, total 26ms
12-29 22:20:30.288: D/dalvikvm(10592): GC_FOR_ALLOC freed 278K, 14% free 10951K/12615K, paused 24ms, total 24ms
12-29 22:20:30.495: D/dalvikvm(10592): GC_CONCURRENT freed 633K, 11% free 11317K/12615K, paused 16ms+3ms, total 79ms
12-29 22:20:30.495: D/dalvikvm(10592): WAIT_FOR_CONCURRENT_GC blocked 16ms
12-29 22:20:30.499: D/dalvikvm(10592): WAIT_FOR_CONCURRENT_GC blocked 15ms
Run Code Online (Sandbox Code Playgroud)

我很清楚我在内存管理方面做错了(是的,垃圾收集很棒,但仍然没有让我免除责任,知道何时以及如何分配).

您能否推荐一种故障排除方法或技术,可以引导我找到令人讨厌的代码行和可能的解决方案?

java android garbage-collection memory-management dalvik

19
推荐指数
1
解决办法
2万
查看次数

多个dex文件 - 转换为Dalvik格式失败 - 无法执行dex

我有2个应用程序版本 - 专业版和精简版.它们都已在v1.01上市.我试图为两者发布v1.1.此更新包括SwawrmConnect集成,以便使用其全局排行榜.

我应该首先说我知道我没有正确维护我的代码.我有2个完全独立的应用程序,可能共享90%的代码.我单独维护它们是因为经过一周或者2或3次未能弄清楚如何建立一个库并共享代码之后,我放弃了,就这样用它来了.

SwarmConnect是我使用的第一个jar,必须为两个应用程序创建一个库(请参阅下面的文件结构截图).

现在我的Lite版本正在运行并准备发布.我现在正试图将我的专业版本发布到需要发布的位置.我相当确定所有java/xml文件都是最新的并且准备就绪.当我在模拟器中运行专业版时,我收到以下错误:

[2013-04-18 11:24:41 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler;
[2013-04-18 11:24:41 - BibleTriviaPro] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler;
Run Code Online (Sandbox Code Playgroud)

我试过的事情:

  • 清洁/重建
  • 更新Eclipse
  • 删除bin和gen文件夹
  • 重启Eclipse
  • 加上其他一些东西

我的文件结构:

在此输入图像描述

可能问题是我正在尝试使用SwarmConnect作为2个项目(lite和pro)的库?

编辑:

下面是完美运行的lite版本的文件结构.在模拟器上编译并运行.

在此输入图像描述

java android dalvik dex

18
推荐指数
1
解决办法
4万
查看次数

使用Gradle在自定义类加载Dalvik(Android新建系统)

根据Fred Chung在Android开发者博客上介绍Dalvik中Custom Class Loading:

Dalvik VM为开发人员提供了执行自定义类加载的工具.应用程序可以从其他位置(如内部存储)或通过网络加载它们,而不是从默认位置加载Dalvik可执行文件("dex").

但是,没有多少开发人员需要进行自定义类加载.但那些按照博客文章中的说明进行操作的人可能会在使用Gradle(Google I/O 2013中引入的Android新构建系统)模仿相同行为时遇到一些问题.

究竟如何调整新构建系统以执行与旧(基于Ant)构建系统相同的中间步骤?

android dalvik dynamic-class-loaders gradle

18
推荐指数
1
解决办法
6341
查看次数