dalvik相关内容

为什么选择基于堆栈的虚拟机?为什么不基于队列的VM?

正如我调查的那样,有两种主要的方法来实现流程虚拟机: 基于堆栈,例如JVM,CLR等 或基于寄存器的,例如Lua,Dalvik等 基于寄存器的方法模仿物理处理器的体系结构. 但是对于基于堆栈的方法,还有许多其他数据结构. 我认为选择哪种方法主要取决于我们要如何存储/获取操作数.那么为什么选择堆栈呢?基于队列的虚拟机怎么样?还是其他选项,例如链表? 解决方案 StackO ..
发布时间:2020-04-25 07:28:30 其他开发

在使用多个dex文件时,是否有必要将同一个包的类保留在同一个dex中

关于标题 “同一个包的类”是指共享相同包访问权限的类。请注意,课程 a.b.c.Foo 没有对 a.b.Bar 类的包访问权限。因为如果前者的修饰符是默认的,后者无法访问前者。 问题 如果我将同一个包中的两个类分成两个dex文件,即使我正确加载它们,我也会在运行时遇到一些错误,logcat喜欢: I / dalvikvm(6498):DexOpt:非法方法访问(从Lcom ..
发布时间:2019-01-02 22:17:54 Java开发

访问本地字段与对象字段。文档错了吗?

文档似乎有误。有人能告诉我哪个是真的吗? 在性能神话部分是: 在没有JIT的设备上,缓存字段访问是关于比重复访问该字段快20%。使用JIT,字段访问成本与本地访问大致相同。 在避免内部Getters / Setters 部分是: 没有JIT,直接字段访问比调用一个简单的getter快 3x 。使用JIT(直接字段访问与访问本地一样便宜),直接字段访问比调用一个简单的gett ..
发布时间:2019-01-02 21:06:19 Java开发

为什么字节码在直接字段访问时调用Object-> getClass()

我反编译了Java(实际上是Dalvik)字节码。在方法的开头,我直接访问实例成员的字段(即不通过getter)。 似乎Java调用访问的实例成员上的Object.getClass()( mOther ),但不在任何地方使用结果。这是某种检查吗?为什么需要这个电话?我怀疑这是因为我直接访问一个字段(在该类中定义),但我没有看到连接。 Java代码和反编译的字节码如下。 (注意,最 ..
发布时间:2018-12-10 10:33:53 Java开发

Android:转换为Dalvik格式失败:无法执行dex:null

我正尝试在Android上使用 SmugFig SmugMug API。它是为J2SE设计的,我想象,所以我不知道它甚至可以在Android上工作,但我认为这是值得尝试,而不是试图创建我自己的API。 当我加载项目时,我收到以下错误: 转换为Dalvik格式失败:无法执行dex:null 它不说什么包它失败了,只是“Android包装问题”,但它没有这样做之前,我添加 ..
发布时间:2017-07-27 04:18:35 Java开发

dex加载器无法执行dex:方法ID不在[0,0xffff]中:65536

Dx警告:忽略匿名内部类的内部类属性 (com.amazonaws.javax.xml) stream.xerces.util.SecuritySupport12 $ 4)不附带 关联的EnclosingMethod属性。这个类可能是由一个 编译器生成的,而不是以现代的.class文件格式为目标。推荐的 解决方案是从源重新编译类,使用最新的编译器 ,而不指定任何“-target”类型选项 ..
发布时间:2017-07-27 01:57:21 Java开发

为什么android是建立在一个VM(Dalvik)

我很想知道谷歌选择在java虚拟机上开发android的框架。 在为Windows编写代码近6个月的过程中,我观察到在资源有限的平台上运行虚拟机上的代码真的很慢。有很多开销涉及。我知道java是可移植的等等,根本不可能使用母语,并获得VM提供的性能和功能?对于面向性能的应用程序,还是最终编写本机代码并用JNI包装, 那么为什么谷歌选择这个特定的堆栈: 基于ARM的核心(可以理解, ..
发布时间:2017-05-12 20:01:53 移动开发

Dalvik VM& Java内存模型(Android上的并发编程)

我正在从事Android项目,涉及大量的并发编程,我将实现一些自定义的线程间通信东西( java.util.concurent 不适合我的目的)。 并发编程通常不容易,但Dalvik似乎更难。要获得正确的代码,你应该知道一些具体的事情,以及Dalvik出现问题。我只是无法找到有关Dalvik VM的详细文档。大多数Android资源(即使是 developer.android.com )专注 ..
发布时间:2016-12-26 17:53:36 移动开发

Android的NDK:Dalvik的堆和本机堆 - 如何在这两者之间独立

我知道有Dalvik的(JVM)堆和本机堆在android平台。 和Dalvik的GC对本机堆没有工作。 但我不知道这是如何工作的,我的意思是如何的Andr​​oid操作系统将它们分开? 可能的情况下1:由独立的内存硬件组成的(我不相信很多) 可能的情况下2:Android操作系统有固定的内存量为堆 可能发生的情况。3:Android操作系统已分配的Dalvik堆内存的一部分,在必要的时 ..
发布时间:2016-03-29 23:03:27 移动开发

编程,如何写一个未优化code来计算10个整数的总和?

在Java,C或C ++,如何写的未优化 code来计算10个整数(从0到9)编程?总和 例如,我用下面的code,但它似乎都codeS(那些标记为//基线和//方法1)由编译器在编译时间和优化运行之前总变量被转换为常数。我证实,通过比较TIME1和TIME2是相似的。 我的问题是, 编程,如何总结的10个号码,强制编译器不优化code(没有常量传播/折叠,例如),以避免在编译时计算总和和迫 ..
发布时间:2016-03-20 23:28:50 Java开发

Smali语法DalvikVM运codeS

序言 我想了解如何使用Smali / Baksmali组装/分解为DEX文件DalvikVM说明。 问题 从这个.java文件 包GD;您好类{ 公共静态无效的主要(字串[] args) { 的System.out.println(“你好!”); } } 我已经生成以下smali汇编文件:的.class LGD /您好; 。超Ljava /郎/对象; ..
发布时间:2016-03-19 16:16:34 Java开发

如何调试dalvikvm拒绝运code?

如何使这些错误的意义吗?这是所有的日志猫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( ..
发布时间:2016-03-19 15:30:52 移动开发

压力测试的Andr​​oid的Dalvik

我一直在阅读了对Android的Dalvik,我很好奇,怎么一会去压力测试Dalvik的,以评估其稳定性。我理解的Dalvik是为内存处理器受限的设备。所以会分配大量内存/增加一些CPU内核的频率,然后启动多个应用程序来测试稳定的方式? 我也明白,每一个独立的程序得到itsown在Dalvik的实例。因此,另一种可能性强调的Dalvik将推出共享一个进程,并在Dalvik的一个实例,看到多个应用 ..
发布时间:2016-03-19 00:32:12 移动开发

compilin错误:字段必须有一个固定的大小:“可变长度阵列结构的推广将永远不会在Android 2.3.4源$ C ​​$ C支持

喜试图在安卓2.3.4源$ C ​​$ c确保libdvm时,我有以下错误, 外部/的elfutils / libebl / eblobjnote.c:43:17:错误:字段必须有一个固定的大小:扩展名“结构中的可变长度阵'将永远不会得到支持 uint32_t的版本[descsz / 4 - 1]; 这是由GCC 4.2在我的Mac OS X山狮报道一个真正的 ..
发布时间:2016-03-18 23:50:02 移动开发

在是否Android设备时跳?

System.currentTimeMillis的()是给错误的时间。 它自1980年返回时间值 也可以通过此功能拍摄时间值不同于有时实际时间。 该函数返回的一些样本值 315977198121 315965244789 316002166580 315982533137 解决方案 是的,System.currentTimeMillis的(返回)时间可以跳来跳去,例如由于器件的时 ..
发布时间:2016-03-18 22:50:21 移动开发

Dalvik的堆大小和堆基地

我不知道我怎么能确定堆基址和堆大小, 我希望能够转储我的应用程序堆, 有没有办法做到这一点? 另外,当我试图读取进程内存映射通过/ proc / PID /地图,我没有看到 在[堆]部分,为什么? 请问DVM分配使用mmap匿名的地区? 如果是的,我怎么可以跟踪他们? 解决方案 在linux的API,你可以使用showmap倾倒堆大小的信息,以及部分的 / ashmem / D ..
发布时间:2016-03-18 00:18:56 移动开发