如何使用Android系统属性(SystemProperties)

本文介绍在Android开发中如何使用系统属性来实现全局变量的存储与读取,适用于跨应用的数据传递场景。通过设置和获取特定前缀的系统属性,可以在不同应用间共享简单值类型的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发中会有使用全局变量的需求。比如在一个程序中设定一个应用,在另外的应用中读取这个值。可以使用系统属性来存储该变量。当然,这个只限于比较简单的值的存储,如果你使用正则表达式也可以容纳更多的信息在这个字符串内。使用方式如下:

importandroid.os.SystemProperties;

SystemProperties.set("persist.sys.konka.buttonlight",lightFlag);

在另外一个应用中使用get即可,记得导入上面的那个包。

在开发中会有使用全局变量的需求。比如在一个程序中设定一个应用,在另外的应用中读取这个值。可以使用系统属性来存储该变量。当然,这个只限于比较简单的值的存储,如果你使用正则表达式也可以容纳更多的信息在这个字符串内。使用方式如下:

importandroid.os.SystemProperties;

SystemProperties.set("persist.sys.konka.buttonlight",lightFlag);

在另外一个应用中使用get即可,记得导入上面的那个包。

String temp =SystemProperties.get("persist.sys.konka.buttonlight");

即可。


附加:

最好使用链接1所示的属性结构体里面定义的前缀,并且将应用程序定义成对应的权限:

结构体property_perms的定义如下:

struct {
const char *prefix;
unsigned int uid;
unsigned int gid;
} property_perms[] = {
{ "net.rmnet0.", AID_RADIO, 0 },
{ "net.gprs.", AID_RADIO, 0 },
{ "net.ppp", AID_RADIO, 0 },
{ "ril.", AID_RADIO, 0 },
{ "gsm.", AID_RADIO, 0 },
{ "persist.radio", AID_RADIO, 0 },
{ "net.dns", AID_RADIO, 0 },
{ "net.", AID_SYSTEM, 0 },
{ "dev.", AID_SYSTEM, 0 },
{ "runtime.", AID_SYSTEM, 0 },
{ "hw.", AID_SYSTEM, 0 },
{ "sys.", AID_SYSTEM, 0 },
{ "service.", AID_SYSTEM, 0 },
{ "wlan.", AID_SYSTEM, 0 },
{ "dhcp.", AID_SYSTEM, 0 },
{ "dhcp.", AID_DHCP, 0 },
{ "vpn.", AID_SYSTEM, 0 },
{ "vpn.", AID_VPN, 0 },
{ "debug.", AID_SHELL, 0 },
{ "log.", AID_SHELL, 0 },
{ "service.adb.root", AID_SHELL, 0 },
{ "persist.sys.", AID_SYSTEM, 0 },
{ "persist.service.", AID_SYSTEM, 0 },
{ "persist.security.", AID_SYSTEM, 0 },
{ NULL, 0, 0 }
};



如果想深挖的请看下面,相关参考链接:

Android平台上使用属性系统(property system)

Android的属性Property系统


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值