1.系统配置
Bionic提供了一组函数允许原生应用程序查询徐彤属性。
需要头文件
#include <sys/system_properties.h>
每个系统属性都遵守不超过PROP_NAME_MAX个字符的属性名和不超过PROP_VALUE_MAX个字符的属性值。
(1) 通过名称获取系统属性值
char value[PROP_VALUE_MAX];
//如果属性没有定义,返回大小为0的值
if (0 == __system_property_get("ro.product.model", value)) {
} else {
__android_log_print(ANDROID_LOG_INFO, "123321", "%s", value);
}
效果
(2) 通过名称获取系统属性
const prop_info *p;
//获取ro.product.model系统属性
p = __system_property_find("ro.product.model");
if (NULL == p) {
} else {
char name[PROP_NAME_MAX];
char value[PROP_VALUE_MAX];
//获取系统属性名称和值
if (0 == __system_property_read(p, name, value)) {
} else {
__android_log_print(ANDROID_LOG_INFO, "123321", "%s:%s", name, value);
}
}
效果
2.用户和组
Bionic为用户和组信息函数提供基本支持。
需要的头文件
在这里插入代码片
(1) 获取应用程序的用户和组ID
普通应用程序的用户ID和组ID都是从10000开始的;ID数值小的用于系统服务。
getuid() 用户id
getgid() 组id
__android_log_print(ANDROID_LOG_INFO, "123321", "%d:%d", getuid(), getgid());
效果
2020-04-05 16:48:25.825 13132-13132/com.example.testnt I/123321: 10069:10069
(2)获取应用程序用户名
已安装的应用程序都获取分配给用户的用户名。
__android_log_print(ANDROID_LOG_INFO, "123321", "%s",getlogin());
效果
2020-04-05 16:52:42.705 13220-13220/com.example.testnt I/123321: u0_a69