Android Zygote 分析

本篇文章主要介绍 Android Zygote启动分析 知识点,通过阅读本篇文章,您将收获以下内容:

一、 Android 系统基本服务
二、虚拟机创建和第一个Java 程序引导
三、Dalvik 虚拟机基本配置
四、Zygote 启动流程
五、Zygote 启动分析
六、Zygote 创建system_server主要方法
七、Zygote 创建System_server 分析
八、Zygote 创建应用
九、Zygote 创建应用流程
十、Zygote 预加载资源
十一、Zygote 预加载的目的
十二、优化Zygote 启动方法: 线程池

一、 Android 系统基本服务

《Android Zygote 分析》 image.png

Android 系统基本服务

二、虚拟机创建和第一个Java 程序引导

《Android Zygote 分析》 image.png

虚拟机创建和第一个Java 程序引导

三、Dalvik 虚拟机基本配置

《Android Zygote 分析》 image.png

Dalvik 虚拟机基本配置

四、Zygote 启动流程

《Android Zygote 分析》 image.png

Zygote 启动流程

五、Zygote 启动分析

《Android Zygote 分析》 image.png

Zygote 启动分析

六、Zygote 创建system_server主要方法

《Android Zygote 分析》 image.png

Zygote 创建system_server主要方法

七、Zygote 创建System_server 分析

《Android Zygote 分析》 image.png

Zygote 创建System_server

八、Zygote 创建应用

《Android Zygote 分析》 image.png

Zygote 创建应用

九、Zygote 创建应用流程

《Android Zygote 分析》 image.png

Zygote 创建应用流程

十、Zygote 预加载资源

《Android Zygote 分析》 image.png

Zygote 预加载资源

《Android Zygote 分析》 image.png

preloadClasses()

《Android Zygote 分析》 image.png

preloadResources()

十一、Zygote 预加载的目的

《Android Zygote 分析》 image.png

Zygote 预加载的目的

十二、优化Zygote 启动方法: 线程池

Zygote 启动优化前提:

  • 1:加载类和资源是可重入操作,所以在并行模式下,不存在互斥的场景

  • 2:Android提供了Executors和ExecutorService多线程类,因此可以使用多线程来加载类和资源。

  • 3:硬件平台最好是多核,否则加速也不明显;

《Android Zygote 分析》 image.png

线程池 优化Zygote 启动

Zygote 启动优化实质:

使我们的进程最大限度的抢占CPU

【附】相关学习资料

Android进阶

《Android Zygote 分析》 image

移动架构师

《Android Zygote 分析》 image
《Android Zygote 分析》 image

需要这些安卓学习资料和面试资料的大伙需要的关注+点赞+加群:185873940 免费获取!

群内还有许多免费的关于高阶安卓学习资料,包括高级UI、性能优化、架构师课程、 NDK、混合式开发:ReactNative+Weex等多个Android技术知识的架构视频资料,还有职业生涯规划及面试指导。

    原文作者:Android高级架构师
    原文地址: https://www.jianshu.com/p/382708c601e6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