Android Framework学习笔记(2)----系统启动

news2024/11/27 2:45:01

Android系统的启动流程

启动过程中,用户可控部分是framework的init流程。init是系统中的第一个进程,其它进程都是它的子进程。

启动逻辑源码参照:system/core/init/main.cpp

关键调用顺序:main->FirstStageMain->SetupSelinux->SecondStageMain

FirststageMain:挂载各种文件。

SetupSelinux:安全策略。每个类型的进程都有自己的权限,能否访问网络,能否访问文件,接收广播等。其中“.te”文件为安全策略文件。

SecondStageMain:挂载额外文件,设置进程OOM等级,LoadBootScripts,启动其它进程等。其中loadbootscritp来解析.rc文件。

.rc文件:run command的缩写,是一堆脚本指令,init进程可以读取rc文件来运行脚本,从而启动其它进程。

system/core/rootdir/init.rc部分内容如下:

在解析和执行.rc文件的过程中,会fork一个zygote进程。而安卓上其他的应用进程都是由zygote进程孵化的。

zygote进程源码参照:frameworks/base/cmds/app_process/app_main.cpp

zygote的启动,源码参照:frameworks/base/core/jni/AndroidRuntime.cpp中的void AndroidRuntime::start(const char* className, const Vector<String8>& options, bool zygote)方法

一个APP,可以有多个进程,一个进程有一个VM。

zygote启动过程包括,

设置环境变量:setenv("ANDROID_ROOT", rootDir, 1);

初始化JVM:startVm(&mJavaVM, &env, zygote, primary_zygote)

注册JNI:startReg(env)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1578303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI“复活”:慰藉心灵还是触碰禁忌?一文看懂技术与伦理的较量|TodayAI

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;其应用领域也越来越广泛&#xff0c;不仅仅局限于数据分析、机器人自动化等传统领域&#xff0c;更是延伸到了一些人们曾经认为只存在于科幻小说中的领域。近年来&#xff0c;使用AI技术“复活”逝者的概念&a…

免费云服务器汇总,最长永久免费使用

随着云计算技术的快速发展&#xff0c;越来越多的企业和个人开始将业务迁移到云端。云服务器作为云计算的重要组成部分&#xff0c;以其灵活、高效、可扩展等特点受到广泛关注。然而&#xff0c;许多人在初次接触云服务器时&#xff0c;可能会对高昂的价格望而却步。为了帮助大…

替换空格(替换特定字符)

&#x1f600;前言 在字符串处理中&#xff0c;经常会遇到需要替换特定字符的情况。本文将介绍一道经典的字符串替换问题&#xff1a;将字符串中的空格替换成 “%20”。我们将探讨一种高效的解决方法&#xff0c;通过倒序遍历字符串来实现原地替换&#xff0c;避免额外空间的开…

电网的正序参数和等值电路(三)

本篇为本科课程《电力系统稳态分析》的笔记。 本篇这一章的第三篇笔记。上一篇传送门。 标幺制和电网等值电路 标幺制 标幺值的定义 标幺值是一种相对值&#xff0c;是某种物理量的有名值和所选定的与有名值同单位的基准值之比&#xff0c;即&#xff1a; 标幺值 有名值…

第四百四十八回

文章目录 1. 知识回顾2. 使用方法3. 代码与功能3.1 示例代码3.2 功能说明 4. 内容总结 我们在上一章回中介绍了"overlay_tooltip简介"相关的内容&#xff0c;本章回中将介绍OverlayTooltip用法.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 知识回顾 我们在上…

Mysql底层原理五:如何设计、用好索引

1.索引的代价 空间上的代价 时间上的代价 每次对表中的数据进⾏增、删、改操作时&#xff0c;都需要去修改各个B树索引。⽽且我们讲过&#xff0c;B树每层节点都是按照索引列的值从⼩到⼤的顺序排序⽽组成了双 向链表。不论是叶⼦节点中的记录&#xff0c;还是内节点中的记录&a…

Win10下VirtualBox启动任何一个虚拟机马上出现蓝屏死机(终止代码:SYSTEM_SERVICE_EXCEPTION)

环境: Win10专业版 VirtualBox5.1.28 问题描述: Win10下VirtualBox启动任何一个虚拟机马上出现蓝屏死机(终止代码:SYSTEM_SERVICE_EXCEPTION),之前都一直没问题 检查下面功能是否开启 已启用 Credential Guard/Device Guard。 已启用 Windows 沙箱 已启用虚拟机平台…

二维码门楼牌管理应用平台:实现精细化、智能化场所管理

