Android:如何从 native 代码获取设备 DPI

标签 android java-native-interface native dpi

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

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

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

感谢您的帮助。

最佳答案

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

关于Android:如何从 native 代码获取设备 DPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12830272/

相关文章:

ios - 如何从 Have 创建 iOS 和 OSX 库并在 native 应用程序中使用它?

android - 使用 android 和 sdl 从 c++ 进行 java 回调

java - 使用 JNI 从 Java 创建 QMainWindow

c++ - 使用 JNI 和 C++ 将 Unicode const char* 转换为 JString

java - JNI - native 方法异常

audio - SuperpoweredFloatToShortIntInterleave可以用于处理设备中的媒体播放吗?

android - 适用于 Android 原生应用的 Google Polymer

android - Google Play商店中0个受支持的设备

java - 第二种布局按钮不起作用

android - 希望构建一个同步到 App Engine 数据存储区(python)的 Android 应用程序