搜索
查看
编辑修改
首页
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
mac 开启android 模拟器,折腾mac的经验积累 2:mac上如何玩安卓模拟器
2
C/C++编程规范_c及c++编程规范#define_example
3
tp5防止sql注入mysql_使用TP框架仿sql攻击注入
4
SQL注入攻击的简单示例
5
山西省计算机学校职业游戏,山西省中等职业学校毕业生对口升学信息技术类职业技能考试办法...
6
FTP 的主动模式(active mode)和被動模式(passive mode)
7
Linux下SSH服务的搭建_useprivilegeseparation
8
Android全面检测设备是否模拟器_com.kaopu001.tiantianime
9
计算机组成原理_01_浮点数转换_代码实现_测试用例_真值转浮点数
10
GPU多卡并行训练总结(以pytorch为例)
当前位置:
article
> 正文
有关android的property机制 (property_set() & property_get())_android kernel调用property_get
作者:繁依Fanyi0 | 2024-03-16 13:17:57
赞
踩
android kernel调用property_get
有关android的property机制
今天跟璋儿讨论到系统配置的问题。最常见的做法是由一个进程来维护这些配置,进行读写。其它的进程如果需要set/get某一配置项,需要通过socket发送消息到管理进程。
我想到了android的property机制。其实property就是name&value对,与常见系统中的配置项没有差异。在android系统中,大量使用了property_set和property_get,用来设置和获取某一property。下面来分析一下。
property_set/property_get位于libcutils.so库。任何进程若要调用这两个函数,需要链接libcutils.so。
libcutils.so调用到了__system_property_set和__system_property_get函数,这两个函数位于bionic库中,源代码文件为bionic/libc/bionic/system_properties.c,生成的库文件为libc_common.so。
对于set和get,分别会创建socket,发送消息到服务端。服务端位于init进程中,有一个property_service进程专门负责这个。该service读取socket消息,进行set和get的处理。property_service代码位于system/core/init/property_service.c
在system_properties.c和property_service.c中都用到了共享内存(用mmap实现),这里我开始有些搞不懂:如果用socket机制的话,只需要管理进程来维护内存即可,客户端不许要访问该内存,干嘛要用共享内存呢?
原来,android这样做是为了效率考虑。在system_properties.c的get调用中,可以通过只读方式访问共享内存,直接获取配置。当然了,为了保证get的时候别人不在set,避免读写冲突,get时需要等待一个信号量。对于set,system_properties.c会通过socket发送消息到service端处理,service端增加或者更新property后会wake该信号量。service端以读写方式打开共享内存。
为什么要这样设计呢?因为系统中由大量的get调用,get可以直接访问共享内存,所以访问更快。对于set,需要交给服务端处理,这样开销比较大,因为用到了socket,但因为set调用相对较少,所以问题也不严重。另为,android系统由以ctl打头的property,这种property比较特殊,可以控制服务的运行和停止,将这些控制放在service(即init进程)也就理所当然了!
附上一个框图:
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/249730
推荐阅读
article
CentOS
下载
Android
源代码。...
http://source.android.com/source/downloading.html 参考文档 $ mk...
赞
踩
article
Android
混淆
是
啥玩意儿?...
Android
混淆
,
是
伴随着
Android
系统的流行而产生的一种
Android
APP保护技术,用于保护APP不被破解和...
赞
踩
article
Android
14
后台
服务
永久
保活
的技术方法_
android
14
保活
...
到目前为止,我们已经创建了一个在
Android
应用程序中正常运行的
后台
服务
。然而,在
Android
8及以上版本中,由于...
赞
踩
article
Android
布局
菜鸟
android
中
的
布局
类型和特点?_
android
扁平化
布局
和
线性
布局
区别...
在这个
布局
中
,整个界面被当成一块空白备用区域,所有
的
子元素都不能被指定放置
的
位置,它们统统放于这块区域
的
左上角,并且后面...
赞
踩
article
使用
Gradle
版本
目录
进行依赖管理 -
Android
...
剩余的依赖同上依次迁移过去到
版本
目录
即可,需要注意的是,像类似 compose-bom 已经统一了
版本
号的物料清单,被包...
赞
踩
article
Android
Studio
导入项目
下载
gradle
很慢或连接超时,提示:
Read
timed
o...
Android
Studio
导入项目
下载
grad一般来说,使用
Android
Studio
导入项目并
下载
gradle
的...
赞
踩
article
Android
Studio
导入新项目,
gradle
报
read
timed
out的情景之一_an...
我使用
Android
Studio
3.0导入新项目时,
gradle
报
read
timed
out的情景之一: 由于项目...
赞
踩
article
Android
Studio3.5.2初次安装
gradle
时出现Error:
read
time
ou...
最近安装
Android
Studio,总是出现报错,在查询了无数个解决办法后,终于安装成功了。这里提供以下方法,希望对大...
赞
踩
article
Android
Studio进行
gradle
时
read
time
out 解决办法_
android
...
最近在使用更新了后的
Android
studio
编写程序的时候发现
gradle
时老是报
read
time
out ...
赞
踩
article
android
studio
中
gradle
连接
超时
解决方法_
gradle
超时
...
因国内网络限制问题,很多国外网站无法访问,导致
android
studio
中
gradle
无法正常下载。问题分析:grad...
赞
踩
article
Android
Studio
下载
gradle
超时问题解决...
打开你的.
gradle
文件,然后新建init.
gradle
。配置对所有项目起效的项目环境。2. 配置http 代理。An...
赞
踩
article
10 个顶级免费
Android
数据
恢复
软件
可帮助
恢复
已
删除
的文件_安卓
手机
数据
恢复
...
不小心
删除
了
手机
上的一些重要数据或文件?这很不幸,但不要悲伤或放弃希望,因为仍有机会
恢复
它们。10 个顶级免费 Andr...
赞
踩
article
2024 年 8 款值得收藏
的
免费
Android
数据恢复
软件
_
安卓
数据恢复
软件
免费
版...
如果你发现手机数据全部被删除,先别慌,今天这个视频就来教你如何恢复。随着市场上
数据恢复
软件
的
可用性不断增加,很难选择哪一...
赞
踩
article
丢失
数据
应急方案,8 款最佳
An
d
roi
d
数据
恢复
软件
的精选列表_
imyfone
d
-back ...
无论出于何种原因,没有人喜欢丢失
数据
。它可能是您所爱之人的旧照片或视频。它可能是一个重要的文件等等。丢失一个或多个文件的...
赞
踩
article
值得收藏
的
10个
Android
手机
恢复
丢失
文件
的
工具
榜单_
u1tdata
...
尽管我们尽可能避免这种情况,但有时我们还是会不小心删除
Android
设备上
的
重要
文件
。无论是照片、视频、文档还是任何...
赞
踩
article
6 个
有效
且可用的顶级
Android
数据恢复
工具
_
easeus
mobisaver
...
经过测试42 种
数据恢复
软件产品,发现奇客
数据恢复
安卓版是
Android
设备的最佳选择。过去几十年来,我一直在科技行...
赞
踩
article
2024年顶级的9个
Android
数据恢复
工具
(
免费
和付费)_
奇客
数据恢复
...
不同的事情可能会损坏您的
Android
手机并导致您丢失数据。但大多数时候,您可以使用取证
工具
恢复部分或全部文件。问题可能...
赞
踩
article
最好
的
适用于
Android
的
10 个最好
的
数据恢复
工具
_
eassiy
android
...
在当今快节奏
的
数字时代,丢失
Android
设备中
的
重要数据可能是一场噩梦。无论是难忘
的
照片、重要
的
联系人还是重要
的
工...
赞
踩
article
从
An
d
roi
d
手机
恢复删除的
数据
的10个有效工具_imyfone
d
-
back
安卓
数据
恢复
...
您是否曾经在
An
d
roi
d
手机
上遇到过
数据
丢失的情况,即您拍摄的瞬间或其他
数据
意外丢失?就我而言,我多次遇到过此类数...
赞
踩
article
Top6
最好
的
Android
数据恢复
软件
免费
获取_
u1tdata
是
免费
的
吗...
虽然在智能手机上随身携带您最喜爱
的
音乐收藏或珍贵
的
录音很方便,但如果您
的
设备出现技术问题或您不小心删除了文件,文件也有可...
赞
踩
相关标签
移动开发
开发语言
android
android studio
ide
安卓
移动应用开发
read timed out
maxPermSize
gradle
Androidstudio
单片机
嵌入式硬件
智能手机
ios
手机
电脑