Browsed by
分类:Frameworks

Android/Frameworks Module

Android虚拟机分析4——Dalvik虚拟机启动

Android虚拟机分析4——Dalvik虚拟机启动

经常前面两篇的介绍,基本对Java虚拟机有一些了解了,现在我们来进入我们这个系统的重点,Android系统使用用的虚拟机。有一点得提到,在Android L之前,Android使用的是Dalvik虚拟机,现在是使用ART虚拟机。这时候就纠结,倒底是以Dalvik为蓝本研究Android虚拟机还是ART为蓝本?我准备这样安排,先以ART为蓝本,毕竟ART和Dalvik差别不是很大。最后一篇来讲ART的不同点。

Read More Read More

Android虚拟机分析3——JVM虚拟机探究

Android虚拟机分析3——JVM虚拟机探究

JAVA内存

运行时内存数据区域

Java虚拟机运行时数据区

对象的内存布局

对象头Mark
Word
实例数据 对象填充
存储内容 标志位 状态    
对象哈希码、对象分代年龄 1 未锁定    
指向锁记录的指针 0 轻量级锁定    
指向重量级锁的指针 10 膨胀(重量级锁定)    
空,不需要记录信息 11 GC标记    
偏向线程ID、偏向时间戳、对象分代年龄 1 可偏向    

Read More Read More

Android虚拟机分析2——相关名词解释

Android虚拟机分析2——相关名词解释

JAVA与JVM

JAVA即Java编译语言,JVM即Java虚拟机,是Java语言运行的根本。也Java语言“平台无关性”得以实现的核心。Java语言最开始是由SUN公司开发的,但后来Oracle收购了SUN公司,Java也成了Oracle公司的产品。JVM是开放标准的,任何可以在遵循JVM标准前提下开发自己的Java虚拟机,这也就造成关于“Java性能讨论”这个话题经常被提起。之后要提到的Dalvid虚拟机就是Google公司(AOSP联盟?)专门为Android系统开发的。关于Java语言的标准和JVM的标准,可以参考Oracle公司官网上文档。

Read More Read More

Android虚拟机分析1——路线与目标

Android虚拟机分析1——路线与目标

对于整个Java和Android的虚拟机,此系统文章算只是抛砖引玉,当然对于不同研究目的的人,也是有不同的研究程度。总之,有了这个系列文章,你可以深入虚拟机的美丽世界了。

路线

1,什么的Android虚拟机,与JAVA虚拟机的区别
2,.class,.dex,.odex文件介绍与区别
3,Dalvid虚拟机的启动工作(开始专注Android M的代码)
4,Dalvid虚拟机与JNI(Android Runtime)
5,Dalvid虚拟机与Xpose(参考innost)

Others

1,APK,JAR,ARR,等文件分析;
2,APK混淆,签名,权限
3,反编译

参考

ADB获得ROOT权限的探究——基于Android6.0

ADB获得ROOT权限的探究——基于Android6.0

ADB概述

adb的全称是Android Debug Bridge,是对Android设备进行调试的工具。这是调试通信的方式是基于C/S构架。在Android设备,运行ADBD服务,等待Client端的接入,这些Client可以通过usb,也可以通过TCP/IP协议来与Android设备的adbd连接。
总得来说,ADB的框架由三部分组成

Read More Read More

TOP