深入解析Android系统属性运作全流程与Java/C++层实现
182 浏览量
更新于2024-08-03
收藏 1.8MB PDF 举报
本文将深入剖析Android系统属性(system properties)的运作流程,重点集中在系统属性文件`build.prop`的生成机制以及在Java和C++层面上的使用。首先,`build.prop`是一个关键的系统配置文件,其中包含各种全局可见的设置,以字符串形式存储,如系统设置和进程间通信的信息。
在Java层面上,`SystemProperties.java`是主要的接口,用于获取(get)和设置(set)系统属性。Java代码通过JNI(Java Native Interface)调用本地接口`android_os_SystemProperties.cpp`,然后进一步调用C++的`property_set`函数,实现属性的设置,具体位置在`/frameworks/base/core/jni/android_os_SystemProperties.cpp`中的JNI部分。
在C++层面,系统属性操作主要发生在`libcutils/properties.c`中,这个模块负责处理属性的读写。当在Java中调用set属性时,会进一步调用`system_properties.c`中的相关函数,通过TCP套接字与`property_service`服务进行通信。这个过程涉及到了守护进程`init`在系统初始化阶段的重要角色,它会在`init.c`中启动`property_service`,并为属性数据分配共享内存区域。
`init`守护进程在`property_init()`和`property_load_boot_defaults()`函数中扮演着核心角色,它们在Android启动初期初始化属性,并在`__libc_preinit`和`__libc_init_common`等函数链中调用。这样,系统属性服务不仅在Java应用层可见,而且与底层操作系统紧密集成,确保了系统的稳定性和一致性。
总结来说,本文对Android系统属性的运作流程进行了全面分析,涵盖了从Java应用层的调用,到C++底层实现,再到系统服务的启动和内存管理的全过程,帮助读者理解了系统属性在Android生态系统中的核心作用和工作原理。
2016-01-21 上传
2012-09-12 上传
点击了解资源详情
点击了解资源详情
2024-05-06 上传
2021-12-04 上传
2023-05-14 上传
2013-11-04 上传
2014-11-10 上传
邓瑞军说HelloWorld
- 粉丝: 7384
- 资源: 37
最新资源
- DS3231,赛车游戏源码c语言,c语言
- SpringLearn:阅读Spring
- HotKey 全局热键定义软件VB版
- communauto_calculator
- 小米时间悬浮窗 MiTime v1.0.txt打包整理.zip
- ASP上海软件贸易网站设计与实现(源代码+论文).rar
- Lightning-crx插件
- figurate-core:基于 OSGi 的 JVM 插件环境
- chartjs-plugin-zoom-pan-select:Chartjs插件,用于在Chartjs实例中缩放,平移和选择数据
- date_label-数据集
- HookCreateprocess,c语言压缩工具源码,c语言
- 安全标签
- growl:在咆哮弹出窗口中显示一条消息-matlab开发
- 免费时代-免费资源程序
- My Photography-crx插件
- 串口测温_单片机C语言实例(纯C语言源代码).zip