我对这个问题感觉不好,但是......
鉴于此课程
class A {
public static final String field = "I_m_a_field";
}
包中的 com.uselessoftware.A 并编译为 A.apk 。
是否可以从不同包中的其他应用程序读取静态字段?让我们假设(全伪):
class B {
void readField() {
iDontKnow obj = loadExternalClass("com.uselessoftware.A", "A");
String externalField = obj.readStaticAsString(obj, "field");
}
}
包中的 com.uselessoftware.B 并编译为 B.apk 。
答案 0 :(得分:1)
Context _external_context = createPackageContext("com.uselessoftware.A", context.CONTEXT_INCLUDE_CODE + Context.CONTEXT_IGNORE_SECURITY);
Class<?> _external_class = _external_context.getClassLoader().loadClass("com.uselessoftware.A");
Field _external_field = _external_class.getField("field");
String _field = (String) _external_field.get(null);
不是由于我,发现this discussion谷歌搜索。