SlideShare uma empresa Scribd logo
Introdução ao ecossistema
Android
Rodrigo Rocha <rodrigorgs@ufba.br>
Visão geral
Usuários de smartphones (2023)
https://www.bankmycell.com/blog/how-many-phones-are-in-the-world
Número de usuários de sistemas mobile
Android é o sistema operacional
mobile com mais usuários
Os dados ao lado são de 2023
https://www.bankmycell.com/blog/android-vs-apple-market-share/
Dispositivos
Android está disponível em smartphones e tablets, mas também em
● TVs
● câmeras
● carros
● smart watches
● …
Versões
Nem todos os usuários usam a última
versão do Android.
Atualmente, para alcançar 90% dos
usuários, o app deve ser compatível
com versões lançadas até 5 anos atrás
Fonte: Android Studio (Create New
Project)
Lojas
Google Play é a principal loja de
aplicativos para Android
Existem outras:
● Amazon Appstore
● Samsung Galaxy Store
● …
Arquitetura do
Android
Sistema operacional
● O sistema Android é construído sobre o
kernel do Linux
● A camada de abstração de hardware (HAL)
permite acessar recursos de hardware
sem se preocupar com as diferenças de
um fabricante para outro
● Apps (ou partes de apps) escritos em C/C+
+ têm acesso a algumas bibliotecas
(Android NDK, ou kit de desenvolvimento
nativo)
https://developer.android.com/guide/platform
https://source.android.com/docs/core/architecture
● Existe uma extensa API para Java e Kotlin
para criação de apps
● Apps em Java/Kotlin são executados pelo
Android Runtime (ART), similar à máquina
virtual Java (JVM).
○ O Android Runtime (ART) substitui a antiga
Dalvik VM
Sistema operacional
https://developer.android.com/guide/platform
https://source.android.com/docs/core/architecture
Empacotamento
● O código Java (.java) ou
Kotlin (.kt) é compilado
para bytecode (.dex),
que é executado pelo
Android Runtime (ART)
● Os arquivos .dex, bem
como imagens, arquivos
de configuração etc.,
são reunidos em um um
Android Package Kit
(.apk)
● Apps podem ser
https://stackoverflow.com/questions/12442979/android-underst
anding-the-apk-installation-process/12443744#12443744
Assinatura do APK
● Todo aplicativo é assinado com um certificado digital
● A assinatura impede que outras pessoas publiquem apps em seu nome
Isolamento (sandbox)
● Cada aplicativo executa em um ambiente isolado (sandbox)
● Um app não pode acessar memória de outro
● Um app não pode acessar arquivos de outro
● Apps podem compartilhar dados de forma disciplinada, através de
content providers
● Um app não pode acessar recursos do sistema (ex.: câmera, internet) a
não ser que tenha permissão para isso
https://source.android.com/security/app-sandbox
Tipos de componentes de um app
● Activities: telas
● Serviços: código que roda em segundo plano
● Broadcast receivers: código que roda em resposta a algum evento do
sistema, mesmo que o app não esteja em execução. Ex.: em um horário
específico, enviar uma notificação ao usuário. Ver lista de eventos.
● Provedor de conteúdo (content provider): fornece dados para outros
aplicativos. Ex.: o app Contatos possui um provedor de conteúdo, que
permite que outros aplicativos leiam e gravem contatos.
https://developer.android.com/guide/components/fundamentals
AndroidManifest.xml
Todo app Android possui um arquivo AndroidManifest.xml, que define:
● ícone, título
● versão mínima do Android
● componentes do app (activities, serviços etc.)
● permissões e recursos de hardware necessários (ex.: acesso a câmera,
internet, contatos…)
https://developer.android.com/guide/components/fundamentals
Ambiente de
desenvolvimento
● IDE oficial para desenvolvimento de apps Android
● Baseada no IntelliJ IDEA (da empresa JetBrains)
● https://developer.android.com/studio
Android Studio
https://developer.android.com/studio
A instalação do Android Studio inclui várias coisas importantes:
● Android Emulator
○ Intel x86 Emulator Accelerator (HAXM installer)
● Google Play Services (APIs de mapas, Google Play etc.)
● Android SDK build tools (ex.: dx, para convertex .class para .dex)
● Android SDK Platform-tools (ex.: adb, que gerencia dispositivos)
● Android SDK Tools (ex.: ddms, para debugging)
Android Studio
Acesse Tools -> SDK Manager para verificar o que foi instalado
Diretório de instalação:
● Windows: C:UsersUSUARIOAppDataLocalAndroidSdk
● Linux: /home/USUARIO/Android/sdk
● macOS: /Users/USUARIO/Library/Android/sdk
Android SDK
Android Virtual Devices (AVDs)
São dispositivos emulados pelo seu
computador através do Android Emulator.
AVDs são configurações do emulador
● Quanta memória?
● Qual o tamanho da tela?
● Qual o processador? (Intel x86 ou ARM?)
● Qual a versão do Android? (imagem)
Tools > AVD Manager
Genymotion
Genymotion é um emulador alternativo, geralmente mais rápido
Uso de dispositivo real
O processo de emulação é muito lento em computadores sem suporte a
aceleração via hardware
Sugestão: usar um dispositivo real, conectado à porta USB do computador
Se quiser ver a tela do celular no computador, sugere-se usar o software
Vysor
(alternativa: Wormhole)
● No seu celular, abra o app Configurações e selecione Sobre o telefone (ou
algo similar). Em alguns casos está dentro de Sistema.
● Role até o Build number e toque nele 7 vezes até aparecer a mensagem
de que o modo desenvolvedor foi ativado.
● Volte e acesse a nova opção Opções de Desenvolvedor. Ative depuração
USB.
● No computador, reinicie o adb (dependendo de sua configuração, você
pode precisar rodar os comandos de dentro de
$ANDROID_SDK/platform-tools)
○ adb kill-server
○ adb start-server
○ adb devices # para listar os dispositivos
● Em alguns casos você precisará instalar um driver USB
Uso de dispositivo real

