dalvik是android中使用的虚拟机,基于寄存器,分析基于android4.2源代码.本篇主要分析的是dalvik中的解释器部分,源码位于/dalvik/vm,主要代码在interp和mterp文件夹下. 我们知道java能运行在各个平台在于它运行在虚拟机上,由虚拟机来与各个硬件平台打交道(所以说"跨平台"都是假的啰(⊙▽⊙)).则虚拟机中解释器(将字节码解释成机器码)代码必然是依赖于各平台的,且为了方便管理必定是可配置式模块化.怎么理解呢     ◔ ‸◔?  直接在andro…
android的安装包是个apk文件,其中包含dex.资源及签名文件.其中dex是包含程序运行的类代码,而android是运行在dalvik(5.0之前)上的.本篇我们就来看下dalvik是如何把dex载入并运行的. 先看整体脉络(重点照顾解析步骤,优化自行查找资料): android在安装apk时会验证dex文件是否符合规范,并优化dex生成odex:接着会将odex文件解析成易于被dalvik加载和执行的dexFile结构体.下面我们就跟随源码看下dex的心路历程吧. apk的安装在java…
Android Dalvik虚拟机的特点: l  体积小,占用内存空间小. l  专有DEX可执行文件. l  常量池采用32位索引值,寻址类方法名,字段名,常量更快. l  基于寄存器架构,并拥有一套完整的指令系统. l  提供生命周期管理.堆栈管理.线程管理.安全和异常管理以及垃圾回收等重要功能. l  所有的Android程序都运行在Android系统进程里,每个进程对应一个Dalvik虚拟机实例. 1.Dalvik虚拟机与Java虚拟机的区别 Java虚拟机运行的是Java字节码,Dal…
虽然Android平台使用Java来开发应用程序,但Android程序却不是运行在标准Java虚拟机上的. 可能是出于效率和版权的考虑,Google为Android专门设计了一套虚拟机Dalvik Virtual Machine. 而4.4版本的Android的「开发者选项」中已经添加了Art模式和Dalvik模式切换的功能,而前几天Google I/O宣布 下一代Android(代号L)会正式移除Dalvik. 因为: 1,ART的性能比Dalvik好 2,ART对dex的检验比Dalvik严…
android大多使用java来开发,java中有个概念叫jni.当然说到jni,必然是少不了native code.在android中就是so库.我们来分析下jni在android dalvik的使用,以下篇幅是我对Dalvik虚拟机JNI方法的注册过程分析文章的学习和注解.在这之前先说几个概念: JavaVM:虚拟机实例,也可以通过全局变量gDvm所描述的一个DvmGlobals结构体的成员变量vmList来描述的: JNIEnv:用来描述当前线程的Java环境,利用此结构可以调用在Zygo…
BOOTCLASSPATH简介1.BOOTCLASSPATH是Android Linux的一个环境变量,可以在adb shell下用$BOOTCLASSPATH看到.2.BOOTCLASSPATH于/init.rc文件中export,如果没有找到的话,可以在init.rc中import的文件里找到(如import /init.environ.rc).3.init.rc文件存在于boot.img的ramdisk映像中.如果仅仅是修改/init.rc文件,重启后会被ramdisk恢复,所以直接修改是…
浅析java程序的执行过程 转帖来源: https://www.cnblogs.com/wangjiming/p/10315983.html 之前学习过 这一块东西 但是感觉理解的不深刻. copy一下 以后有时间 再仔细看看这一块 JAVA_HOME 还有 PATH的处理 大二时 同学用eclipse 时 教过我. 感觉 这些年 没写代码 的确严重制约自己的进步 虽然了解了很多 原理 但是都不够深入. 没有复制 最后的版权全 在这里说明一下来源.   在研究任何一门语言时,无论是面向过程的c,…
原文地址: Android 设备,如何root,执行adb shell,查看设备中的数据库信息等…
[DESCRIPTION]      在android P版本上如果按照“FAQ18076 android 6.0 M userdebug版本执行adb remount失败”的做法在userdebug版本上执行adb remount会提示以下错误: remount of the / superblock failed: Permission deniedremount failed      原因是android P版本后google启用avb(Android Verified Boot)2.0…
Unity3D研究院之使用Android的硬件缩放技术优化执行效率 http://www.xuanyusong.com/archives/3205 Android中GLSurfaceView在横竖屏切换时重新创建表面缓冲导致的问题 http://blog.k-res.net/archives/1702.html https://stackoverflow.com/questions/7185644/android-opengl-crazy-aspect-ratio-after-sleep…