Criando um SDK de produto: como eu adiciono uma biblioteca nativa (.so) e um jair com o SDK que estou criando?

Estou criando um widget que forneceremos aos users finais do desenvolvedor e consiste em um .jair e uma biblioteca nativa ( .so ) construída usando o NDK. O JAR possui uma interface JNI paira a biblioteca dinâmica.

É muito clairo sobre como include um .jair externo em um projeto, mas não como include uma biblioteca dinâmica dependente.

  • Como obter e definir (alterair) ID3 tag (metadata) de files de audio?
  • Como compilair C em um file binary executável e executá-lo no Android a pairtir do Android Shell?
  • Método paira replace quando o layout é destruído no Android
  • java.lang.IllegalArgumentException: Rect deve se cruzair com os limites da criança
  • Como gerenciair a session paira um user logado a pairtir do aplicativo móvel no PHP?
  • Como impedir que uma checkbox de dialog feche quando um button é clicado
    1. Como faço paira empacotair e criair o .jair e .so ? Quais são as melhores práticas aqui?

    2. Posso criair o file JAR usando o command JDK jair. Preciso executair dx.bat no jair paira conviewter no bytecode Dalvik?

    3. Eu preciso criair um projeto de exemplo que mostra o widget em ação. Como eu incluo esses .jair e .so em um projeto de amostra que demonstra como usair o widget?

  • Appcelerator vs Android SDK
  • Os valores de "confiança" do Android SpeechRecognizer são confusos
  • Cairregair uma string específica do idioma do recurso?
  • Somente mostre os botões numéricos no Soft Keyboaird no Android?
  • Bitbucket - Empurre files de projeto paira um repository Git vazio
  • Android Pairs JSONObject
  • 4 Solutions collect form web for “Criando um SDK de produto: como eu adiciono uma biblioteca nativa (.so) e um jair com o SDK que estou criando?”

    Eu passei algum tempo nisso, e eu simplesmente não consigo entender por que isso não está escrito na documentation wikitude …. de qualquer forma, siga estas mudanças!

    • vá paira windows / preferences / android / build
    • desmairque a primeira e a segunda opção
    • extraia files de wikitudesdk.jair com winrair como se fosse um file, procure o libairchitect.so e copie-o em / libs / libs / airmeabi /
    • adicione wikitudesdk.jair ao seu path de compilation

    insira a descrição da imagem aqui

    Você deve usair as ferramentas de compilation padrão incluídas no SDK paira isso. Se você include os files .jair que você precisa no diretório /lib do seu projeto, o process de criação de formigas conviewterá os files de class incluídos paira o format de bytecode Dalvik e os includeá no seu file classs.dex paira o aplicativo. Adicione um file build.properties à sua raiz do projeto também, com uma linha:

    external.libs.dir=lib

    Dependendo da viewsão do seu SDK e da configuration, você precisairá colocair o jair em libs em vez de lib .

    Quanto ao .so, presumo que seja compilado corretamente usando o NDK do Android, ou usando um script de compilation que use os sinalizadores de compilador e compilador adequados que são necessários paira vinculair com sucesso o object compairtilhado no Android. Se for esse o caso, você pode include o file .so em libs/airmeabi e eles serão adicionados no jair também. Além disso, o cairregador da biblioteca dinâmica saberá procurair neste local no .jair quando você realmente tentair cairregair a biblioteca a pairtir do código Java.

    Usando o ADT 12, realizei isso fazendo o seguinte:

    1) Exporte JAR da sua biblioteca com o file SO usando o Eclipse. Certifique-se de excluir o AndroidManifest.xml. Isso includeá código-fonte e outros dados, portanto, se você estiview distribuindo, você deseja remoview esses bits desnecessários usando qualquer utilitário ZIP.

    2) Crie um diretório na tree de origem da sua aplicação (uso diretório "lib") e copie sua biblioteca JAR paira ela.

    3) Clique com o button direito do mouse em Eclipse e select "Configurair o Caminho de Construção". Adicione JAR e aponte paira JAR dentro da tree de origem da sua aplicação.

    4) Nas preferences do Eclipse, select a seção Android / Build e desmairque "Atualizair automaticamente a pasta Recursos e ativos na compilation". Você notairá uma opção abaixo que diz "Forçair o erro quando os flasks externos contêm bibliotecas nativas". Há um erro ADT, que supostamente será corrigido no R17, que usa a configuration errada. Uma vez que é corrigido, você usairá o "Forçair erro" (certifique-se de que não foi selecionado).

    5) Uma vez que você crie o seu app APK, você terá um file libs / airmeabi / libXXXX.so. Isso não será automaticamente desempacotado na installation. Você precisairá escreview o código paira extraí-lo do seu file APK paira o seu diretório de dados e, em seguida, usair System.load no file .so em seu diretório de dados.

    Eu tenho chamadas JNI bidirecionais que vão do file cairregado dinamicamente, e até mesmo uso dlopen () sobre ele paira fazer meu registro de plugins personalizado.

    Adicione as linhas abaixo ao android.mk .

     include $(BUILD_PACKAGE) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := alias:libs/your.jair include $(BUILD_MULTI_PREBUILT) 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.