这段时间在按照 https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html 简单编写了一个class文件解析程序,用的是Java…
从openjdk源码分析class文件格式
在拜读邓凡平老师的《深入理解Android Java虚拟机ART》后,试着结合openjdk 11的代码对class文件的格式进行分析。因为详细的介绍在《深入理解》中已经有说明,所以结合代码分析的…
(原创)Odex文件二进制分析
最近在看ART虚拟机相关的内容,稍微有了解的都能知道/data/dalvik-cache下的.dex后缀的文件和odex文件实际上都是修改过的ELF文件,网上有很多说明,但是貌似都没有找到一篇对一…
Native(C、C++)跨层访问Java注册的service
上一篇我们介绍了在Java层如何跨层访问在Native(C、C++)层注册的Binder service。这一篇我们打算反过来,在Native(C、C++)层跨层访问Java层注册的Binder …
Java跨层访问native(C/C++)注册的service
进行Binder开发时,比较多是在同语言下进行的,比如在JAVA下可以手动实现或者通过AIDL实现,在C++下手动实现。但是Binder也是可以夸语言通信的,这里打算分两篇来进行说明,其中一篇是在…
(转载)Android逆向工程相关工具集合
当你拿到Android手机的卡刷包/线刷包,你有没有想过解开它?当你眼前摆着一个APK/jar/so,你有没有想过反编译/反汇编/动态调试然后分析研究它?…… 刷机包 sparse img -> …
基于Android 9之应用冷启动过程分析(三)之进程创建过程
上一篇最后分析到:因为我们现在做的假设是应用的冷启动,所以系统中是还没有对应的进程的,需要通过startSpecificActivityLocked方法来创建对应的进程。这一篇我们从这个方法开始 …
基于Android 9之应用冷启动过程分析(二)
上一篇讲到最后会调用到startActivity,接着分析前想先说一下,其实这篇主要的目的还是想先了解点击应用到调用应用第一个Activity.onCreate方法的整个过程,所以中间有一些方法会…
基于Android 9之应用冷启动过程分析(一)
这次会先开始分析应用冷启动流程,即在系统中还没有对应的应用进程的情况下,点击应用在Launcher上图标到应用加载起来的一系列过程。下面直接开始进行分析: 点击Launcher上的应用图标 &em…
(原创)ActivityRecord、TaskRecord和ActivityStack之间的关系
很久没写博客了,是时候把写博客的习惯拾起来,今天就拿这一篇先做练练手了。 原本想着一开始就想着分析Android应用的启动过程的,但是在这个过程中发现有很多类或者说知识点没…