Android java方法实现调用系统属性
2016-09-06 14:44
369 查看
最近在写一个测试apk时需要调用Android的系统属性来设置相关的标志位,但在使用标准的java库中的System.getProperty和System.setProperty方法并不能获得Android中的系统属性,而且会出现空指针崩溃。查阅相关资料发现,虽然Android在Java库中提供System.getProperty和System.setProperty方法,我们Java程序可以通过他们来设置和获得属性,但是请注意!虽然从语法上面看Java的代码和Native代码非常相近,但是Java版本存储把属性存在其他地方,而不是我们上面提到的属性系统中。在JVM中有一个hash表来维护Java的属性。所以Java属性和Android属性是不同的,不能用Java
API(System.getProperty和System.setProperty)来设置系统属性。也不能通过Native的方法(property_get和property_set)设置Java的属性。
虽然不能通过上述的方法得到Android的系统属性值,但Android提供了另一个api来获取这些值,即调用android.os.SystemProperties中的SystemProperties.get()和SystemProperties.set()方法来实现Android系统属性的设置和获取。但需要注意的是在eclipse的工程中我们直接用import来导入android.os.SystemProperties会报错提示找不到这个包名。经过查询android.os.SystemProperties在layoutlib.jar库文件中,此库文件在sdk\platforms\android-xxx\data\中,手动导入到工程的库文件里就OK了。
API(System.getProperty和System.setProperty)来设置系统属性。也不能通过Native的方法(property_get和property_set)设置Java的属性。
虽然不能通过上述的方法得到Android的系统属性值,但Android提供了另一个api来获取这些值,即调用android.os.SystemProperties中的SystemProperties.get()和SystemProperties.set()方法来实现Android系统属性的设置和获取。但需要注意的是在eclipse的工程中我们直接用import来导入android.os.SystemProperties会报错提示找不到这个包名。经过查询android.os.SystemProperties在layoutlib.jar库文件中,此库文件在sdk\platforms\android-xxx\data\中,手动导入到工程的库文件里就OK了。
相关文章推荐
- 说说PendingIntent的内部机制
- 关于Android6.0权限
- 详解Android事件的分发、拦截和执行
- Android自定义控件:动画类(十三)----animateLayoutChanges与LayoutTransition
- Dialog详解笔记
- Android之粘性广播
- android权限
- Android USB 设备连接的官网文档
- ios下设备与电脑的通讯工具(类似android 下的adb)
- Android 强制横屏或竖屏注意事项及onConfigurationChanged的使用
- 使用LeakCanary检测内存泄露
- Android 图片的缩放与旋转
- Android 使用RecycleView和CardView
- Android之通知栏Notification全面学习
- Android6.0指纹识别开发案例
- Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment
- AndFix热修复学习 - 《Android必备技能》
- webstorm提示"Cannot detect andro 4000 id SDK in path"
- Android自定义简易时间选择器
- android studio生成aar包并在其他工程引用aar包