Mais conteúdo relacionado

PDF
Desenvolvendo para Android
PPTX
Introdução ao Android
PDF
Desenvolvimento android
PPTX
Android Developing
PDF
Android - Conceito e Arquitetura
PPTX
Introdução à plataforma Android
PPTX
Introdução ao android
PDF
Introdução à plataforma android.
Desenvolvendo para Android
Introdução ao Android
Desenvolvimento android
Android Developing
Android - Conceito e Arquitetura
Introdução à plataforma Android
Introdução ao android
Introdução à plataforma android.

Semelhante a Introdução ao desenvolvimento mobile Ecossistema Android (20)

PDF
Empreendedori$mo com Android
PPTX
Programação Android - Básico
PPTX
Aula01 mobilidade android
PDF
Introdução à programação em Android Senac 15/05/2012
PDF
Curso de Android - aula 2
PPT
Android-Juliana-slides.ppt
PPT
Show Day Droid x
PDF
Desenvolvendo Aplicativos com Android
PPTX
Apresentação android
PDF
Introdução ao Android
PPTX
Palestra sobre Android - Faculdade Hélio Rocha
PDF
Android - Notas de aula
PPTX
Aula01 - introdução, Activity
PPTX
PPTX
Sistema Operacional Android
PPTX
PDF
Treinamento Android Nooclix
PPT
Desenvolvendo Soluções com Android
PPT
Android overview
PDF
Introdução a Plataforma Android
Empreendedori$mo com Android
Programação Android - Básico
Aula01 mobilidade android
Introdução à programação em Android Senac 15/05/2012
Curso de Android - aula 2
Android-Juliana-slides.ppt
Show Day Droid x
Desenvolvendo Aplicativos com Android
Apresentação android
Introdução ao Android
Palestra sobre Android - Faculdade Hélio Rocha
Android - Notas de aula
Aula01 - introdução, Activity
Sistema Operacional Android
Treinamento Android Nooclix
Desenvolvendo Soluções com Android
Android overview
Introdução a Plataforma Android
Anúncio

Último (7)

PDF
apresentacao introducao computacao ead.pdf
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PPTX
Curso de Windows 11 resumido na prática.pptx
PPTX
Mapeamento de Objeto para Tabela Relacional
PDF
Paper_A028_BR_Victor_Enrique_Cavero_Sori (1).pdf
PDF
Evolução em código: algoritmos genéticos com PHP
PDF
Dos requisitos ao código: como criar código rastreável em PHP
apresentacao introducao computacao ead.pdf
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Curso de Windows 11 resumido na prática.pptx
Mapeamento de Objeto para Tabela Relacional
Paper_A028_BR_Victor_Enrique_Cavero_Sori (1).pdf
Evolução em código: algoritmos genéticos com PHP
Dos requisitos ao código: como criar código rastreável em PHP
Anúncio

