Android反射设置和获取系统属性
2023-09-14 09:04:24 时间
安卓SystemProperties类在上层是不可见的
所以我们需要用系统属性来和系统程序以及executables可执行文件做交互的时候,上层app可以采用反射方式获取set/get方法:
/**
* Create by LankyBin on 2020-03-23
*/
public class PropSetter {
public void setProp(String key, String string) {
String value = string;
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("set", String.class, String.class);
get.invoke(c, key, value);
} catch (Exception e) {
e.printStackTrace();
}
}
public String getProp(String key, String defaultValue) {
String value = defaultValue;
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class, String.class);
value = (String) (get.invoke(c, key, "unknown"));
} catch (Exception e) {
e.printStackTrace();
} finally {
return value;
}
}
}
前段时间注意到,setprop时的key也就是属性名是有长度限制的,一般安卓默认限制是32个字符,这个需要注意一下,否则在反射调用的时候运行时会报异常。
相关文章
- 聚焦 Android 11: 大功告成
- 加密狗android,Android系统加密狗的设计与实现
- android开机动画多长时间_Android开机动画原理分析
- 74款android开机动画,修改Android系统开机动画
- android activity自动跳转,Android activity跳转之finish()方法的作用
- strictmode android,Android 应用性能优化-StrictMode(严格模式)
- Android+jacoco实现代码覆盖率最正确的实现方式,没有之一!
- android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解…
- android线程间通信的几种方法_Android进程间和线程间通信方式
- 【Android 应用开发】Activity 任务亲和性 taskAffinity 设置 ( taskAffinity 属性 )
- 【Android NDK 开发】NDK 交叉编译 ( NDK 函数库目录 | Linux 交叉编译环境搭建 | 指定头文件目录 | 指定函数库目录 | 编译 Android 命令行可执行文件 )
- 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 简介 | 权限申请处理细节 | 添加依赖 | 界面权限申请结果处理 | 权限申请结果回调接口 )
- 【Android 属性动画】属性动画 Property Animation 与 视图动画 View Animation 区别
- 【Android 进程保活】提升进程优先级 ( 使用前台 Service 提高应用进程优先级 | 启动相同 id 的第二个前台 Service 关闭通知 )
- 【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )
- 【Android NDK 开发】CMake 中查找链接 Android 自带动态库位置说明 ( ndk-bundleplatformsandroid-29arch-armusrlib )
- [android] 轮播图-滑动图片标题焦点详解手机开发
- Android studio开发常用快捷键详解手机开发
- Android开发–Intent-filter属性详解手机开发
- Android Studio 导入项目 出现安装Error:Cause: failed to find target with hash string ‘android-23’ 等错误详解手机开发
- Android中android:visibility的3中属性的剖析详解手机开发
- 基于Java LinkedList,实现Android大数据缓存策略详解编程语言
- Android系统基于Linux内核,实现移动设备突破极限。(android linux内核)
- Android开发笔记TableLayout常用的属性介绍
- android创建手势识别示例代码
- android开发教程之清除android数据缓存示例(清除本地数据缓存)
- android在root模式下接听来电的方法