Android Debug Bridge

Neste artigo, apresenta-se um exemplo de execução remota da aplicação OlaAndroid através do Android Debug Bridge

  • Em consola, iniciar o emulador. Para isso, descer à diretoria de ferramentas do Android
    cd ” C:adt-bundle-windows-x86_64sdk ools>”
  • e depois executar o comando
    emulator -avd avd_01
  • Mudar, depois, para a diretoria platform-tools
    cd ” C:adt-bundle-windows-x86_64sdkplatform-tools>”
  • O comando seguinte instala a aplicação Ola.apk no emulador:
    adb install Ola.apk
    (é necessário que o ficheiro Ola.apk esteja na mesma diretoria, caso contrário deve fornecer-se o caminho completo para o APK)
  • O comando seguinte mostra a lista de ficheiros da diretoria raiz no cartão de memória do emulador
    adb shell ls /

Se tiver mais do que um dispositivo Android ativo, é necessário indicar qual o dispositivo a que pretende aceder. Nesse caso, o comando acima pode ser substituído por:
adb -s emulator-5554 shell ls /

  • Para listar todos os dispositivos ativos, executar o comando:
    adb devices
  • O comando seguinte cria uma diretoria no cartão de memória do emulador (no caso de ter permissões de escrita):
    adb shell mkdir /sdcard/imagens
  • O comando seguinte copia um ficheiro do disco do computador para o emulador (no caso de ter permissões de escrita):
    adb push foto23.jpg /sdcard/imagens/f1.jpg

O comando seguinte apaga o ficheiro /sdcard/imagens/f1.jpg que se encontra no cartão de memória do emulador do Android:

adb shell rm /sdcard/imagens/f1.jpg

É possível aceder remotamente, via telnet, ao emulador para executar alguns comandos de controlo do mesmo. O primeiro emulador está disponível no porto 5554. Se houver um segundo emulador ativo, este é afeto ao porto 5555, e assim sucessivamente. Os comandos que é possível executar com acesso via telnet são os seguintes:

help|h|? print a list of commands
event simulate hardware events
geo Geo-location commands
gsm GSM related commands
kill kill the emulator instance
network manage network settings
power power related commands
quit|exit quit control session
redir manage port redirections
sms SMS related commands
avd manager virtual device state
window manage emulator window

Seguem-se alguns exemplos de utilização do acesso via telnet.

Acesso remoto ao emulador via telnet

  • Em consola, e com o emulador ativo, executar o seguinte comando:
    telnet localhost 5554
  • Depois, na sessão de telnet enviar os comandos que se seguem
    • Enviar dados de localização (GPS) para o emulador, onde a longitude é o primeiro parâmetro e a latitude o segundo:
      geo fix -9.145174 38.733660
    • Para conhecer os parâmetros do comando network
      help network
    • Para saber o estado da rede
      network status
    • Para saber o estado da bateria
      power display
    • Abandonar a sessão de telnet
      exit

Compilar e testar uma aplicação

Neste artigo vai compilar-se e testar-se a aplicação OlaAndroid criada anteriormente.

Compilar a aplicação

  • Em Navigator, premir o botão direito do rato sobre o projeto OlaAndroid e selecionar Android Tools – Export Signed Application Package, para criar uma aplicação assinada
  • Premir Next. Em Location selecionar a keystore criada anteriormente LWEB.ks que está na diretoria C:\Users\root\workspace (em Windows). Inserir a password e premir Next
  • Em Alias, selecionar web e inserir a password. Premir Next
  • Em Destination APK file, selecionar a diretoria deploy criada anteriormente: C:\Users\root\workspace\OlaAndroid\deploy
    onde “root” é o nome do utilizador
  • Premir Finish. A aplicação fica em: C:\Users\root\workspace\OlaAndroid\deploy

A aplicação assinada pode ser instalada num telemóvel ou tablet com o sistema operativo Android. Para isso, deve ser copiada para o SD Card do dispositivo e depois instalada a partir desse local. Também pode ser instalada no emulador segundo o processo abaixo indicado.

