1 获取反射对象的属性值
val activityManagerClass = Class.forName("android.app.ActivityManager")
//获取所有的属性 并标记为可以访问
activityManagerClass.declaredFields.forEach {
it.isAccessible = true
Log.e("kangf", "field == " + it.name)
}
val singletonField = activityManagerClass.getDeclaredField("IActivityManagerSingleton")
singletonField.isAccessible = true
//这里参数传递null 是因为IActivityManagerSingleton 是静态属性
val singleton = singletonField.get(null)
val singletonClass = Class.forName("android.util.Singleton")
val mInstanceField = singletonClass.getDeclaredField("mInstance")
mInstanceField.isAccessible = true
//获取指定对象的属性值
val mInstance = mInstanceField.get(singleton)
网友评论