自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Android 6.0中的ART运行时的垃圾回收机制

基于https://blog.csdn.net/luoshengyang/article/details/42072975,基本原理一致,但是代码等均为Android 6.0。     与Dalivk虚拟机类似,ART运行时也使用一个Heap对象来描述堆,类Heap中比较重要的变量:1. garbage_collectors_:std::vector<collector::GarbageCo...

2018-06-21 17:48:32 818

原创 论文笔记: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 387

原创 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 373

原创 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 2145

原创 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 473

原创 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 3294

原创 Android6.0中的NativeBridge

主要参考:http://blog.csdn.net/roland_sun/article/details/49688311 一文,换成了Android6.0的实现过程。从Android从5.0开始,在其ART虚拟机的实现中,引入了一个叫做NativeBridge的中间模块。这个模块基本上就是为了在JNI调用时进行动态转码用的,自带了基本上所有的处理逻辑。 首先,我们来看看NativeBridge的

2017-06-15 09:25:44 1941

原创 Android6.0中 java堆的创建

主要参考:http://blog.csdn.net/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 855

原创 ART运行时的几种方法之间的互相调用

ART中有两种类型的方法: interpreted method:需要进行解释执行的方法。 compiled code:被编译成机器指令的类方法。 Thread类将外部库函数调用跳转表划分为3个,其中,interpreter_entrypoints_描述的是解释器要用到的跳转表,jni_entrypoints_描述的是JNI调用相关的跳转表,而quick_entrypoints_描述的是Qui

2017-06-11 20:25:05 3550

原创 Android6.0的应用进程启动过程部分分析

本文主要参考:http://blog.csdn.net/threepigs/article/details/50779056 深入理解Dalvik虚拟机- Android应用进程启动过程分析 一文,改成Android6.0的对应代码和启动过程。 Android的应用进程启动是apk在manifest里申明的Activity,Service,BroadcastReceiver等组件被调起时而触发的

2017-06-09 14:42:20 257

原创 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 1654

转载 Android6.0中ART执行类方法的过程分析一

参考:http://blog.csdn.net/luoshengyang/article/details/40289405 罗升阳老师的 Android运行时ART执行类方法的过程分析 一文所写,主要将代码实现部分做了改动。OatFile* OatFile::Open函数用来加载oat文件,原本的后端是portable和quick,而现在的是quick和optimizing,现在的这两个后端在ope

2017-06-07 20:48:41 2016

原创 Android6.0中oat文件的加载过程

主要参考:http://blog.csdn.net/luoshengyang/article/details/39307813 罗升阳老师的Android运行时ART加载OAT文件的过程分析 。将代码换成了Android6.0部分。在分析OAT文件的加载过程之前,我们需要简单介绍一下OAT是如何产生的。如前面Android ART运行时无缝替换Dalvik虚拟机的过程分析一文所示,APK在安装的过程

2017-06-07 15:22:54 3679

转载 Android6.0中ART替换DVM的过程分析

参考http://blog.csdn.net/luoshengyang/article/details/18006645 罗升阳老师的Android ART运行时无缝替换Dalvik虚拟机的过程分析 Zygote进程中的Dalvik虚拟机是从AndroidRuntime::start这个函数开始创建的,所以从该函数开始: 999 /*1000 * Start the Android runtim

2017-06-07 11:41:02 1591

原创 ART runtime的java堆

参考http://blog.csdn.net/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 853

原创 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 959

原创 从HGraph生成SSA

SSAbuilerHGraphART

2017-06-06 14:05:07 579

原创 HGraph&HBasicBlock

HGraphHBasicBlockART

2017-06-05 20:44:45 658

原创 HGraphBuilder方法分析一

HGraph Hgrapbuilder Android 6.0ART optimizing compiler

2017-06-05 17:11:09 537

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-06-05 16:55:51 211

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除