lin20080410的专栏

从站在巨人的肩上,向成为巨人迈进... 互相学习!

排序:
默认
按更新时间
按访问量

安卓开发热修复技术原理

https://www.jianshu.com/p/b9ed58405ded安卓开发热修复技术原理及选型

2018-06-19 21:26:36

阅读数:4

评论数:0

ART的垃圾收集过程

ART运行时垃圾收集机制简要介绍和学习计划https://blog.csdn.net/luoshengyang/article/details/42072975

2018-06-13 22:52:25

阅读数:4

评论数:0

Android ART虚拟机执行引擎-本地代码的执行(十)

以前面分析的虚拟机的启动流程 ART 虚拟机的启动 为例。zygote在调用AndroidRuntime的start函数时传入一个class名称:runtime.start("com.android.internal.os.ZygoteInit", args, ...

2018-02-26 22:14:02

阅读数:72

评论数:0

Android ART虚拟机执行引擎-JIT(九)

Just-in-time compilation是一种动态编译,是在程序运行过程中才执行编译工作。相对于ART的核心技术ahead-of-time,JIT有几个有点:比AOT更节省存储空间;不需要在每次安装,或者系统升级、应用升级后都做AOT优化。因为不需要在程序安装时执行AOT预编译,所以不会出...

2018-02-25 21:15:33

阅读数:54

评论数:0

Android ART虚拟机执行引擎-Interpreter(八)

ART虚拟机是一个Interpreter+JIT+AOT的共存环境。ART虚拟机中解释器的实现源码在art/runtime/interpreter中,其中与平台相关的汇编代码保存在目录art/runtime/interpreter/mterp中,因为interpreter有两个版本,一种是C语言实...

2018-02-25 16:08:06

阅读数:106

评论数:0

Android ART虚拟机中的线程管理(七)

一,线程的创建在java代码中可以有多种方式创建一个线程,常用的方法是:Thread thd = new Thread();这个创建会调用init,init2初始化一个线程:libcore/ojluni/src/main/java/java/lang/Thread.java private ...

2018-02-24 07:31:38

阅读数:79

评论数:0

Android ART VM启动流程(六)

接着前一篇博文 ART VM的启动流程,继续分析启动虚拟机的核心函数是startVM,frameworks/base/core/jni/AndroidRuntime.cppint AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bo...

2018-02-14 19:35:51

阅读数:79

评论数:0

Android ART VM的启动流程(五)

Android系统的第一个进程是init,init通过解析init.rc脚本来启动关键的守护进程和各种系统服务--其中包括zygote这个应用程序的孵化器。system/core/rootdir/init.zygote64.rc(这个文件会被import进init.rc中)service zygo...

2018-02-14 19:30:37

阅读数:82

评论数:0

Android ART VM的文件格式-OAT(四)

一,与oat相关的文件后缀参考老罗的博客:OAT文件1).oat,OAT是由dex2oat产生的,本质上也是属于elf文件。2).odex,在Dalvik中,odex表示被优化后的dex文件;ART虚拟机中,它实际上是oat文件。oat文件除了遵循elf文件规范,又根据虚拟机的需求进行了扩展--最...

2018-02-14 07:40:36

阅读数:91

评论数:0

Android 动态库的加载system.loadlibary(三)

System.loadlibary,System.load是怎么加载so库的?他们是在Runtime的启动过程中通过loadnativelibary来加载libjavacore.so的动态库,这个动态库是这两个函数的实现体。libcore/ojluni/src/main/java/java/lan...

2018-02-13 20:59:58

阅读数:214

评论数:0

Android ART VM可执行文件格式-ELF(二)

ART虚拟机,通过dex2oat将dex预编译成机器码的oat文件,是基于linux中的可执行文件格式ELF所做的扩展。ELF(Executable and Linkable Format)的处理流程:它至少支持三种文件形态:可重定向文件(Relocatable File),可执行文件(Execu...

2018-02-12 21:58:24

阅读数:61

评论数:0

Android运行时ART简要介绍和学习计划

转自:老罗的博客ART VMAndroid运行时ART简要介绍和学习计划         Android在4.4就已推出新运行时ART,准备替代用了...

2018-02-12 20:54:27

阅读数:124

评论数:0

Android ART虚拟机(一)

Android的应用程序开发语言首选的是java,所以Android虚拟机或多或少都会借鉴JVM中的一些设计思想和技术实现。虽然严格意义上讲Android的dalvik/art并不是纯正的java虚拟机(因为没有完全遵循JVM规范),但是本质上跟hotspot等jvm又有很多相似。所以先理解jav...

2018-02-12 09:15:25

阅读数:52

评论数:0

Android Dalvik虚拟机基础

Android Dalvik虚拟机(尽管现在被art取代,但不代表它一无是处,了解dalvik有助于理解art)在Android 4.4之前,Dalvik一直是Android中默认的虚拟机,后面推出了ART运行环境机制,逐步完全取代了Dalvik。Dalvik 和art都可以支持已经转换为.dex...

2018-02-11 16:56:28

阅读数:57

评论数:0

Android 查看进程内存的方式

查看Android系统,单个进程、多个进程内存的使用情况,通常有那些方法: 1,通过Android API函数 使用ActivityManager查看可用内存,具体是其内部类MemoryInfo。 ActivityManager.MemoryInfo memInfo = new Activi...

2018-02-06 22:28:27

阅读数:149

评论数:0

Android进程-zygote进程

一,zygote进程 zygote进程的父进程是init,zygote也是所有应用的父进程,也是system_server进程的父进程。   1.1  Zygote系统源码组成 1)     Zygote.java(frameworks/base/core/java/com/android...

2018-01-31 17:49:32

阅读数:119

评论数:0

Java的内存分配和管理

Java的内存分配和管理 Java内存分配时涉及的区域: 寄存器:在程序中无法控制; 栈:存放基本类型的数据和对象的引用,但是对象本身不存放在栈中,而是存放在堆中; 堆:存放用new产生的数据; 静态域:存放在对象中用static定义的静态成员; 常量池:存放常量。 内存分配...

2018-01-14 22:46:13

阅读数:78

评论数:0

Android 虚拟机的进程管理

一Android 虚拟机的进程管理 Android 虚拟机进程管理是依赖linux的进程体系结构的,要为应用程序创建一个进程,它会使用linux的fork机制来复制一个进程(复制进程比创建进程更高效) 。执行这个操作的就是zygote。 zygote是一个虚拟机进程,也是一个虚拟机实例的孵化器。当...

2018-01-13 22:47:50

阅读数:103

评论数:0

深入理解Java虚拟机-Java内存模型与线程(12)

深入理解Java虚拟机 学习笔记 第十二章 java内存模型与线程 在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。   12....

2017-12-28 10:56:41

阅读数:98

评论数:0

深入理解Java虚拟机-虚拟机字节码执行引擎(八)

虚拟机字节码执行引擎    在不同的虚拟机实现里面,执行引擎在执行Java代码的时候可能会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备,甚至还可能会包含几个不同级别的编译器执行引擎。但从外观上看起来,所有的Java虚拟机的执行引擎都是一致的:输入...

2017-12-21 17:31:27

阅读数:129

评论数:0

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