GameActivity Parte do Android Game Development Kit.
A GameActivity é uma biblioteca do Jetpack criada
para ajudar jogos do Android a processar comandos do ciclo de funcionamento, eventos de entrada e entradas
de texto no código C/C++ do app. A GameActivity foi derivada diretamente da
NativeActivity, e elas têm uma arquitetura
parecida:

Como ilustrado no diagrama acima, a GameActivity realiza estas
funções:
- Interage com o framework do Android usando o componente Java.
- Transmite comandos do ciclo de funcionamento, eventos de entrada e entradas de texto para o lado nativo do app.
- Modela o código-fonte C/C++ em três componentes lógicos:
- Funções JNI da GameActivity, que oferecem suporte direto para a funcionalidade Java
da GameActivity e enfileiram os eventos em
native_app_glue. native_app_glue, que é executado essencialmente em uma linha de execução nativa própria, diferente da linha de execução principal do app. Esse componente executa tarefas com o looper.- O código do jogo do app, que consulta e processa os eventos na fila
em
native_app_gluee executa o código do jogo na linha de execuçãonative_app_glue.
- Funções JNI da GameActivity, que oferecem suporte direto para a funcionalidade Java
da GameActivity e enfileiram os eventos em
Com a GameActivity, você pode se concentrar em desenvolver os principais elementos do seu jogo e não
desperdiçar tempo lidando com o código JNI.
Se você já conhece a NativeActivity, as principais diferenças
entre a GameActivity e a NativeActivity são estas:
- A
GameActivityé renderizada em umaSurfaceView, o que permite que os jogos interajam com outros componentes da IU com mais facilidade. - Para eventos de entrada por toque e pressionamento de tecla, a
GameActivitytem uma implementação totalmente nova com a interfaceandroid_input_buffer, que é separada daInputQueueusada pelaNativeActivity. - A
GameActivityé uma classe derivada daAppCompatActivity, que permite usar outros componentes do Jetpack facilmente. Os componentesActionBar,Fragmente outros estão disponíveis. - A
GameActivityintegra a biblioteca GameTextInput e, assim, inclui a função de entrada de texto. - Os apps derivados da
GameActivityprecisam criar as três partes do código C/C++ em uma biblioteca. Por outro lado, as funções JNI daNativeActivityfazem parte do framework e sempre são carregadas pelo SO. Somente anative_app_gluee o código C/C++ do app precisam ser criados em uma biblioteca. - A
NativeActivityfaz parte do framework do Android e segue o ciclo de lançamento do Android, que geralmente é anual. Já aGameActivityfaz parte da biblioteca do Jetpack, que tem um ciclo de lançamento muito mais frequente, geralmente quinzenal. Dessa forma, novos recursos e correções de bugs podem ser disponibilizados muito mais rapidamente.
Locais de lançamento
A biblioteca GameActivity está disponível nos seguintes canais:
- Como parte da biblioteca do Android Jetpack (recomendado)
- Como código-fonte do AOSP
O código C/C++ é fornecido como código-fonte em todos os canais de lançamento, usando o formato Prefab. A GameActivity versão 1.2.2 adiciona uma biblioteca estática à distribuição. A partir dessa versão, recomendamos usar a biblioteca estática em vez do código-fonte.
Conteúdo da biblioteca Jetpack
Com a biblioteca do Jetpack, a GameActivity é lançada com um AAR. Esse AAR contém os seguintes componentes principais:
- Um arquivo JAR para o código Java.
- A biblioteca C/C++ estática
game-activity_staticestá incluída na GameActivity versão 1.2.2 e mais recentes. - Código-fonte C/C++ (na pasta
/prefab).
Os links para instruções de integração nesta página presumem que você pode usar
o Prefab no seu sistema de build. Se não puder, copie o código-fonte incluído
na pasta prefab/modules/game-activity/include para seu sistema de build
e execute as etapas de integração necessárias. Há uma estrutura de arquivos parecida para
as versões no androidx para a biblioteca do Android Jetpack. Por padrão,
o Gradle descompacta arquivos AAR no diretório de cache (~/.gradle/caches/...). Para encontrar
o código-fonte C/C++, pesquise prefab/modules/game-activity/include
e selecione o local na versão de lançamento pretendida.
Para ver instruções sobre como integrar usando a biblioteca Jetpack, consulte Introdução à GameActivity.
Conteúdo do código-fonte do AOSP
O AOSP sempre contém o código-fonte mais recente. Siga [as instruções de build][GameActivity implementation]{: .external} para criar suas próprias versões ou integrar diretamente a origem ao ambiente de build. O código-fonte C/C++ é salvo em uma estrutura de arquivos semelhante à da biblioteca Jetpack.
Guias de integração
Para integrar a GameActivity ao app, siga as instruções destes guias:
Outros recursos
Para saber mais sobre GameActivity, consulte:
- Notas da versão da GameActivity e do AGDK.
- Usar GameTextInput em GameActivity
- Guia de migração da NativeActivity
- Documentação de referência da GameActivity
- Implementação da GameActivity
Feedback
Para informar bugs ou solicitar novos recursos, use o Issue Tracker da GameActivity.