Instalar a aplicação assinada no Emulador (exemplo para Windows)

  • No explorador do Windows, descer até à diretoria do Android:
    C:adt-bundle-windows-x86_64
  • Executar o programa SDK Manager.exe
  • Premir Tools – Manage AVDs…
  • Selecionar o AVD pretendido e premir Start e depois Launch
  • Por fim, numa janela de consola descer à diretoria de ferramentas do Android
    cd adt-bundle-windows-x86_64sdkplatform-tools
  • e executar o comando
    adb -s emulator-5554 install –r
    “C:\Users\root\workspace\OlaAndroid\deploy\OlaAndroid.apk”
  • Aparece um ícone da aplicação na lista de aplicações do emulador do Android. Premir para executar.

Alternativamente também pode lançar uma aplicação não assinada (assinada com a chave de depuração) no emulador. Os passos necessários são explicados abaixo.

Instalar uma aplicação não assinada (assinada com a chave de depuração) no Emulador

  • No Eclipse, em Navigator, premir o botão direito do rato sobre o projeto OlaAndroid e selecionar Run As – Android Application
  • Selecionar o emulador pretendido e premir OK

De notar que não é possível instalar uma versão assinada num emulador que já tem uma versão não assinada da mesma aplicação, ou vice-versa. Nesse caso deve, previamente desistalar-se a versão existente. Isso pode ser feito de uma das duas formas seguintes:

  • No Windows, em consola descer à diretoria de ferramentas do Android
    cd adt-bundle-windows-x86_64sdkplatform-tools
  • e executar o comando
    adb -s emulator-5554 uninstall com.lingweb.ola

ou, alternativamente, no emulador, premir o ícone Settings, selecionar Applications e Manage applications. Depois selecionar a aplicação e premir Uninstall

A aplicação “Android Debug Bridge” (ADB) pode ser utilizada para comunicar com um emulador ou com um dispositivo móvel que esteja ligado através de um cabo USB ao computador. O ADB pode ser utilizado para executar comandos remotamente tanto num emulador como num dispositivo móvel. Seguem-se alguns exemplos de comandos executados em consola, em Windows, sobre um emulador de Android.

Aplicação “Olá Mundo”

Criar a aplicação

  • No menu do Eclipse, selecionar Window – Show View – Navigator
  • Em Navigator (janela do lado esquerdo), premir o botão direito do rato e escolher New – Project. Depois selecionar Android e Android Application Project. Premir Next. Surge uma janela de diálogo.
    • Em Application Name, colocar “OlaAndroid”
    • Em Project Name, colocar “OlaAndroid”
    • Em package name, colocar “com.lingweb.ola”
    • Em Minimum Required SDK selecionar Android 2.2
    • Em Target SDK selecionar Android 4.2 (ou versão mais recente)
    • Premir Next três vezes
    • Em Create Activity, selecionar BlankActivity. Premir Next
    • Em Activity Name, colocar “OlaAndroid”
      (Nota: Activity é a classe de base das aplicações gráficas do Android)
    • Premir Finish
  • Em Navigator, premir o botão direito do rato sobre o projeto OlaAndroid e criar uma diretoria com o nome “deploy”
  • Em Navigator, dentro das diretorias do projeto, abrir o ficheiro /src/com/lingweb/ola/OlaAndroid.java e colocar o código seguinte dentro do método onCreate:
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText(“Olá Mundo”);
setContentView(tv);

 

Criar um certificado para assinar aplicações Android

Para usar o Google Maps ou para publicar uma aplicação na loja de aplicações do Android, é necessário proceder à assinatura da aplicação. O processo de criação da chave para assinar uma aplicação e da assinatura de aplicações é explicado de seguida.

Criar uma keystore

  • Em consola, descer à diretoria dos projetos do Eclipse
  • Em Windows, para o utilizador root:
    cd “C:\Users\root\workspace”
  • Depois executar a linha seguinte (Windows):
    “C:\Program Files\Java\jdk1.7.0_11\bin\keytool” -genkey -v -keyalg RSA -validity 10000 -alias WEB -keystore LWEB.ks
    considerando que o JDK da Sun está instalado na diretoria
    C:\Program Files\Java\jdk1.7.0_11
  • Responder interativamente ao programa, dando origem a uma saída como a que se  segue:
