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

这篇具有很好参考价值的文章主要介绍了【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】底层逻辑深入了解(学习笔记)(未完),Android,笔记,android

(比如: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】底层逻辑深入了解(学习笔记)(未完),Android,笔记,android

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


 

 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文章来源地址https://www.toymoban.com/news/detail-612443.html

到了这里,关于【Android】底层逻辑深入了解(学习笔记)(未完)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 带你深入了解Android的事件分发机制

    Android的事件分发机制是指在Android系统中,如何将用户的触摸事件、按键事件等传递给正确的View进行处理的一套机制。它是Android应用程序中实现交互的重要部分,确保用户的操作能够被正确地捕获和处理。 Android的事件分发机制涉及到以下几个核心概念:事件源、事件分发、

    2024年02月16日
    浏览(33)
  • 带你深入了解Android Handler的用法

    Android中,Handler是一类用于异步消息传递和线程之间通信的基础框架。一个Handler是一个线程的处理器,可以接收消息,并调度运行它们。使用Handler,应用程序可以将处理器与一个线程关联,以将来的时间运行任务。而使用Handler,就可以避免启动额外的线程,从而提高代码的

    2024年02月07日
    浏览(33)
  • 深入理解Android音视频同步机制(一)ExoPlayer的avsync逻辑

    对于此前没有了解过ExoPlayer的朋友,我们在这里先用下面的时序图简单介绍一下ExoPlayer在音视频同步这块的基本流程: 图中 ExoPlayerImplInternal是Exoplayer的主loop所在处,这个大loop不停的循环运转,将下载、解封装的数据送给AudioTrack和MediaCodec去播放。 MediaCodecAudioRenderer和MediaC

    2023年04月12日
    浏览(52)
  • 【笔记】Disable APN 禁用数据连接的逻辑(Android & KaiOS)

    通过OTA/OMADM 运营商服务器可以下发消息实现disable APN,从而影响Data PDN建立。APN被disable了会导致无法正常上网。 在Android 和 KaiOS 系统实现上有区别,不过都是通过carrier_enabled 这类字段实现判断控制。 Android:上层 Telephony 根据APN carrier_enabled 值判断是否下发PDN KaiOS:上层 gec

    2024年01月23日
    浏览(35)
  • Spark DataFrame:从底层逻辑到应用场景的深入解析

    本文将深入探讨Spark DataFrame的底层逻辑、发展由来以及应用场景。通过了解DataFrame的底层逻辑,我们可以更好地理解其在Spark中的重要地位。同时,了解DataFrame的发展历程和应用场景,可以帮助我们更好地掌握这一强大的数据处理工具,并在实际工作中加以运用。 DataFrame的底

    2024年01月24日
    浏览(40)
  • 作为 Android 开发者,如何深入学习 Android UI?

    Android BoomMenu 使用指南 PhotoView的使用指南 SubsamplingScaleImageView使用指南 CircleImageView用法及源码解析 Android 图片裁切框架 uCrop 的用法 Gif-drawable的使用 Android选择与上传图片之Matisse教程 Richeditor-Android使用说明 TextSurface源码解析 Material-Dialogs使用说明 Taosty使用说明 DialogUtil源码解

    2024年04月26日
    浏览(47)
  • TensorFlow学习笔记(未完待续)

    TensorFlow中所有计算都会被转化为计算图上的节点。是一个通过计算图的形式来表述计算的编程系统,每个计算都是计算图的一个节点,而节点之间的边描述了计算之间的依赖关系。 在TensorFlow中,系统会自动维护一个默认的计算图,通过tf.get_default_graph()函数可以获取当前

    2024年02月08日
    浏览(42)
  • 【Android学习笔记】Android布局属性大全

    第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:layout_alignParentLeft 贴紧父元素的左边缘 android:layout_alignParentRight 贴紧父元素的右边缘

    2024年01月16日
    浏览(37)
  • 关于线性模型的底层逻辑解读 (机器学习 细读01)

             线性回归是机器学习中 有监督机器学习 下的一种算法。 回归问题主要关注的是因变量(需要预测的值,可以是一个也可以是多个)和一个或多个数值型的自变量(预测变量)之间的关系。 需要预测的值:即目标变量, target ,y, 连续值预测变量 。 影响目标变量的因素

    2024年02月07日
    浏览(33)
  • 论文笔记: 深度学习速度模型构建的层次迁移学习方法 (未完)

    摘要 : 分享对论文的理解, 原文见 Jérome Simon, Gabriel Fabien-Ouellet, Erwan Gloaguen, and Ishan Khurjekar, Hierarchical transfer learning for deep learning velocity model building, Geophysics, 2003, R79–R93. 这次的层次迁移应该指从 1D 到 2D 再到 3D. 深度学习具有使用最少的资源 (这里应该是计算资源, 特别是预测

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包