搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
繁依Fanyi0
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
开放原子开源基金会TOC(技术监督委员会)第七十八次全体会议
2
【Elasticsearch专栏 10】深入探索:Elasticsearch如何进行数据导入和导出_elastic 导出数据
3
体系结构学习笔记---白话理解Tomasulo算法
4
虚拟按键的总结及示例_vklbutton在键盘哪里
5
一个不兼容的软件尝试与edge一起加载?
6
Android学习之DrawerLayout_android drawerlayout fragment?.setup
7
目标检测第3步:如何在Windows 10系统下安装CUDA(更新时间2022.03.22)_win10 配置cuda环境
8
java计算器gui(有三角函数,幂运算)_private class number extends windowadapter impleme
9
一步步教你开发鸿蒙系统应用,So Easy_鸿蒙开发教程
10
Android adb使用详解_-a android.intent.action.main --es --proxy-server=
当前位置:
article
> 正文
安卓学习日记(一):了解安卓架构(linux内核层、系统运行库层、应用框架层、应用层)_linux 重要运行库
作者:繁依Fanyi0 | 2024-03-18 09:59:40
赞
踩
linux 重要运行库
首先为了理解安卓系统是怎么工作的,就先来看一下android的系统架构,其架构大至可以分为四层:linux内核层、系统运行库层、应用框架层和应用层,那就先说说这几层。
1.linux内核层:
Android系统是基于Linux内核的,
这一层为Android设备的各种硬件提供了底层的驱动
(如显示,音频,照相机,蓝牙,WI-FI,电源管理等等),那么Android为什么会选择采用linux呢?原因与Linux的特性有关,内核作为一个抽象层存在硬件和软件之间,强大的内存管理和进程管理,基于权限的安全模式,支持共享库,经过认证的驱动模式,Linux本身就是开源项目等等。
但同时Android对于Linux进行了改动,比如它没有glibc,最初用于一些便携的移动设备并没有采用glibc作为c库,而是goolge自己开发的Bionic Libc来作为代替品,也并没有完全照搬Linux系统的内核还增加了Gold-Fish平台以及yaffs2 Flash文件系统,而且它没有了本地基于x服务的窗口系统即Android并没有使用Linux的x窗口,同时还对驱动程序进行了增强
显示驱动、键盘驱动、Flash内存驱动、照相机驱动、音频驱动、蓝牙驱动、WiFi驱动、Binder IPC驱动、Power Management(电源管理)
,
包括硬件时钟,内存分配和共享,低内存管理,kernel调试,日志设备,android IPC机制,电源管理等
。
1)
Binder
IPC驱动
:基于OpenBinder框架的一个驱动,用于提供 Android平台的进程间通信功能。源代码位于drivers/staging/android/binder.c。
2)
电源管理(PM) :一个基于标准Linux电源管理系统的轻量级Android电源管理驱动,针对嵌入式设备做了很多优化,比如电池电量。源代码位于:kernel/power/earlysuspend.c、kernel/power/consoleearlysuspend.c、kernel/power/fbearlysuspend.c、kernel/power/wakelock.c、kernel/power/userwakelock.c
3)
低内存管理器:比Linux的标准的OOM机制更加灵活,它可以根据需要杀死进程以释放需要的内存。源代码位于 drivers/staging/ android/lowmemorykiller.c。
4)
匿名共享内存: 为进程间提供大块共享内存,同时为内核提供回收和管理这个内存的机制。源代码位于mm/ashmem.c。
5)
PMEM :用于向用户空间提供连续的物理内存区域,DSP和某些设备只能工作在连续的物理内存上。源代码位于drivers/misc/pmem.c。
6)
Logger :一个轻量级的日志设备,用于抓取Android系统的各种日志。源代码位于drivers/staging/android/logger.c。
7)
Alarm :提供了一个定时器,用于把设备从睡眠状态唤醒,同时它还提供了一个即使在设备睡眠时也会 运行的时钟基准。源代码位于drivers/rtc/alarm.c。
8)
USB Gadget:驱动 一个基于标准 Linux USB gadget驱动框架的设备驱动,Android的USB驱动是基于gaeget框 架的。源代码位于drivers/usb/gadget/。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/262226
推荐阅读
article
Linux
CFS调度_
nr
_
running
...
本文主要分析
Linux
内核CFS调度算法实现,未完待续_
nr
_
running
nr
_
running
...
赞
踩
article
Linux
导航和
文件
管理...
在
文件
系统中导航和操作
文件
和
文件
夹是使用大多数计算机的关键部分。云服务器大多使用相同的常见
Linux
shell 和常...
赞
踩
article
Linux
symfonos
...
Linux
symfonos
Linux
symfonos
信息搜...
赞
踩
article
【
Linux
】
linuxCNC
+Qt+
Opencascade
+
kdl
+
hal
实时
6
轴
机器人
控制器...
CNC
机器人
程序框架
机器人
模型笔记:debian重启后 无法打开共享目录最新版搜狗输入法安装后不支持中文,需要安装旧版本...
赞
踩
article
Linux
--
线程
互斥...
大部分情况,
线程
使用的数据都是局部变量,变量的地址空间在
线程
栈空间内,这种情况,变量归属单个
线程
,其他
线程
无法获得这种变...
赞
踩
article
Oracle将
归档
日志
从
ASM
拷贝
到 Linux 文件系统中操作步骤_
oracle
asm
拷贝
归...
如果没法第一时间备份情况下,先将数据库文件
拷贝
到本地,先将
asm
中
日志
文件清理,恢复数据库业务使用,之后再将本地
拷贝
出来...
赞
踩
article
Hadoop
大数据应用:
Linux
部署
MapReduce
与
Yarn
...
SecondaryNameNode (已
部署
)DataNode节点查看(node01)DataNode节点查看(node...
赞
踩
article
SDK接入学习(一):
PlayerSetting
详解(PC、
Mac
、
Linux
)_playerset...
一、版本选择1.个人版本:是有配置限制的例如:Unity Splash Screen不能被取消Unity的Logo不能被...
赞
踩
article
Foxit
PDF
SDK
9.0
.0 linux
for
C++ Crack_foxitpdfsd...
Foxit
PDF
SDK
for
Desktop
9.0
! This release comes with a bran...
赞
踩
article
离线安装
数据库
mysql
5.7
linux
...
安装教程:https://www.hu60.cn/q.php/bbs.topic.104876.html。将下载好的Wi...
赞
踩
article
【
Linux
】简单
的
网络计算器
的
实现(
自定义
协议
,
序列化
,
反
序列化
)...
我们需要实现一个服务器版
的
加法器. 我们需要客户端把要计算
的
两个加数发过去, 然后由服务器进行计算, 最后再把结果返回给...
赞
踩
article
Linux
-期末备考-选择题_
linux
最早
是
由
计算机
爱好者
( )开发的...
1.
Linux
最早
是
由
计算机
爱好者
( A )开发的A. Linus TorvaldsB. Andrew S. Tanen...
赞
踩
article
Linux
:
课后习题及其
答案
_
linux
作业
答案
...
Linux
:
课后习题及其
答案
_
linux
作业
答案
linux
作业
答案
第一章
Linux
系统初步了...
赞
踩
article
Linux
:
第五章
课后
习题
及答案_
linux
自动化
运维慕课版
课后
习题
第五章
...
第五章
Linux
常用命令Q1:常用的文本内容显示命令有哪些?区别是什么?文本内容显示的命令有cat,more,less...
赞
踩
article
Linux
(ubuntu)(十三) —— (
系统
)
服务
管理 (
systemctl
&
service
&c...
Linux
服务
管理两种方式:
service
和
systemctl
systemctl
是systemd对应的进程管理命令s...
赞
踩
article
How To
Install
Kali
L
in
ux Tools Without Root
in
g An...
How To
Install
Kali
L
in
ux Tools Without Root
in
g Android Us
in
...
赞
踩
article
kail Linux 安装
Parallels
Tools
...
网上好多都是
Parallels
8的 针对
Parallels
9 的还真不好找。。。。。自己捣鼓了一阵 终于可以安装了,但...
赞
踩
article
MacOS
环境下
Kali
Linux
安装及使用指导_
kali
linux
for
mac
...
Kali
Linux
是一个开源的、基于Debian的
Linux
发行版,面向各种信息安全任务,如渗透测试、安全研究、计算机...
赞
踩
article
Mac利用VM
虚拟机
安装
Kali
_
mac
m2 上如何
安装
kali
linux
...
首先要去
kali
linux
官网下载相对应的镜像https://www.
kali
.org/downloads/进入
虚拟机
...
赞
踩
article
Mac下
安装
Kali
Linux
2020.1 (注意默认用户名密码不再是
root
toor
)_ma...
简介
Kali
是一个基于Debian的
Linux
发行版,集成了尽可能多的安全、渗透工具。
安装
Kali
kali
-
linux
...
赞
踩
相关标签
linux
运维
服务器
机器人
java
jvm
开发语言
oracle
数据库
大数据
hadoop
unity3d
游戏开发
Foxit PDF SDK
python
网络
ubuntu