- 博客(20)
- 收藏
- 关注
原创 Android 6.0中的ART运行时的垃圾回收机制
基于https://blog.youkuaiyun.com/luoshengyang/article/details/42072975,基本原理一致,但是代码等均为Android 6.0。 与Dalivk虚拟机类似,ART运行时也使用一个Heap对象来描述堆,类Heap中比较重要的变量:1. garbage_collectors_:std::vector<collector::GarbageCo...
2018-06-21 17:48:32
867
原创 论文笔记:Permission based Android security: Issues and countermeasures
题目:Permission based Android security: Issues and countermeasures 作者:Zheran Fang , Weili Han , Yingjiu Li 单位:Software School, Fudan University, Shanghai, 201203, China School of Informati
2017-10-14 18:11:45
448
原创 Securing Android: A Survey, Taxonomy, and Challenges --论文笔记
题目:Securing Android: A Survey, Taxonomy, and Challenges 作者:SUFATRIO,DARELL J.J.TAN,TONG-WEI CHUA and VRIZLYNN L.L. THING 单位:Institute for Infocomm Research,Singapore 出版:ACM Computing Surveys,Vol.
2017-10-14 18:09:37
430
原创 artQuickGenericJniTrampoline
该函数的注释如下:1798 /*1799 * Initializes an alloca region assumed to be directly below sp for a native call:1800 * Create a HandleScope and call stack and fill a mini stack with values to be pushed to re
2017-07-06 21:12:13
2312
原创 code_generator中的CompileBaseline(无优化)
//~/android-6.0.1_r62/art/compiler/optimizing/code_generator.cc中123 void CodeGenerator::CompileBaseline(CodeAllocator* allocator, bool is_leaf) {124 Initialize();125 if (!is_leaf) {126 Mark
2017-06-28 17:54:42
507
原创 boot.art&boot.oat
external/vogar/src/vogar/ModeId.java: // $BOOTCLASSPATH defined by system/core/rootdir/init.rc 而在~/android-6.0.1_r62/out/target/product/generic/root/init.rc中有: 7 import /init.environ.rc在~/android-
2017-06-21 10:29:16
3437
原创 Android6.0中的NativeBridge
主要参考:http://blog.youkuaiyun.com/roland_sun/article/details/49688311 一文,换成了Android6.0的实现过程。从Android从5.0开始,在其ART虚拟机的实现中,引入了一个叫做NativeBridge的中间模块。这个模块基本上就是为了在JNI调用时进行动态转码用的,自带了基本上所有的处理逻辑。 首先,我们来看看NativeBridge的
2017-06-15 09:25:44
2045
原创 Android6.0中 java堆的创建
主要参考:http://blog.youkuaiyun.com/luoshengyang/article/details/42379729 罗老师的 《ART运行时Java堆创建过程分析 》一文,将其中安卓4.4的代码和具体实现替换成Android6.0//art/runtime/runtime.cc 782 bool Runtime::Init(const RuntimeOptions& raw_optio
2017-06-14 11:09:03
920
原创 ART运行时的几种方法之间的互相调用
ART中有两种类型的方法: interpreted method:需要进行解释执行的方法。 compiled code:被编译成机器指令的类方法。 Thread类将外部库函数调用跳转表划分为3个,其中,interpreter_entrypoints_描述的是解释器要用到的跳转表,jni_entrypoints_描述的是JNI调用相关的跳转表,而quick_entrypoints_描述的是Qui
2017-06-11 20:25:05
3777
原创 Android6.0的应用进程启动过程部分分析
本文主要参考:http://blog.youkuaiyun.com/threepigs/article/details/50779056 深入理解Dalvik虚拟机- Android应用进程启动过程分析 一文,改成Android6.0的对应代码和启动过程。 Android的应用进程启动是apk在manifest里申明的Activity,Service,BroadcastReceiver等组件被调起时而触发的
2017-06-09 14:42:20
309
原创 Android6.0中ART执行类方法的过程分析二
在Android运行时ART加载类和方法的过程分析一文中,我们通过AndroidRuntime类的成员函数start来分析类和类方法的加载过程。本文同样是从这个函数开始分析类方法的执行过程,如下所示://frameworks/base/core/jni/AndroidRuntime.cpp1007 void AndroidRuntime::start(const char* className,
2017-06-08 19:24:14
1731
转载 Android6.0中ART执行类方法的过程分析一
参考:http://blog.youkuaiyun.com/luoshengyang/article/details/40289405 罗升阳老师的 Android运行时ART执行类方法的过程分析 一文所写,主要将代码实现部分做了改动。OatFile* OatFile::Open函数用来加载oat文件,原本的后端是portable和quick,而现在的是quick和optimizing,现在的这两个后端在ope
2017-06-07 20:48:41
2107
原创 Android6.0中oat文件的加载过程
主要参考:http://blog.youkuaiyun.com/luoshengyang/article/details/39307813 罗升阳老师的Android运行时ART加载OAT文件的过程分析 。将代码换成了Android6.0部分。在分析OAT文件的加载过程之前,我们需要简单介绍一下OAT是如何产生的。如前面Android ART运行时无缝替换Dalvik虚拟机的过程分析一文所示,APK在安装的过程
2017-06-07 15:22:54
3797
转载 Android6.0中ART替换DVM的过程分析
参考http://blog.youkuaiyun.com/luoshengyang/article/details/18006645 罗升阳老师的Android ART运行时无缝替换Dalvik虚拟机的过程分析 Zygote进程中的Dalvik虚拟机是从AndroidRuntime::start这个函数开始创建的,所以从该函数开始: 999 /*1000 * Start the Android runtim
2017-06-07 11:41:02
1627
原创 ART runtime的java堆
参考http://blog.youkuaiyun.com/luoshengyang/article/details/42379729 罗升阳老师的 ART运行时Java堆创建过程分析 一文:Init函数定义在~/android-6.0.1_r62/art/runtime/runtime.cc中: 782 bool Runtime::Init(const RuntimeOptions& raw_options,
2017-06-07 09:16:41
903
原创 CodeGenerator
类CodeGenerator:334 protected:335 CodeGenerator(HGraph* graph,336 size_t number_of_core_registers,337 size_t number_of_fpu_registers,338 size_t num
2017-06-07 09:05:01
1002
原创 HGraphBuilder方法分析一
HGraph Hgrapbuilder Android 6.0ART optimizing compiler
2017-06-05 17:11:09
594
原创 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-06-05 16:55:51
490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人