Dalvik是Android程序的运行虚拟机,代码保存在Android源码中的"dalvik/"目录下,Dalvik虚拟机各个子目录的具体说明如下:Android.mk: 是虚拟机编译的makefile文件dalvikvm: 此目录是虚拟机命令行调用入口文件的目录,主要用来解释命令行参数,调用库函数...
分类:
其他好文 时间:
2016-01-05 23:58:19
阅读次数:
381
jvm虚拟机:指令集为零地址形式的指令集,即指令的源参数和目标参数都是隐含的,通过java虚拟机中提供的一种数据结构“求值栈”来传递。dalvik虚拟机运行时也为每个线程维护一个PC计数器和调用栈,此调用栈 维护一份寄存器列表,寄存器的数量在方法结构体的registers字段中给出,DVM根据这个值...
分类:
移动开发 时间:
2016-01-04 10:08:15
阅读次数:
169
方法一: 如何查看android对应用的内存限制每款手机对应用的限制都是不一样的,毕竟硬件不同,我们可以使用如下方式来查看单独的应用可使用的最大内存: 执行命令:Shell代码adbshellgetprop|grepheap[dalvik.vm.heapgrowthlimit]:[64m][dalv...
分类:
移动开发 时间:
2015-12-23 21:04:39
阅读次数:
219
当consle(控制台)出现Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.Conversion to Dalvik format failed: Unabl...
分类:
移动开发 时间:
2015-12-23 17:57:19
阅读次数:
202
Androidapi.JNIBridge负责和JNI交互.,既然要交互,那么首先就是需要获得JNI的运行环境,Android本身内置的就有一个Java(Dalvik)虚拟机。所以这个第一步就肯定是要这个虚拟机和我们当前的运行线程环境关联。这时候Androidapi.JNIBridge中的TJNIRe...
分类:
移动开发 时间:
2015-12-10 23:35:43
阅读次数:
248
今天在使用Android Studio的时候突然发现代码没错,so包也引入了,各个版本都引入了,但是就是一直报错:java.lang.UnsatisfiedLinkError: Couldn't load serphone from loader dalvik.system.PathClassLoa...
分类:
移动开发 时间:
2015-11-30 13:10:41
阅读次数:
397
本文分析so加载的步骤,其实在之前dalvik浅析二中也有提及,但那重点关注的是jni。android中so库的加载,代码如下:loadLibrary("nanosleep"); 我们来看下它的执行流程吧: 先调用dlopen来载入so文件;find_library在soinfo结构(进...
分类:
移动开发 时间:
2015-11-19 22:32:34
阅读次数:
169
Dalvik模式 如果要解释清楚什么是ART模式,我们就需要从Android系统的应用编译模式说起,我们都知道Android系统是以Linux系统为底层构建的,Android系统是开源(源代码公开)的,Android系统势必会适配到不同硬件配置的设备上,因此谷歌为了降低应用的开发难度在Linux底....
分类:
其他好文 时间:
2015-11-08 19:24:34
阅读次数:
316
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。 依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个Andr...
分类:
编程语言 时间:
2015-11-08 19:24:07
阅读次数:
239
ContentProvider提供数据 在Android中,他的每个应用都是相互独立的,各自运行在自己的Dalvik虚拟机中,但现实使用中常常需要在多个应用之间进行数据交换,例如发短信需要获取联系人中的内容,QQ上传头像需要获取相册内容等等,Android为这种跨应用的数据交换提供了一个标准Cont...
分类:
移动开发 时间:
2015-11-08 17:54:12
阅读次数:
209