通过"adb shell"进入android命令行,敲:"getprop",会打印出很多的系统信息(如下):
[gsm.sim.operator.alpha]: [神州行]
[gsm.sim.operator.iso-country]: [cn]
[gsm.current.phone-type]: [1]
[gsm.operator.alpha]: [CHINA MOBILE]
[wifi.interface]: [mlan0]
[dalvik.vm.heapsize]: [32m]
...
当然,你也可以敲:"getprop gsm.sim.operator.iso-country",输出的就是"cn"了。
这是获取系统信息的一个重要渠道。android提供了一些api,可以方便的实现系统信息访问。
在adb中以property_get函数体现。
在android源码$(ANDROID_SRC)/system/core/libcutils/properties.c中实现的。
其中根据编译条件不同,有3个实现int property_get(const char *key, char *value, const char *default_value)
第一个:通过__system_property_get获取;
该函数实现在:$(ANDROID_SRC)/bionic/libc/bionic/system_properties.c中,
可以看出__system_property_get是在android的libc中的。
其实质是访问了__system_property_area__的内存地址,该地址上的内容是init进程维护的。
第二个:通过与文件描述符gPropFd交互;
gPropFd来自文件为"/tmp/android-sysprop"的套接字
第三个:通过环境变量获取
[gsm.sim.operator.alpha]: [神州行]
[gsm.sim.operator.iso-country]: [cn]
[gsm.current.phone-type]: [1]
[gsm.operator.alpha]: [CHINA
[wifi.interface]: [mlan0]
[dalvik.vm.heapsize]: [32m]
...
当然,你也可以敲:"getprop gsm.sim.operator.iso-country",输出的就是"cn"了。
这是获取系统信息的一个重要渠道。android提供了一些api,可以方便的实现系统信息访问。
在adb中以property_get函数体现。
在android源码$(ANDROID_SRC)/system/core/libcutils/properties.c中实现的。
其中根据编译条件不同,有3个实现int property_get(const char *key, char *value, const char *default_value)
第一个:通过__system_property_get获取;
第二个:通过与文件描述符gPropFd交互;
第三个:通过环境变量获取