dalvik相关内容
正如我调查的那样,有两种主要的方法来实现流程虚拟机: 基于堆栈,例如JVM,CLR等 或基于寄存器的,例如Lua,Dalvik等 基于寄存器的方法模仿物理处理器的体系结构. 但是对于基于堆栈的方法,还有许多其他数据结构. 我认为选择哪种方法主要取决于我们要如何存储/获取操作数.那么为什么选择堆栈呢?基于队列的虚拟机怎么样?还是其他选项,例如链表? 解决方案 StackO
..
关于标题 “同一个包的类”是指共享相同包访问权限的类。请注意,课程 a.b.c.Foo 没有对 a.b.Bar 类的包访问权限。因为如果前者的修饰符是默认的,后者无法访问前者。 问题 如果我将同一个包中的两个类分成两个dex文件,即使我正确加载它们,我也会在运行时遇到一些错误,logcat喜欢: I / dalvikvm(6498):DexOpt:非法方法访问(从Lcom
..
文档似乎有误。有人能告诉我哪个是真的吗? 在性能神话部分是: 在没有JIT的设备上,缓存字段访问是关于比重复访问该字段快20%。使用JIT,字段访问成本与本地访问大致相同。 在避免内部Getters / Setters 部分是: 没有JIT,直接字段访问比调用一个简单的getter快 3x 。使用JIT(直接字段访问与访问本地一样便宜),直接字段访问比调用一个简单的gett
..
我反编译了Java(实际上是Dalvik)字节码。在方法的开头,我直接访问实例成员的字段(即不通过getter)。 似乎Java调用访问的实例成员上的Object.getClass()( mOther ),但不在任何地方使用结果。这是某种检查吗?为什么需要这个电话?我怀疑这是因为我直接访问一个字段(在该类中定义),但我没有看到连接。 Java代码和反编译的字节码如下。 (注意,最
..
在BitmapFactory中获取异常。不确定是什么问题。 (我可以猜到这个问题,但不知道为什么会发生这种情况) ERROR / AndroidRuntime(7906):java.lang.OutOfMemoryError:位图大小超过VM预算 错误/ AndroidRuntime(7906):在android.graphics.BitmapFactory.decodeFile(Bit
..
我正尝试在Android上使用 SmugFig SmugMug API。它是为J2SE设计的,我想象,所以我不知道它甚至可以在Android上工作,但我认为这是值得尝试,而不是试图创建我自己的API。 当我加载项目时,我收到以下错误: 转换为Dalvik格式失败:无法执行dex:null 它不说什么包它失败了,只是“Android包装问题”,但它没有这样做之前,我添加
..
Dx警告:忽略匿名内部类的内部类属性 (com.amazonaws.javax.xml) stream.xerces.util.SecuritySupport12 $ 4)不附带 关联的EnclosingMethod属性。这个类可能是由一个 编译器生成的,而不是以现代的.class文件格式为目标。推荐的 解决方案是从源重新编译类,使用最新的编译器 ,而不指定任何“-target”类型选项
..
我很想知道谷歌选择在java虚拟机上开发android的框架。 在为Windows编写代码近6个月的过程中,我观察到在资源有限的平台上运行虚拟机上的代码真的很慢。有很多开销涉及。我知道java是可移植的等等,根本不可能使用母语,并获得VM提供的性能和功能?对于面向性能的应用程序,还是最终编写本机代码并用JNI包装, 那么为什么谷歌选择这个特定的堆栈: 基于ARM的核心(可以理解,
..
我正在从事Android项目,涉及大量的并发编程,我将实现一些自定义的线程间通信东西( java.util.concurent 不适合我的目的)。 并发编程通常不容易,但Dalvik似乎更难。要获得正确的代码,你应该知道一些具体的事情,以及Dalvik出现问题。我只是无法找到有关Dalvik VM的详细文档。大多数Android资源(即使是 developer.android.com )专注
..
我知道有Dalvik的(JVM)堆和本机堆在android平台。 和Dalvik的GC对本机堆没有工作。 但我不知道这是如何工作的,我的意思是如何的Android操作系统将它们分开? 可能的情况下1:由独立的内存硬件组成的(我不相信很多) 可能的情况下2:Android操作系统有固定的内存量为堆 可能发生的情况。3:Android操作系统已分配的Dalvik堆内存的一部分,在必要的时
..
在Java,C或C ++,如何写的未优化 code来计算10个整数(从0到9)编程?总和 例如,我用下面的code,但它似乎都codeS(那些标记为//基线和//方法1)由编译器在编译时间和优化运行之前总变量被转换为常数。我证实,通过比较TIME1和TIME2是相似的。 我的问题是, 编程,如何总结的10个号码,强制编译器不优化code(没有常量传播/折叠,例如),以避免在编译时计算总和和迫
..
如果我想要得到这样的外部路径和设备具有的Android 2.1(API 7) 文件f; INT sdkVersion =的Integer.parseInt(Build.VERSION.SDK); 如果(sdkVersion> = 8){ 的System.out.println(“&GT = 8”); F =
..
序言 我想了解如何使用Smali / Baksmali组装/分解为DEX文件DalvikVM说明。 问题 从这个.java文件 包GD;您好类{ 公共静态无效的主要(字串[] args) { 的System.out.println(“你好!”); } } 我已经生成以下smali汇编文件:的.class LGD /您好; 。超Ljava /郎/对象;
..
我想用下面的API,它是的Dalvik / VM /本地/ dalvik_system_DexFile.cpp: 静态无效Dalvik_dalvik_system_DexFile_defineClass(常量U4 * ARGS,JValue * presult) 静态无效Dalvik_dalvik_system_DexFile_openDexFile_bytearray(常量U4 *
..
如何使这些错误的意义吗?这是所有的日志猫releavant到错误。其他均为GC类型的消息。 01-07 19:14:08.536:W / dalvikvm(5780):VFY:寄存器2 V4-5值6,24 01-07 19:14:08.536:W / dalvikvm(5780):VFY:在拒绝运code 0xce 0x004a 01-07 19:14:08.536:W / dalvikvm(
..
而在我的应用程序执行Twitter的整合,我发现Eclipse调试器下面奇怪。是什么原因造成的? 我使用这个AsyncTask的使用twitter4j 3.0.3从Twitter获得一个请求令牌。 公共类TwitterRequestAsync扩展的AsyncTask<太虚,太虚,RequestToken> { 私人上下文的背景下; 公共TwitterRe
..
我一直在阅读了对Android的Dalvik,我很好奇,怎么一会去压力测试Dalvik的,以评估其稳定性。我理解的Dalvik是为内存处理器受限的设备。所以会分配大量内存/增加一些CPU内核的频率,然后启动多个应用程序来测试稳定的方式? 我也明白,每一个独立的程序得到itsown在Dalvik的实例。因此,另一种可能性强调的Dalvik将推出共享一个进程,并在Dalvik的一个实例,看到多个应用
..
喜试图在安卓2.3.4源$ C $ c确保libdvm时,我有以下错误, 外部/的elfutils / libebl / eblobjnote.c:43:17:错误:字段必须有一个固定的大小:扩展名“结构中的可变长度阵'将永远不会得到支持 uint32_t的版本[descsz / 4 - 1]; 这是由GCC 4.2在我的Mac OS X山狮报道一个真正的
..
System.currentTimeMillis的()是给错误的时间。 它自1980年返回时间值 也可以通过此功能拍摄时间值不同于有时实际时间。 该函数返回的一些样本值 315977198121 315965244789 316002166580 315982533137 解决方案 是的,System.currentTimeMillis的(返回)时间可以跳来跳去,例如由于器件的时
..
我不知道我怎么能确定堆基址和堆大小, 我希望能够转储我的应用程序堆, 有没有办法做到这一点? 另外,当我试图读取进程内存映射通过/ proc / PID /地图,我没有看到 在[堆]部分,为什么? 请问DVM分配使用mmap匿名的地区? 如果是的,我怎么可以跟踪他们? 解决方案 在linux的API,你可以使用showmap倾倒堆大小的信息,以及部分的 / ashmem / D
..