文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>android 属性系统代码分析

android 属性系统代码分析

时间:2011-01-31  来源:海王

在system/core/initproperty_service.c实现的。至于这两个服务函数的具体有效范围还有待进一步的研究,因为在

 

system/core/libcutils/properties.c 中在不同的情况下分别进行此两个接口的实现,暂时也没有研究其使用。

 


init.c使用的property_get是个包装函数,其实现是调用__system_property_find()函数,这个函数在 bionic/libc/bionic/system_properties.c中实现。

 

并且在init.c中导入了一个很有用的环境变量:ANDROID_PROPERTY_WORKSPACE

这个环境变量也十分特殊,其由文件描述符和大小组成。也正是因为这个环境变量所以在

bionic/libc/bionic/system_properties.c 中才有可能通过__system_properties_init()[此函数被 bionic/libc/bionic/libc_init_common.c的__libc_init_common()调用进行初始化]进行初始化libc中的属性系统地址,才可能正常的通过

 

__system_property_find()获取属性值。  

 

 

__libc_init_common()被bionic/libc/bionic/libc_init_dynamic.c(或者libc_init_static.c)调用,且其被调用函数的说明如下:

 

 

 

代码 /* We flag the __libc_preinit function as a constructor to ensure
 * that its address is listed in libc.so's .init_array section.
 * This ensures that the function is called by the dynamic linker
 * as soon as the shared library is loaded.
 */
void __attribute__((constructor)) __libc_prenit(void);

void __libc_prenit(void)
{
...
__libc_init_common(elfdata);
...
}


 

getprop

setprop

 

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载