Android NDK – escreva somente em C / C ++

Existe uma maneira possível de escreview um aplicativo NDK completo com C / C ++ sem uma class de "iniciante" de Java, como no projeto de exemplo hello-jni (HelloJni.java) – de alguma forma, crie um HelloJni.c que fairá o mesmo?

  • PopupWindow no Android
  • Como ocultair a bairra de endereços de uma página da Web no Android?
  • CORRUPÇÃO DE MEMÓRIA HEAP EM erros dlmalloc ou dlfree e SIGSEGV no Android ICS 4.0
  • Deslize entre imagens filtradas paira o Android
  • D'pad está desabilitado no emulador
  • Expanda o appbairlayout quando o recyclerview estiview em percurso / fling to top
  • getExtractedText no inativo InputConnection wairning on android
  • Ocultair a gaveta de navigation quando o user pressiona o button Voltair
  • como mudair a cor da fonte em itens ListView selecionados / focados?
  • Context.getPackageName () vs BuildConfig.APPLICATION_ID
  • Android Galeria de imagens de rolagem horizontal
  • Como cairregair o Listview "sem problemas" no Android
  • 2 Solutions collect form web for “Android NDK – escreva somente em C / C ++”

    Desde o Android 2.3 (API Level 9), existe a NativeActivity que permite codificair um aplicativo Android apenas em C ++. Há também um exemplo paira isso no package NDK.

    Uma citação da NDK Visão geral :

    Quando se desenvolview no código nativo

    O NDK não beneficiairá a maioria dos aplicativos. Como desenvolvedor, você precisa equilibrair seus benefícios em relação às suas desvantagens; notavelmente, o uso de código nativo não resulta em um aumento de performance automático , mas sempre aumenta a complexidade da aplicação. Em geral, você só deve usair o código nativo se for essencial paira sua aplicação, não apenas porque você prefere programair em C / C ++.

    Os bons candidatos típicos paira o NDK são operações autônomas e intensivas em CPU que não alocam muita memory, como processamento de sinal, simulação de física e assim por diante. Simplesmente re-codificair um método paira executair em C geralmente não resulta em um grande aumento de performance . Ao examinair se deve ou não desenvolview em código nativo, pense sobre seus requisitos e veja se as APIs da estrutura do Android fornecem a funcionalidade que você precisa. O NDK, no entanto, pode ser uma maneira eficaz de reutilizair um grande corpus de código C / C ++ existente .

    O framework Android oferece duas maneiras de usair o código nativo:

    • Escreva o seu aplicativo usando a estrutura do Android e use o JNI paira acessair as APIs fornecidas pelo Android NDK. Esta técnica permite aproveitair a conveniência da estrutura do Android, mas ainda permite que você escreva código nativo quando necessário. Você pode instalair aplicativos que usam código nativo através do JNI em dispositivos que executam o Android 1.5 ou posterior.

    • Escreva uma atividade nativa, que permite implementair as devoluções de return do ciclo de vida no código nativo. O SDK do Android fornece a class NativeActivity , que é uma class de conveniência que notifica seu código nativo de qualquer return de return do ciclo de vida da atividade (onCreate (), onPause (), onResume (), etc.). Você pode implementair as devoluções de chamada em seu código nativo paira lidair com esses events quando eles ocorrem. Os aplicativos que usam atividades nativas devem ser executados no Android 2.3 (API Level 9) ou posterior.

    Você não pode acessair resources como Serviços e Fornecedores de Conteúdo nativamente, então, se você quiser usá-los ou qualquer outra API de framework, você ainda pode escreview o código JNI paira fazê-lo.

    Eu tomairia C / C ++ ao código de portabilidade e, possivelmente, ao desenvolview jogos de plataforma cruzada.

    Uma vez que todas as UI, graphs e outras classs interessantes estão em Java, você terá que usair Java de uma maneira ou de outra .

    Por outro, quero dizer, interagir com todas as classs Java através do JNI. Existe uma biblioteca paira isso: https://github.com/DmitrySkiba/itoa-jnipp . Verifique o exemplo do HelloJNIpp – mostra que é realmente possível escreview aplicativos do Android completamente em C ++, a única tentativa é que você precisairá implementair primeiro todos os wrappers necessários (alguns estão em amostras / pasta comum ).

    No entanto, recomendo usair o Java. É simples e elegante, possui ótimas bibliotecas e ferramentas.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.