Introdução ao desenvolvimento mobile Ecossistema Android

  • 1. Introdução ao ecossistema Android Rodrigo Rocha <rodrigorgs@ufba.br>
  • 3. Usuários de smartphones (2023) https://www.bankmycell.com/blog/how-many-phones-are-in-the-world
  • 4. Número de usuários de sistemas mobile Android é o sistema operacional mobile com mais usuários Os dados ao lado são de 2023 https://www.bankmycell.com/blog/android-vs-apple-market-share/
  • 5. Dispositivos Android está disponível em smartphones e tablets, mas também em ● TVs ● câmeras ● carros ● smart watches ● …
  • 6. Versões Nem todos os usuários usam a última versão do Android. Atualmente, para alcançar 90% dos usuários, o app deve ser compatível com versões lançadas até 5 anos atrás Fonte: Android Studio (Create New Project)
  • 7. Lojas Google Play é a principal loja de aplicativos para Android Existem outras: ● Amazon Appstore ● Samsung Galaxy Store ● …
  • 9. Sistema operacional ● O sistema Android é construído sobre o kernel do Linux ● A camada de abstração de hardware (HAL) permite acessar recursos de hardware sem se preocupar com as diferenças de um fabricante para outro ● Apps (ou partes de apps) escritos em C/C+ + têm acesso a algumas bibliotecas (Android NDK, ou kit de desenvolvimento nativo) https://developer.android.com/guide/platform https://source.android.com/docs/core/architecture
  • 10. ● Existe uma extensa API para Java e Kotlin para criação de apps ● Apps em Java/Kotlin são executados pelo Android Runtime (ART), similar à máquina virtual Java (JVM). ○ O Android Runtime (ART) substitui a antiga Dalvik VM Sistema operacional https://developer.android.com/guide/platform https://source.android.com/docs/core/architecture
  • 11. Empacotamento ● O código Java (.java) ou Kotlin (.kt) é compilado para bytecode (.dex), que é executado pelo Android Runtime (ART) ● Os arquivos .dex, bem como imagens, arquivos de configuração etc., são reunidos em um um Android Package Kit (.apk) ● Apps podem ser https://stackoverflow.com/questions/12442979/android-underst anding-the-apk-installation-process/12443744#12443744
  • 12. Assinatura do APK ● Todo aplicativo é assinado com um certificado digital ● A assinatura impede que outras pessoas publiquem apps em seu nome
  • 13. Isolamento (sandbox) ● Cada aplicativo executa em um ambiente isolado (sandbox) ● Um app não pode acessar memória de outro ● Um app não pode acessar arquivos de outro ● Apps podem compartilhar dados de forma disciplinada, através de content providers ● Um app não pode acessar recursos do sistema (ex.: câmera, internet) a não ser que tenha permissão para isso https://source.android.com/security/app-sandbox
  • 14. Tipos de componentes de um app ● Activities: telas ● Serviços: código que roda em segundo plano ● Broadcast receivers: código que roda em resposta a algum evento do sistema, mesmo que o app não esteja em execução. Ex.: em um horário específico, enviar uma notificação ao usuário. Ver lista de eventos. ● Provedor de conteúdo (content provider): fornece dados para outros aplicativos. Ex.: o app Contatos possui um provedor de conteúdo, que permite que outros aplicativos leiam e gravem contatos. https://developer.android.com/guide/components/fundamentals
  • 15. AndroidManifest.xml Todo app Android possui um arquivo AndroidManifest.xml, que define: ● ícone, título ● versão mínima do Android ● componentes do app (activities, serviços etc.) ● permissões e recursos de hardware necessários (ex.: acesso a câmera, internet, contatos…) https://developer.android.com/guide/components/fundamentals
  • 17. ● IDE oficial para desenvolvimento de apps Android ● Baseada no IntelliJ IDEA (da empresa JetBrains) ● https://developer.android.com/studio Android Studio https://developer.android.com/studio
  • 18. A instalação do Android Studio inclui várias coisas importantes: ● Android Emulator ○ Intel x86 Emulator Accelerator (HAXM installer) ● Google Play Services (APIs de mapas, Google Play etc.) ● Android SDK build tools (ex.: dx, para convertex .class para .dex) ● Android SDK Platform-tools (ex.: adb, que gerencia dispositivos) ● Android SDK Tools (ex.: ddms, para debugging) Android Studio
  • 19. Acesse Tools -> SDK Manager para verificar o que foi instalado Diretório de instalação: ● Windows: C:UsersUSUARIOAppDataLocalAndroidSdk ● Linux: /home/USUARIO/Android/sdk ● macOS: /Users/USUARIO/Library/Android/sdk Android SDK
  • 20. Android Virtual Devices (AVDs) São dispositivos emulados pelo seu computador através do Android Emulator. AVDs são configurações do emulador ● Quanta memória? ● Qual o tamanho da tela? ● Qual o processador? (Intel x86 ou ARM?) ● Qual a versão do Android? (imagem) Tools > AVD Manager
  • 21. Genymotion Genymotion é um emulador alternativo, geralmente mais rápido
  • 22. Uso de dispositivo real O processo de emulação é muito lento em computadores sem suporte a aceleração via hardware Sugestão: usar um dispositivo real, conectado à porta USB do computador Se quiser ver a tela do celular no computador, sugere-se usar o software Vysor (alternativa: Wormhole)
  • 23. ● No seu celular, abra o app Configurações e selecione Sobre o telefone (ou algo similar). Em alguns casos está dentro de Sistema. ● Role até o Build number e toque nele 7 vezes até aparecer a mensagem de que o modo desenvolvedor foi ativado. ● Volte e acesse a nova opção Opções de Desenvolvedor. Ative depuração USB. ● No computador, reinicie o adb (dependendo de sua configuração, você pode precisar rodar os comandos de dentro de $ANDROID_SDK/platform-tools) ○ adb kill-server ○ adb start-server ○ adb devices # para listar os dispositivos ● Em alguns casos você precisará instalar um driver USB Uso de dispositivo real