0

SSL通信にopensslを使用するcppで1つのモジュールを作成しました。このモジュールの上に JNI レイヤーを記述して、Android アプリケーションでこのモジュールを使用することにしました。ここでの主な問題は、ndk を使用して構築された openssl の「静的」ライブラリが必要なことです。

このリンクgit リポジトリから openssl パッケージを取得しました

共有ライブラリを構築するためにそのまま使用している場合、これはうまく機能しますが、静的ライブラリ用に構築したいと考えています。私はファイルを作成するのが非常に新しいです。上記のリンクから取得したこのopensslパッケージのmakefileを変更して静的ライブラリを取得する方法を教えてください..?

前もって感謝します。

4

1 に答える 1

1

まず、JNI を共有 OpenSSL ライブラリにリンクできます。これらのライブラリを使用する JNI ライブラリをロードする前に、Java コードからこれらのライブラリをロードするだけで済みます。

第 2 に、OpenSSL ライブラリ (共有オブジェクト) はすべての Android にインストールされているため、おそらくビルドする必要はまったくありません。バージョンは異なる場合がありますが、Android 4.01 ツリーでは、eighthave git よりもバージョンが進んでいます。

最後に、NDK が$(NDK_ROOT)ディレクトリにインストールされている場合は、次のコマンドを実行するだけです。

$(NDK_ROOT)/ndk_build APP_MODULES="ssl crypto" BUILD_SHARED_LIBRARY="$(NDK_ROOT)/build/core/build-static-library.mk"

(8 分の 1 の git clone のルート ディレクトリから) ...そして自動的に静的ライブラリ obj/local/armeabi/libcrypto.a と obj/local/armeabi/libssl.a が見つかります。

于 2012-09-09T14:41:50.057 に答える