Android属性系统都有哪些
在Android系统里,为了让C和JAVA语言间可进行数据传输,除了使用JNI机制来处理,还可以使用属性系统来处理,这样更方便,也更容易处理,
在JAVA语言里,我们可以使用SystemProperties.get/set来处理;而在C里面,我们可以使用property_get/set来处理,相应的例子如下:
1、Java
import android.os.SystemProperties;
SystemProperties.set("persist.sys.language",zone.getID());
String.get("persist.sys.language");
其中以persist开头的属性会在/data/property目录下创建相应的文件,如果以ro开头则是只读,不可变更该属性值。
2、C
#include <cutils/properties.h>
property_set("persist.sys.language","zh");
property_get("persist.sys.language",pLang,"en");
还需要包含libcutils库。
看到上面的属性名了吧,相同的名字,这样就可以在C与JAVA之间进行属性或参数传递了,当然属性名也是有长度限制的,由PROP_NAME_MAX宏指定,而属性值也一样有限制,由PROP_VALUE_MAX宏指定,在Android源码里的frameworks/base/core/java/android/os/SystemProperties.java文件里可以查看到,对应的值分别是31和91。