关于系统属性

时间:2011-03-10 04:55:32

标签: android android-ndk system-properties

我知道如何从应用程序层访问Android系统属性 在框架层android.os.SystemProperties中,类负责 得到所有的财产。但在内部它会调用一些C代码来获取 像native_get(key,value)这样的属性 有人请告诉我哪个文件基本上是在C代码中引用的?

2 个答案:

答案 0 :(得分:5)

位于文件android_os_SystemProperties.cpp中的该方法的本机代码。它将它们委托给Bionic 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进程调用poll以等待套接字上的connect事件。

     

在消费者方面,初始化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 :(得分:3)

这些不是SDK API的一部分。