深入解析Android系统属性运作全流程与Java/C++层实现
103 浏览量
更新于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
- 粉丝: 7333
- 资源: 37
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器