Colbind libs di terza parte (libs.a) con NDK

Sto costruendo un'applicazione Android che utilizza alcune biblioteche native di una terza parte, queste librerie sono in libreria di codici di oggetti statici (file .a) e devo scrivere un wrapper JNI per accedere a Java queste funzioni.

Quelle libs sono già compilate con un cross-compilatore e sono nativamente Android.

  • Comprendere come funzionano effettivamente le coordinate di disegno o di disegno in Android
  • Come submit i parametri JSON come richiesta di servizio Web in Android?
  • Aggiungere file pre-built .so in progetto utilizzando plugin 0.7.3 di Android Gradle
  • Come modificare lo background della barra di azione ei colors del text
  • Android: Mostra il pane tostato dopo aver finito l'applicazione / attività
  • È ansible scrivere un ricevitore broadcast Android che rileva quando il telefono si sveglia?
  • Come comporre le mie origini JNI che si collegano alle funzioni dei file .a libs?

    Questo è il mio Android.mk

    LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_LDLIBS := -llog LOCAL_MODULE := ndk1 LOCAL_SRC_FILES := native.c include $(BUILD_SHARED_LIBRARY) 

    Quando compila, ottengo solo il file native.c compilato.

  • Android - Come aprire mappe google con Intent e KML?
  • come caricare l'image nel server
  • Android Studio "Project Structure" non viene correttamente
  • Tinta / disegna disegnabile sul touch
  • MPAndroidChart: Posso impostare diversi colors per le etichette x?
  • Perché android: layout_width = "0px" per i frammenti?
  • 2 Solutions collect form web for “Colbind libs di terza parte (libs.a) con NDK”

    Fare quello.

    Devo dichiarare questi libs come moduli. Come il seguente.

     LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := curl LOCAL_SRC_FILES := libcurl.a LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include include $(PREBUILT_STATIC_LIBRARY) 

    Con un file libcurl.a nella stessa cartella di questo file Android.mk e un / include fodler con le intestazioni.

    Ora nel module principale solo dichiarare il lib e l'Android NDK si prenderà cura del resto.

     LOCAL_PATH := $(call my-dir) include $(call all-subdir-makefiles) include $(CLEAR_VARS) LOCAL_LDLIBS := -llog -ldl LOCAL_MODULE := rmsdk LOCAL_SRC_FILES := curlnetprovider.cpp native.c LOCAL_STATIC_LIBRARIES := curl include $(BUILD_SHARED_LIBRARY) 

    Nota .. è necessario includere il file Android.mk del module prima di utilizzarlo. Lo faccio con il call-all-subdir-makefiles.

    I tuoi libs devono essere compilati per il tuo target specifico (arm), per farlo credo che devi utilizzare il toolchain come descritto in docs / STANDALONE-TOOLCHAIN.html (nella tua cartella ndk-r5).

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.