Jak používat OpenSSL knihovny v Aplikace pro Android

hlasů
7

Snažím se vložit knihovnu openssl v mém Android aplikace pomocí Android NDK, ale já nevím, jak používat přesně tuto knihovnu a tak prosím, někdo může mi říct, jak používat, že zašlete zdrojový kód pro mé reference ... ....

Příbuzný :

Jak se staví OpenSSL na Android / Linux?

Položena 15/06/2010 v 16:22
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
3

Have you tried to, jeho samostatný sestavení OpenSSL, který je obsažen v systému Android: https://github.com/fries/android-external-openssl/blob/master/README.android

Odpovězeno 09/02/2011 v 05:50
zdroj uživatelem

hlasů
2

Popíši několik tipů k používání OpenSSL s operačním systémem Android:

  1. Je nutné vybudovat OpenSSL knihoven pomocí NDK nástroje, jinak budou neslučitelné s NdK. Kompilace nejnovější OpenSSL pro Android

    CC=~/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc
    ./Configure android-armv7
    export ANDROID_DEV=~/android-ndk-r9//platforms/android-8/arch-arm/usr
    make build_libs
    

    Předpokládá se, že tento příkazy budou provedeny ve zdrojovém adresáři OpenSSL.

  2. Aby bylo možné použít tyto knihovny (SSL a kryptografických) s vaší vlastní knihovny z NdK, budete muset vytvořit další * .mk soubory ve složce JNI. Například:

    include $(CLEAR_VARS)
    
    LOCAL_MODULE    := ssl-crypto
    LOCAL_SRC_FILES := openssl-crypto/libcrypto.so
    
    include $(PREBUILT_SHARED_LIBRARY)
    

    a zahrnout je do hlavního Android.mk:

    include $(LOCAL_PATH)/openssl-ssl/Android.mk
    

    a pravděpodobně přidat

    include $(CLEAR_VARS) 
    

    Po tom, jak zabránit chybám. Knihovny budou umístěny do libs/armabia .apk.

  3. Pokud se setkáte s chybou could not load library ... needed by ..., pravděpodobně to znamená, že vaše knihovna soname s číslem verze. Pokud vím NDK je schopen pracovat s takovými knihovnami v tomto okamžiku. Tam je řešení ( Dalvik hledá .so soubor s‘.0' rozšíření - proč? ):

    rpl -R -e library.so.1.1 "library.so\x00\x00\x00\x00" libs obj
    

    kde rplje linux náhradní řetězec nástroj. Tento skript spustit po vybudování a před spuštěním aplikace a bude odstranit číslo verze souborů projektu. Klikněte na odkaz pro více informací.

    Používáte-li C ++ kompilátor může získat chyba „nedefinovaných referencí“ ve svých C funkce. Použijte extern "C" {}k tomu nedošlo (viz „C ++ název mandlování“ pro více informací).

  4. Nakonec nezapomeňte zahrnout povolení pro používání sítě do manifestu.

Odpovězeno 08/09/2014 v 09:36
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more