3

既存のネイティブライブラリに基づいてAndroidアプリケーションを開発しています。ネイティブAPIを公開するためのJNIクラスが設定されています。ネイティブライブラリにはDPIグローバル静的変数があり、次のブロックで初期化する必要があります。

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

問題は、ネイティブレベルでデバイスのDPIを取得するにはどうすればよいかということです。Javaレベルでは、アクティビティが起動すると、WindowManagerによってプロパティを簡単に取得できることを知っています。アクティビティを開始する前にプロパティを取得することはできますか?

あなたの助けに感謝。

4

1 に答える 1

1

私が覚えているように、DPI を取得するにはContextが必要ですが、ネイティブ コードでは必要ありません。Application.onCreateで呼び出されるネイティブ メソッドを追加し、ネイティブ変数を設定することをお勧めします。これはJNI_OnLoad ではなく、アクティビティの開始前に行われます。

于 2013-03-01T22:40:13.243 に答える