9

言い換える-keepと、ネイティブライブラリを表すクラスを難読化しないようにProguardに指示するには、どのコマンドを使用する必要がありますか?(JNAでは、名前が同等のネイティブ関数、構造体などと一致する必要があるため)

4

4 に答える 4

5

これは私が今のところ使用しているルールです:

-keepclassmembers class * extends com.sun.jna.** {
    <fields>;
    <methods>;
}

もっと良い方法があるかもしれないと今でも思っています。

于 2012-05-14T17:58:03.493 に答える
0

デフォルトでは、JNA は Library インターフェイス メソッド名を使用してネイティブ関数名を検索します。それら以外のものは、難読化に耐えられるはずです。

テストにすべての JNA 呼び出しのカバレッジが含まれている場合は、ここで質問するのとほぼ同じ速さでこれをテストできるはずです。

編集

「-keep」コマンドを提供する準備ができていないので、これはコメントと考えてください:)

Structure フィールドを削除したり並べ替えたりすることは絶対に避けてください。

于 2012-05-11T20:02:01.240 に答える