3

我们正在基于我们现有的原生库开发一个 Android 应用程序。我们有一组 JNI 类来公开原生 API。原生库有一个 DPI 全局静态变量需要在这个块中初始化:

JNIEXPORT jint JNICALL JNI_OnLoad( JavaVM *vm, void *pvt ) {
 ...
}

问题是我如何在本机级别获得设备 DPI。我知道在 Java 级别上,一旦活动启动,您可以通过 WindowManager 轻松获取该属性。是否可以在我的活动开始之前获得该物业?

感谢你的帮助。

4

1 回答 1

1

我记得,你需要有Context才能获得 DPI,但在本机代码中你没有。我建议您添加一个将在Application.onCreate中调用的本机方法并设置您的本机变量。这不会在JNI_OnLoad中完成,而是在任何活动开始之前完成。

于 2013-03-01T22:40:13.243 回答