This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Dispositivos Android permitem que você execute livremente seus próprios aplicativos neles. É muito fácil construir uma versão do seu jogo e copiá-la para um dispositivo Android. Este manual explica as etapas envolvidas na criação do pacote do seu jogo para Android. Durante o desenvolvimento, executar seu jogo através do aplicativo de desenvolvimento é frequentemente preferível, pois permite recarregar conteúdo e código diretamente no seu dispositivo.
O Android exige que todos os APKs sejam assinados digitalmente com um certificado antes de serem instalados em um dispositivo ou atualizados. Se você usar Android App Bundles, precisa assinar apenas seu app bundle antes de enviá-lo para o Play Console, e o Play App Signing cuida do resto. No entanto, você também pode assinar manualmente seu aplicativo para envio para o Google Play, outras lojas de aplicativos e para distribuição fora de qualquer loja.
Quando você cria um Android application bundle a partir do editor Defold ou da ferramenta de linha de comando, você pode fornecer um keystore (contendo seu certificado e chave) e senha do keystore que serão usados ao assinar sua aplicação. Se você não fornecer, o Defold gera um keystore de depuração e o usa ao assinar o pacote de aplicativo.
Você nunca deve enviar sua aplicação para o Google Play se ela foi assinada usando um keystore de depuração. Sempre use um keystore dedicado que você mesmo criou.
O processo de assinatura Android no Defold mudou na versão 1.2.173 de usar uma chave e certificado independentes para usar um keystore. Mais informações neste post do fórum.
Você pode criar um keystore usando o Android Studio ou a partir de um terminal/prompt de comando:
keytool -genkey -v -noprompt -dname "CN=John Smith, OU=Area 51, O=US Air Force, L=Unknown, ST=Nevada, C=US" -keystore mykeystore.keystore -storepass 5Up3r_53cR3t -alias myAlias -keyalg RSA -validity 9125
Isso irá criar um arquivo keystore chamado mykeystore.keystore
contendo uma chave e certificado. O acesso à chave e certificado será protegido pela senha 5Up3r_53cR3t
. A chave e o certificado serão válidos por 25 anos (9125 dias). A chave e o certificado gerados serão identificados pelo alias myAlias
.
Certifique-se de armazenar o keystore e a senha associada em um local seguro. Se você assinar e enviar suas aplicações para o Google Play e o keystore ou a senha do keystore for perdida, não há como atualizar a aplicação no Google Play. Você pode evitar isso usando o Google Play App Signing e deixar o Google assinar suas aplicações para você.
O editor permite que você crie facilmente um pacote de aplicativo independente para seu jogo. Antes de empacotar (criar um bundle), você pode especificar qual(is) ícone(s) usar para o aplicativo, definir o código de versão etc. no arquivo de configurações do projeto game.project.
Para empacotar, selecione Project ▸ Bundle... ▸ Android Application... no menu.
Se você quiser que o editor crie automaticamente certificados de depuração aleatórios, deixe os campos Keystore e Keystore password vazios:
Se você quiser assinar seu bundle com um keystore específico, especifique o Keystore e Keystore password. Espera-se que o Keystore tenha a extensão de arquivo .keystore
, enquanto a senha deve ser armazenada em um arquivo de texto com a extensão .txt
. Também é possível especificar uma Key password se a chave no keystore usar uma senha diferente do próprio keystore:
O Defold tem suporte à criação de arquivos APK e AAB. Selecione APK ou AAB no menu suspenso Bundle Format.
Pressione Create Bundle quando tiver configurado as definições do pacote de aplicativo. Em seguida, você será solicitado a especificar onde em seu computador o pacote será criado.
When you bundle a game, you need to choose what type of engine you wish to use. You have three basic options:
These different versions are also referred to as Build variants
When you choose Project ▸ Build you’ll always get the debug version.
This type of executable is typically used during development of a game as it has several useful debugging features included:
print()
function and from native extensions logging using dmLogInfo()
, dmLogError()
and so on. Learn how to read these logs in the Game and System Logs manual.This variant has the debugging features disabled. This options should be chosen when the game is ready to be released to the app store or in other ways shared with players. It is not recommended to release a game with the debugging features enabled for a number of reasons:
This executable runs without any graphics and sound. It means that you can run the game unit/smoke tests on a CI server, or even have it as a game server in the cloud.
Um arquivo .apk
pode ser copiado para seu dispositivo com a ferramenta adb
ou para o Google Play através do console do desenvolvedor do Google Play.
The adb
command line tool is an easy to use and versatile program that is used to interact with Android devices. You can download and install adb
as part of the Android SDK Platform-Tools, for Mac, Linux or Windows.
Download the Android SDK Platform-Tools from: https://developer.android.com/studio/releases/platform-tools. You find the adb tool in /platform-tools/. Alternatively, platform specific packages can be installed through respective package managers.
On Ubuntu Linux:
$ sudo apt-get install android-tools-adb
On Fedora 18/19:
$ sudo yum install android-tools
On macOS (Homebrew)
$ brew cask install android-platform-tools
You can verify that adb
works by connecting your Android device to your computer via USB and issue the following command:
$ adb devices
List of devices attached
31002535c90ef000 device
If your device does not show up, verify that you have enabled USB debugging on the Android device. Open the device Settings and look for Developer options (or Development).
$ adb install Defold\ examples.apk
4826 KB/s (18774344 bytes in 3.798s)
pkg: /data/local/tmp/my_app.apk
Success
Você pode instalar e iniciar um arquivo .apk
usando as caixas de seleção “Install on connected device” e “Launch installed app” no diálogo Bundle do editor:
Para que este recurso funcione, você precisará ter o ADB instalado e a Depuração USB (USB debugging) habilitada no dispositivo conectado. Se o editor não conseguir detectar a localização de instalação da ferramenta de linha de comando ADB, você precisará especificá-la nas Preferências.
Um arquivo .aab pode ser enviado para o Google Play através do console do desenvolvedor do Google Play. Também é possível gerar um arquivo .apk
a partir de um arquivo .aab para instalá-lo localmente usando o Android bundletool.
A engine Defold requer várias permissões diferentes para que todos os recursos do motor funcionem. As permissões são definidas no AndroidManifest.xml
, especificado no arquivo de configurações do projeto game.project. Você pode ler mais sobre permissões Android na documentação oficial. As seguintes permissões são solicitadas no manifesto padrão:
Permite que aplicativos abram soquetes de rede (network sockets) e acessem informações sobre redes. Essas permissões são necessárias para acesso à internet. (Documentação oficial Android) e (Documentação oficial Android).
Permite usar PowerManager WakeLocks para impedir que o processador entre em modo de suspensão ou que a tela escureça. Esta permissão é necessária para impedir temporariamente que o dispositivo entre em suspensão enquanto recebe uma notificação push. (Documentação oficial Android)
O AndroidX é uma grande melhoria em relação à biblioteca de suporte Android original, que não é mais mantida. Os pacotes AndroidX substituem completamente a Biblioteca de Suporte, fornecendo paridade de recursos e novas bibliotecas. A maioria das extensões Android no Portal de Assets suporta AndroidX. Se você não deseja usar o AndroidX, pode explicitamente desativá-lo em favor da antiga Biblioteca de Suporte Android marcando a opção Use Android Support Lib
no manifesto da aplicação.
A: Yes, set the immersive_mode setting in the Android section of your game.project file. This lets your app take over the whole screen and capture all touch events on the screen.
A: Android detects that you try to install the app with a new certificate. When bundling debug builds, each build will be signed with a temporary certificate. Uninstall the old app before installing the new version:
$ adb uninstall com.defold.examples
Success
$ adb install Defold\ examples.apk
4826 KB/s (18774344 bytes in 3.798s)
pkg: /data/local/tmp/Defold examples.apk
Success
A: This can happen when two or more extensions provide an Android Manifest stub containing the same property tag but with different values. This has for instance happened with Firebase and AdMob. The build error looks similar to this:
SEVERE: /tmp/job4531953598647135356/upload/AndroidManifest.xml:32:13-58
Error: Attribute property#android.adservices.AD_SERVICES_CONFIG@resource
value=(@xml/ga_ad_services_config) from AndroidManifest.xml:32:13-58 is also
present at AndroidManifest.xml:92:13-59 value=(@xml/gma_ad_services_config).
Suggestion: add 'tools:replace="android:resource"' to <property> element at
AndroidManifest.xml to override.
You can read more about the issue and the workaround in reported Defold issue #9453 and Google issue #327696048.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB