rev. | data |
---|---|
1 revisão | 26/07/2017 |
2 revisão | 16/02/2022 |
Prequisitos
Ter o android sdk instalado
1. Criar avd
Uma vez que que já tenha instalado o sdk tudo fica bem mais fácil.
Supondo que queremos rodar uma versão do Android 5.0 (Lollipop)
abra o terminal e vamos instalar os seguites pacotes:
platforms;android-22
system-images;android-22;default;x86_64
emulator
platform-tools
No terminal
$ sdkmanager "platforms;android-22"
[=======================================] 100% Computing updates...
$ sdkmanager "system-images;android-22;default;x86_64"
[=======================================] 100% Computing updates...
$ sdkmanager "emulator"
[=======================================] 100% Unzipping... emulator/qemu/linux-
$ sdkmanager "platform-tools"
[=======================================] 100% Unzipping... platform-tools/systr
** Caso queira ver todas as opções possiveis digite no terminal
$ sdkmanager --list --verbose
Agora vamos criar o própriamente o avd
. Ponha no terminal:
$ avdmanager create avd\
-n bruno\
-k "system-images;android-22;default;x86_64"\
--device "Nexus 5"\
--sdcard 100M
** Caso queira ver todas as opções device possiveis digite no terminal
$ avdmanager list device
2. Skins
No Android Studio existem algumas skins disponíveis.
Como esse tutorial é na raça (tudo na mão), não teriamos esses disponiveis, mas calma, para tudo na vida tem jeito.
$ cd $ANDROID_HOME
$ git clone https://github.com/brunorozendo/android-skins.git skins
Pronto agora essas skins estão de fácil acesso.
3. Excutar o AVD com o EMULATOR
emulator\
-avd bruno\
-skindir "$ANDROID_HOME/skins"\
-skin "nexus_5"\
-memory 4096\
-accel on\
-gpu on
e voilá temos um adroid rodando.
Clique no X para fechar o simulador.
Agora vamos deixa esse emulador usavel!
Unable to connect to adb daemon on port: 5037
Ao executar o comando acima o log deve ter sido algo parecido
Terminal$ emulator\ -avd bruno\ -skindir "$ANDROID_HOME/skins"\ -skin "nexus_5"\ -memory 4096\ -accel on\ -gpu on INFO | Android emulator version 31.2.8.0 (build_id 8143646) (CL:N/A) WARNING | encryption is off Fontconfig warning: "/usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf", line 6: unknown element "reset-dirs" INFO | configAndStartRenderer: setting vsync to 60 hz WARNING | cannot add library /opt/android/sdk-android-linux/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so: failed INFO | added library /opt/android/sdk-android-linux/emulator/lib64/vulkan/libvulkan.so host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] pc_memory_init: above 4g size: 40000000 INFO | Started GRPC server at 127.0.0.1:8554, security: Local INFO | Advertising in: /run/user/1000/avd/running/pid_6979.ini ERROR | Unable to connect to adb daemon on port: 5037 INFO | Your emulator is out of date, please update by launching Android Studio: - Start Android Studio - Select menu "Tools > Android > SDK Manager" - Click "SDK Tools" tab - Check "Android Emulator" checkbox - Click "OK" INFO | Shutting down gRPC endpoint
O que nos importa no momento é a seguinte linha
ERROR | Unable to connect to adb daemon on port: 5037
então para resolver isso
Terminal$ adb start-server
Ao executar novamente o simulador essa mensagem deve ter desaparecido:
Terminal$ emulator -avd bruno -skindir "$ANDROID_HOME/skins" -skin "nexus_5" -memory 4096 -accel on -gpu on INFO | Android emulator version 31.2.8.0 (build_id 8143646) (CL:N/A) WARNING | encryption is off Fontconfig warning: "/usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf", line 6: unknown element "reset-dirs" INFO | configAndStartRenderer: setting vsync to 60 hz WARNING | cannot add library /opt/android/sdk-android-linux/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so: failed INFO | added library /opt/android/sdk-android-linux/emulator/lib64/vulkan/libvulkan.so host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] pc_memory_init: above 4g size: 40000000 INFO | Started GRPC server at 127.0.0.1:8554, security: Local INFO | Advertising in: /run/user/1000/avd/running/pid_7658.ini INFO | Shutting down gRPC endpoint
Caso tenho feito alguns teste você deve ter percebido que o teclado não está fucionando vamos resolver isso.
Feche novamente o simulador.
Dentro da pasta
~/.android/avd
deve existir o emulador ( caso esteja usando a variávelANDROID_AVD_HOME
então procure dentro dela) e vamos editar o arquiviobruno.avd/config.ini
Procure pela linha
hw.keyboard=no
e substitua porhw.keyboard=yes
** Ctrl+C/Ctrl+V não é possivel com o teclado, mas há outras maneiras.
É possivel já deixar a
skin
configurada, para isso, busque pela linhaskin.path=_no_skin
e substitua, no caso ficou assimskin.path=/opt/android/sdk-android-linux/skins/nexus_5
GPU: igual a skin, busque pela linha
hw.gpu.enabled=no
e substitua porhw.gpu.enabled=true
Ram: igual a skin, busque pela linha
hw.ramSize
e substitua porhw.ramSize=4096M
Agora o novo comando para iniciar o simulador
$emulator -avd bruno -accel on