logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Dalvik虚拟机线程初始化及函数执行流程

研究dalvik线程创建,只因为想搞清楚dalvik函数执行流程,那么这个流程的开端在哪里呢?我想到了线程,因为每个线程都有自己的Runnable,而这个入口一定就是Runnable开始执行的地方。带着这个疑问,我展开了一系列研究。首先,Thread开始执行时,要调用Thread.start(),如下public synchronized void start() {VMThread.cr

#虚拟机
Dalvik虚拟机异常处理机制

在写这篇文章之前首先提几个问题,try catch的时候虚拟机到底做了些什么,Thread的UncaughtExceptionHandler是怎么回事?jni函数的异常是如何抛出的,又是如何被虚拟机捕获的?我们以抛出一个异常为入口,来分析Dalvik虚拟机的异常处理机制,由于throw是关键字,执行时肯定为字节码,所以我们需要到虚拟机的解释器中查看,如果对解释器不太了解的话可以参考我之前的文章:

#虚拟机#dalvik
Android热修复技术总结

这两年Android热修复是个挺时髦的东西,基本分为两派,一个是Hook虚拟机的,一个是Hook ClassLoader的。本文就来聊聊这两类方案,算是我自己的理解了。先说说Hook虚拟机的,这个技术源于国外的Xposed,又被阿里发扬光大,总体来说是个逼格很高的技术。将Java的函数在虚拟机层面改成一个Native函数,之后这个函数的走向就完全由我们来控制了,我们可以将其指向一个我们精心设计的N

#android#虚拟机
Dalvik虚拟机反射调用函数执行流程

Dalvik虚拟机函数执行有以下几种方式:interpreted 调用 interpretedinterpreted 调用 nativenative 调用 interpretednative 调用 native反射调用 interpreted反射调用 native本章主要分析反射调用。新建一个工程如下: public class MainActivity extends Activit

#dalvik#虚拟机
到底了