Articles of dalvik

如何调试“com.android.okhttp”

在android kitkat中,URLConnection的实现已被OkHttp取代,它如何调试呢? OkHttp在这个目录中: external/okhttp/android/main/java/com/squareup/okhttp 当我调用UrlInstance.openConnection().getClass().getName() ,它会显示com.android.okhttp.internal.http.HttpURLConnectionImpl 我该怎么调试呢? 似乎我无法将/android/main/java/com/squareup/okhttp/*与com.android.okhttp.* 当代码执行return streamHandler.openConnection(this); /** * Returns a new connection to the resource referred to by this URL. * * @throws IOException if an error occurs while opening the connection. */ public URLConnection openConnection() throws IOException { return streamHandler.openConnection(this); } 继续前进,但无法深入了解com.squareup.okhttp.HttpHandler#openConnection 下图中调试器中突出显示的线程为灰色。 package com.squareup.okhttp; import java.io.IOException; import java.net.Proxy; import […]

Android Studio在设备上慢速调试

一直很好,直到最近我注意到调试变得非常缓慢。 我不记得任何导致这种情况的剧烈变化。 UI导航有明显的滞后,网络操作需要永远。 如果我重新启动手机并重新启动Android Studio / ADB,这可以解决一些问题。 在正常模式下运行时,应用程序运行正常。 我在Android 4.4.2上使用Dalvik运行时。 我还没有用过ART。 关于如何解决这个问题的任何建议?

Android NDK溢出dalvik JNI本地参考表

我有以下问题,从c ++我发送巨大的字符串[]到java。 巨大的=最多20行; 我正在做以下事情 jint jtype = 2; jstring emptyString = env->NewStringUTF(“”); jobjectArray data = (jobjectArray)env->NewObjectArray(7, env->FindClass(“java/lang/String”), emptyString); env->SetObjectArrayElement( data,0,env->NewStringUTF(item->get_id().c_str()); env->SetObjectArrayElement( data,1,env->NewStringUTF(item->get_number().c_str()); env->SetObjectArrayElement( data,2,env->NewStringUTF(item->get_fullname().c_str()); env->SetObjectArrayElement( data,3,env->NewStringUTF(item->get_mf().c_str()); env->SetObjectArrayElement( data,4,env->NewStringUTF(item->get_dob().c_str()); env->CallVoidMethod(dao, jsaveItem, data, jtype); int i; for (i = 0; i GetObjectArrayElement(data, i); env->DeleteLocalRef(string); } env->DeleteLocalRef(emptyString); env->DeleteLocalRef(data); env->DeleteLocalRef(dao); 这是在一个循环中发生的所以我正在为我想要保存在数据库中的每个对象执行它,所以你可以想象,它发生了很多次。 所以我很考虑VM并删除我创建的每个字符串的本地引用,但我仍然得到: ReferenceTable overflow (max=512) Last 10 entries in […]

VFY:无法解析虚方法

我在我的Android应用程序中使用Jackson。 我在构建路径中添加了这两个jar: jackson-core-asl-1.0.0.jar jackson-mapper-asl-1.0.0.jar 但是,我在Logcat中一直看到这个: 11-24 18:25:15.093: I/dalvikvm(28842): Could not find method org.codehaus.jackson.map.ObjectMapper.getTypeFactory, referenced from method org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.getJavaType 11-24 18:25:15.093: W/dalvikvm(28842): VFY: unable to resolve virtual method 17967: Lorg/codehaus/jackson/map/ObjectMapper;.getTypeFactory ()Lorg/codehaus/jackson/map/type/TypeFactory; 这只是在那种方法上。 我在类似的错误上搜索了StackOverflow,但它们都是: 库错误的版本(我的是正确的) 库不在/ libs中但在/ lib中(我将它们放在/ libs中) 我的Android版本是4.0.3。 我将它与Spring Android库结合使用。

Android NDK:Dalvik Heap和Native Heap – 两者之间的区别

我知道在Android平台上有Dalvik(JVM)堆和Native堆。 并且Dalvik GC在本机堆上没有工作。 但我不确定这是如何工作的,我的意思是Android操作系统是如何将它们分开的? 可能的情况1:由独立的内存硬件组成(我不相信太多) 可能的情况2:Android OS对两个堆都有固定的内存量 可能的情况3:Android OS必须在必要时将部分Dalvik内存堆分配为本机堆,因此本机堆和Dalvik堆的大小是灵活的。 哪一个是真的,还是我没有提到的可能性?

Android ART是否像Dalvik一样支持运行时动态类加载?

目前, 可以将.dex类文件动态加载到Android的Dalvik VM中。 这也可能用于在运行时生成动态代码 。 即将到来的ART运行时间仍然可以吗?

通过Java List高效循环

以下列表来自于2008年的谷歌I / O演讲,名为“Dalvik虚拟机内部”,它列出了从最高效率到最低效率循环遍历一组对象的方法: (1) for (int i = initializer; i >=0; i–) //hard to loop backwards (2) int limit = calculate_limit(); for (int i= 0; i< limit; i++) (3) Type[] array = get_array(); for (Type obj : array) (4) for (int i =0; i< array.length; i++) //gets array.length everytime (5) for (int i=0; i < […]

Multidexing android应用程序的缺点

最近我读到了有关Dalvik 65K方法限制的内容。 我已经知道方法调用列表只能调用第一个65536方法引用。 为解决这个问题,我们提供了许多解决方案。 其中一个是多索引,我们通过使用android的支持库将.dex文件拆分为多个类[classes.dex,classes1.dex …]。 我没有理解的是,由于这种多重索引,Android应用程序有什么缺点,为什么我们应该尽量减少引用方法的数量。 基本上在我的理解中,为了减少方法计数,我必须减少模块化,这使得我的代码不那么可读,从而消除了在删除第三方库代码时所消耗的小时数。 减少方法计数值得吗?

在Android中收集原始types的垃圾吗?

我知道这可能是一个愚蠢的问题,但我的背景更多是用c ++和管理自己的记忆。 我目前正在削减我可以从我的一个游戏中尝试减少垃圾收集频率和感知“滞后”的每一个分配,所以我创建的每个variables都是一个Object(例如String和Rect)我我确保我先在构造函数中创建它,而不是在简单的10行函数中创建临时variables…(我希望这是有道理的) 无论如何我今晚工作得更多了,我意识到我对垃圾收集的假设可能完全错了,原始types(int,boolean,float)是我在10行函数中创建的原始typesvariables每秒20次增加我的垃圾收集问题? 所以一年前我每隔几秒就会在logcat中看到一条消息 GC在101ms内释放了4010个对象/ 484064个字节 现在我每隔15-90秒左右看到一条消息…… 所以重新解释我的问题:看到这条消息时是否包含原始types(int,float,boolean等)?

Dalvik VM错误:发现exception“Javax.xml.namespace.QName.class”

这不是一个问题。 相反,当您使用外部API进行开发和Android.jar时,在Android中发现的常见问题的观察结果不会复制到您的项目中!