【Android】底层逻辑深入了解(学习笔记)(未完)

step by step.

目录

init启动

Zygote进程:

 SystemServer处理过程

Binder:

Launcher启动过程

Android系统启动流程

四大组件

Activity

Service

 BroadcastReceiver广播

ContentProvider内容提供者(进程内和进程间的数据共享)

 Context上下文

 AMS(ActivityManagerService)


(在图书馆看了《Android进阶解密》,结合自己做的Android app记一下学习笔记——

init启动

1.创建、挂载所需的文件目录;

2. 初始化&启动属性服务;

3. 解析init.rc配置文件&启动Zygote进程

Zygote进程:

Android世界之盘古女娲——Zygote_好重好重的博客-CSDN博客Zygote在Android系统中,zygote是一个native进程,是Android系统上所有应用进程的父进程,我们系统上app的进程都是由这个zygote分裂出来的。zygote则是由Linux系统用户空间的第一个进程——init进程,通过fork的方式创建的。zygote进程做了两个重要的事情:1. 不断接收其它进程的信号,随时创建子进程(即app进程)2. 创建了嫡长子 ..._zygotehttps://blog.csdn.net/chz429/article/details/87514718?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169043961716800182188048%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169043961716800182188048&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-87514718-null-null.142^v91^insertT0,239^v3^insert_chatgpt&utm_term=zygote&spm=1018.2226.3001.4187


 

 SystemServer处理过程

1.启动Binder线程池

2.进入SystemServer的main方法(创建、启动系统服务等……)

Binder:

通过Binder发起ServiceManager进程,提供跨进程通信(比如Client和Server)

Android跨进程通信:图文详解 Binder机制 原理_android binder机制_Carson带你学Android的博客-CSDN博客前言如果你接触过 跨进程通信 (IPC),那么你对Binder一定不陌生虽然 网上有很多介绍 Binder的文章,可是存在一些问题:浅显的讨论Binder机制 或 一味讲解 Binder源码、逻辑不清楚,最终导致的是读者们还是无法形成一个完整的Binder概念本文采用 清晰的图文讲解方式,按照 大角度 -> 小角度 去分析Binder,即: 先从 机制、模型的角度 去分析 整个B..._android binder机制https://blog.csdn.net/carson_ho/article/details/73560642?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169044025916782427498832%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169044025916782427498832&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-73560642-null-null.142^v91^insertT0,239^v3^insert_chatgpt&utm_term=Binder&spm=1018.2226.3001.4187


 

Launcher启动过程

(Launcher:Android系统的桌面,返回已经安装的应用程序信息,并封装成一个快捷图标列表显示在系统屏幕)

作为Android启动器,用于启动应用程序

作为Android桌面,显示和管理app图标或其它组件


 

Android系统启动流程

1.启动电源及系统启动;

2.引导程序BootLoader

3.LInux内核启动(设置缓存、加载驱动……)

4.init进程启动

5.Zygote进程启动(创建Java虚拟机,启动Socket……)

6.SystemServer进程启动

7.Launcher启动


 

四大组件

Activity

1.根Activity

2.普通Activity

Service

 BroadcastReceiver广播

动态/静态注册自己感兴趣的广播

ContentProvider内容提供者(进程内和进程间的数据共享)


 

 Context上下文

Context上下文——应用程序访问系统资源的接口

【Android】底层逻辑深入了解(学习笔记)(未完)_第1张图片

(比如:ApplicationContext……

Android全面解析之Context机制_android 广播context_weixin_43766753的博客-CSDN博客前言很高兴遇见你~ 欢迎阅读我的文章。在文章Android全面解析之由浅及深Handler消息机制中讨论到,Handler可以:避免我们自己去手动写 死循环和输入阻塞 来不断获取用户的输入以及避免线程直接结束,而是采用事务驱动型设计,使用Handler消息机制,让AMS可以控制整个程序的运行逻辑。这是关于android程序在设计上更加重要的一部分,不太了解的读者可以前往阅读了解一下。而当我们知道android程序的程序是通过main方法跑起来的,然后通过handler机制来控制程序的运行,那么四_android 广播contexthttps://blog.csdn.net/weixin_43766753/article/details/109017196?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169044154816800184148601%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169044154816800184148601&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-109017196-null-null.142^v91^insertT0,239^v3^insert_chatgpt&utm_term=android%20context&spm=1018.2226.3001.4187

Context经常用:比如要连接数据库时(自己的程序截图——

【Android】底层逻辑深入了解(学习笔记)(未完)_第2张图片

【Android】底层逻辑深入了解(学习笔记)(未完)_第3张图片


 

 AMS(ActivityManagerService)

Android系统重要组件AMS_android ams 的作用_Just_Paranoid的博客-CSDN博客Android AMS指的是Android系统中的Activity Manager Service,它是Android系统中一个重要的管理组件,负责管理应用程序的进程、Activity生命周期、任务管理、权限管理等。_android ams 的作用https://blog.csdn.net/weixin_44008788/article/details/130091555?ops_request_misc=&request_id=&biz_id=102&utm_term=android%20ams&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-130091555.142^v91^insertT0,239^v3^insert_chatgpt&spm=1018.2226.3001.4187

你可能感兴趣的:(Android,笔记,android)