简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
<!--@page{margin:2cm}p{margin-bottom:0.21cm}td p{margin-bottom:0cm}th p{margin-bottom:0cm}pre.western{font-family:"DejaVu Sans Mono",monospace}pre.cjk{font-family:"
<!--@page{margin:2cm}td p{margin-bottom:0cm}p{margin-bottom:0.21cm}-->在分析Dalvik虚拟机运行之前,先要了解Davlik指令,但是了解Davlik指令之前又
<!--@page { margin: 2cm }P { margin-bottom: 0.21cm }-->从上一节可以知道Dalvik虚拟机入口点和创建虚拟机的函数,这一节继续分析运行时类调用虚拟机的代码片段,需要搞清楚怎么样运行JAVA的ZygoteInit类,Dalvik虚拟机又提供什么样的接口调用。运行时类代码如下:/*start
<br /><br />前面学习了属性系统的初始化和加载,还有保存到属性文件等功能,下面来学习属性服务的方面,它主要用来提供一种服务的方式给java虚拟机上层使用,或者java应用程序使用。start_property_service函数的代码如下:<br />#001 int start_property_service(void)<br />#002 {<br />#003 in
经历了跟体系结构密切相关的汇编代码之后,就可以进入C语言编写的结构无关的代码了。这个入口的函数是start_kernel函数,它主要更进一步地初始化系统相关的内容,以便系统进入一种服务状态,提供一种虚拟机的服务,提供各种API调用的服务。在start_kernel函数里,需要非常注意的是里面初始化函数的顺序,这些初始化函数不能随便调换初始化顺序,否则就会导致系统运行出错。由于这个函数的内容非常多,
要调试内核代码是一件不容易的事情,一般是需要双机调试的方法,一台电脑作为目标机器来运行编译出来的操作系统,另一台电脑作为跟踪调试的机器,用来查看操作系统输出的调试信息、以及输入命令给操作系统。现在就来介绍基于虚拟机的方式来调试内核代码,最简单的方式就是使用串口通讯的方式,并且串口设置为零调制方式,也就是说只需要把数据线接收和发送交叉连接就可以了。假如在物理的电脑里有两个串口,分别命名为COM
<!--@page { margin: 2cm }P { margin-bottom: 0.21cm }A:link { so-language: zxx }-->虚拟机的英文名称是VirtualMachine,简称为VM。通过这个名称就可知虚拟机是假的,不真实的机器,当然是与硬件的机器相比。比较科学的理解是这样:指通过软件模拟的具有完
通过上面的学习,了解了垃圾回收的原理和过程。那么Dalvik虚拟机是什么时候进行垃圾回收呢?要回答这个问题,那么得继续分析代码,继续进入下面的学习。其实,垃圾回收主要有两种方式,一种是虚拟机线程自动进行的,一种是手动进行的。现在先来学习自动进行的方式,所谓自动方式,就是虚拟机创建一个线程,这个线程定时进行。虚拟机在初始化时,就进行创建这个线程,如下的代码:if(gDvm.zygote){
<!--@page{margin:2cm}td p{margin-bottom:0cm}p{margin-bottom:0.21cm}-->在android系统里,通过复杂的编译过程,会把java源代码生成dex文件,然后在虚拟机
本项目主要开发、学习、讨论小语(milang)编程语言,它是以python语法为基础,然后改进它语法、增加直接生成机器码,混合C++的优点,增加基于寄存器的虚拟机实现。有意者,可加入QQ群:126707482qq: 9073204