Enter keystore password: passe
Re-enter new password: passe
What is your first and last name?
[Unknown]: WEB, SA
What is the name of your organizational unit?
[Unknown]: Java Dev
What is the name of your organization?
[Unknown]: Pro Bono
What is the name of your City or Locality?
[Unknown]: Lisbon
What is the name of your State or Province?
[Unknown]: Lisbon VT
What is the two-letter country code for this unit?
[Unknown]: PT
Is CN=”WEB, SA”, OU=Java Dev, O=Pro Bono, L=Lisbon, ST=Lisbon VT, C=PT correct?
[no]: yesGenerating 2.048 bit RSA key pair and self-signed certificate (SHA256withRSA) with
a validity of 10.000 days
for: CN=”WEB, SA”, OU=Java Dev, O=Pro Bono, L=Lisbon, ST=Lisbon VT, C=PTEnter key password for
(RETURN if same as keystore password):
[Storing LWEB.ks]

Verificar e obter a assinatura SHA1 do certificado
(necessário para obter a chave do Google API)

  • Na mesma diretoria (em Windows) “C:\Users\root\workspace” executar
    “C:\Program Files\Java\jdk1.7.0_11\bin\keytool” -v -list -keystore LWEB.ks
  • Responder interativamente ao programa, dando origem a um resultado como o que se segue:
Enter keystore password: passeKeystore type: JKS
Keystore provider: SUNYour keystore contains 1 entry

Alias name: web

Certificate fingerprints:
SHA1: F1:3E:7F:47:07:6A:34:B1:19:…:A5:06:12:E2:B9

No sítio do Google, pedir uma chave para desenvolver aplicações com o Google Maps

  • No browser, colocar o endereço seguinte:
    https://code.google.com/apis/console/
  • Em Services, ative a opção “Google Maps Android API v2”
  • Em API Access, premir Create New Android key…
  • Inserir a chave SHA1, seguida de “;” e do nome do pacote da aplicação. Deve criar-se uma chave por cada projeto
  • Guardar a chave gerada pelo Google, para a utilizar na criação da aplicação.

Guia para o desenvolvimento Android – Instalação

Lista de pacotes a instalar

Instalar o ADT Plugin

  • No Eclipse, escolher Help – Install New Software…
  • Em Work with, premir o botão Add. Surge uma caixa de diálogo
    • Em Name, escrever Android
    • Em Location, colocar https://dl-ssl.google.com/android/eclipse/
    • Premir OK
  • Selecionar “Developer Tools na caixa. Todas as opções, nomeadamente “Android DDMS” e “Android Development Tools”, devem estar selecionadas. Premir Next.
  • Na janela de Install Details, premir Next outra vez.
  • Ler a licença, aceitar e premir Finish.

Configurar o ADT Plugin

  • No Eclipse, escolher Window – Preferences
  • Selecionar Android no painel esquerdo
  • Em SDK Location colocar a diretoria do SDK do Android. Em Windows, num sistema a 64 bits, deverá ser o seguinte: C:\adt-bundle-windows-x86_64\sdk
  • Premir Apply
  • Premir OK

Instalar os componentes para o SDK do Android

  • Verifique se tem a diretoria de ficheiros binários do Java colocada na variável PATH do sistema operativo. Em Windows, nas propriedades do computador, selecione Advanced System Settings – Environment Variables e em System variables, selecione PATH e coloque, como primeira variável, o caminho para os binários do Java: “C:\Program Files\Java\jdk1.7.0_11\bin;”
  • Em Windows, no explorador do Windows, descer até à diretoria do Android:
  • C:\adt-bundle-windows-x86_64\
  • Executar o programa SDK Manager.exe
  • Em Availables Packages, selecionar os pacotes pretendidos e premir Install Selected. É aconselhável selecionar pelo menos um de cada versão maior do SDK Platform e do Google APIs: por exemplo o 2.2, o 3.0, o 3.2 e o 4.2. Se selecionar todos, o processo de instalação pode ser muito moroso. Instalar também o Google Play services que está na pasta Extras
  • Criar um telemóvel virtual (Android Virtual Device, AVD) para usar em debug. No Android SDK Manager, premir :
    • Tools – Manage AVDs…
    • Selecionar um AVD predefinido em Device Definitions. Alternativamente, pode criar um AVD novo. Para isso:
      • Em Android Virtual Devices:
      • Premir o botão “New”
      • Dar um nome ao telemóvel virtual, p. ex.: avd_01
      • Configurar as opções pretendidas
      • Premir “OK”