我知道如何从应用程序层访问Android系统属性。
在框架层android.os.SystemProperties
类中负责 获取所有属性。但在内部,它调用一些C代码来获取 的属性,如native_get(key,value)
。
任何人都请告诉我哪个文件基本上是在C代码中引用的?关于系统属性
Q
关于系统属性
2
A
回答
3
这些不是SDK API的一部分。
5
该方法的原生代码位于文件android_os_SystemProperties.cpp
中。它将它们委托给仿生libc库/bionic/libc/bionic/system_properties.c
,它从共享内存中读取属性值。
这里是从“Android property system”文章引用(我建议你阅读这一切,如果你想了解性能如何Android的工作):
init进程将以下文件加载性能:
/default.prop /system/build.prop /system/default.prop /data/local.prop
下一步是启动属性服务。在这一步中,创建一个unix域套接字服务器。此套接字的路径名为
"/dev/socket/property_service"
,这是其他客户端进程所熟知的。
最后,init进程调用轮询来等待套接字上的连接事件。在消费者方面,它初始化libc时(
bionic/libc/bionic/libc_common.c __libc_init_common function
)。它将从环境变量中检索fd和size,并将共享内存映射到它自己的空间(bionic/libc/bionic/system_properties.c __system_properties_init function
)。在那之后,libcutils可以像消费者的正常内存一样读取属性。
相关问题
- 1. Android系统属性
- 2. C#属性系统
- 3. 基于系统属性导入Spring @Configurations
- 4. 用于PropertyPlaceholderConfigurer的系统属性后缀
- 5. 关于android系统
- 6. 春属性文件VS系统属性
- 7. 基于关系属性的odata过滤
- 8. Neo4django关系属性
- 9. 有关系属性
- 10. Mongoid关系属性
- 11. 系统属性:user.region或user.country
- 12. 更改user.home系统属性
- 13. grails base.dir系统属性
- 14. WSMAN和WMI系统属性
- 15. codeigniter属性/过滤系统
- 16. C#属性文件系统
- 17. IProxyService.setProxyData影响系统属性
- 18. 设置系统属性
- 19. java中的系统属性
- 20. 日食 - 系统属性http.nonProxyHosts
- 21. 访问系统属性
- 22. java.util.logging.SimpileFormatter系统属性配置
- 23. 系统文件属性
- 24. Cakephp:属于关系
- 25. Neo4j - 基于关系属性计算并设置节点属性
- 26. 关于刚性属性关系的建议
- 27. 关于Linux文件系统
- 28. 关于JMS系统结构
- 29. 关于系统记录器
- 30. 关于IOCTL系统调用