文章目录 前言一、二维码门楼牌管理应用平台的构建二、场所任务的精细化管理三、消防检查与整改的智能化管理四、二手交易登记的便捷化管理五、未来展望 前言 随着城市管理的日益精细化&#xff0c;二维码门楼牌管理应用平台应运而生。通过这一平台&#xff0c;场所负责人可以…

2024-04-08 NO.6 Quest3 自定义交互事件

文章目录 1 交互事件——更改 Cube 颜色2 交互事件——创建 Cube2.1 非代码方式2.2 代码方式 ​ 在开始操作前&#xff0c;我们导入上次操作的场景&#xff0c;相关介绍在 《2024-04-08 NO.5 Quest3 手势追踪进行 UI 交互-CSDN博客》 文章中。 1 交互事件——更改 Cube 颜色 …

知识管理系统|基于Springboot和vue的知识管理系统设计与实现(源码+数据库+文档)

知识管理 目录 基于Springboot和vue的知识管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台&#xff1a; 5.2.2 文章信息 5.3.1 论坛交流 2、后台 用户管理 5.1.2 文章分类 5.2.1 资料分类 四、数据库设计 五、核心代码 六、论文参考 七、最…

【游戏逆向】游戏全屏捡物的实现

0x0前言&#xff1a; 在角色对战类中&#xff0c;拾取怪物掉落的装备是一项必备的工作&#xff0c;由于装备位置掉落的不确定性&#xff0c;玩家想要拾取离角色距离较远的装备需要一定的时间&#xff0c;这一段时间往往会影响游戏的评分或是玩家的心态&#xff0c;基于此&…

CasaOS玩客云部署AList+Aria2结合内网穿透实现公网离线下载文件至网盘

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-cdH8fnSF05FmvunX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

第四十七周:文献阅读+AGCN+Wavenet network

目录 摘要 Abstract 文献阅读&#xff1a;结合自适应图卷积和CNN-LSTM的多站点水质预测模型 现有问题 提出方法 方法论 Adaptive graph convolution network&#xff08;自适应图卷积网络&#xff09; WaveNet network&#xff08;WaveNet网络&#xff09; CNN-LSTM混…

一文搞懂从爬楼梯到最小花费(力扣70,746)

文章目录 题目前知动态规划简介动态规划模版 爬楼梯一、思路二、解题方法三、Code 使用最小花费爬楼梯一、思路二、解题方法三、Code 总结 在计算机科学中&#xff0c;动态规划是一种强大的算法范例&#xff0c;用于解决多种优化问题。本文将介绍动态规划的核心思想&#xff0c…

HarmonyOS 应用开发之@Concurrent装饰器:@Sendable装饰器:声明并校验Sendable类

简介 在使用 TaskPool 时&#xff0c;执行的并发函数若需要传输类对象且使用该类的内部方法&#xff0c;该类需要使用此装饰器修饰&#xff0c;否则无法使用此对象内的方法。SendableClass有以下两种行为&#xff1a; 支持SendableClass序列化。对象分配在各自的虚拟机内存空间…

axios是什么?axios使用axios和ajax

Axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;用于浏览器和 Node.js 环境。它是由 GitHub 用户 mzabriskie 开发的&#xff0c;并且得到了广泛的社区支持。Axios 的设计目标是提供一种简洁、易用且功能强大的 HTTP 请求方式&#xff0c;以替代传统的 Ajax&#xff08;A…

very_easy_sql-攻防世界

题目 抓包发现use.php文件 页面说"you are not an inner user, so we can not let you have identify~"&#xff0c;就是说只能内部访问登录。这里抓包还看到返回包里有个set-cookie,说明是ssrf造成的sql注入 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是…

docker 搭建多个Linux系统环境 安装多个不同语言的项目

docker 搭建多个Linux系统环境 安装多个不同语言的项目 宝塔dockers可视化界面 https://blog.51cto.com/u_16213709/9473968

stack和queue的使用

前言 前面我们对string、vector、list做了介绍并对底层进行了实现&#xff01;本期我们继续来介绍STL容器&#xff0c;stack和queue&#xff01; 本期内容介绍 stack 常用接口的介绍 queue 常用接口的介绍 什么是stack? 这里的栈和我们C语言实现的数据结构的那个栈功能是一样…

3d建图与定位(4)_lio sam代码阅读

一.概述: 1.lio sam 是一个imu与lidar的紧耦合框架 2.前端:imu主要用来预计分,对后端里程计进行位姿推测得到先验位姿 ,对雷达进行畸变校正,特征点提取得到cloudinfo 3.后端主要有两个模块:模块一通过前端位姿初值进行scan->map的匹配 通过lm算法计算更新后端位姿,将后端odo…