Hello Android World
Autor: Rodolfo | Publicado: 2011-08-09T20:44:00-03:00

Depois de anos, reativando o blog com um post sobre o Android...

Comprei um Nexus S, da Samsung e pretendo criar algumas apps pro Android. O emulador do Android é muito (muito mesmo) lento. Então, a ideia é usar um dispositivo "real" pra testes e debug.

Instalando o SDK
Primeiro, as dependências: precisa instalar o Java (estou usando o OpenJDK 1.6.0_22 e o ant). Use o yum ou o apt, funciona! ;)
&nbsp;
Depois, é necessário instalar o SDK do Android, que está disponível em http://developer.android.com/sdk/. No Linux, primeiro precisa baixar e descompactar em algum lugar.

Eu baixei e descompactei em /home/rodolfo/source/android/android-sdk-linux_x86.

Depois, é necessário instalar a versão da API que se quer usar. Para isso, executamos "android" que está na pasta "tools".





Seguindo a interface, acesse "Available Packages" e&nbsp; marque a versão do Android no celular. Atualmente, a última para celulares (a 3.* é para trablets) é o "SDK Plataform Android 2.3.3, API 10, revision 1".

Atenção para o número 10 da API, será útil no futuro. Espere o download e era isso. :)

Tipos de Aplicações no Android

Activities =&gt; interface gráfica onde o usuário pode interagir
Services =&gt; parte/software que fica executando em segundo plano
Broadcast Receivers =&gt; aplicações que respondem a determinados eventos, como receber um SMS, por exemplo.&nbsp;

No nosso "HelloWorld", vamos criar uma "Activity", com um texto "HelloWorld" na tela. Simples assim.

Ajustando o ambiente
Como não pretendo usar o eclipse, uma dica é configurar o shell para usar diretamente os comandos do SDK.


export PATH="$PATH:/home/rodolfo/source/android/android-sdk-linux_x86/tools:/home/rodolfo/source/android/android-sdk-linux_x86/platform-tools"
Lembre-se de ajustar o path para onde você descompactou o SDK. ;)

Criando o projeto
No shell:

android create project -t 10 -k meu.HelloWorld -a HelloWorld -n myHelloWorld --path ./myHelloWorld
Os parâmetros:

-t , onde o  é o nro que está na API, quando instalamos
-k  indica o nome do projeto, que sempre precisa ter 2 palavras, separadas por "." (deve ser culpa do Java).
-n  indica o nome da atividade. Quando vc instalar a app no celular, é esse o nome que vai aparecer no menu do android.
--path  é o local onde os arquivos do projeto serão criados

O projeto, obviamente, não faz nada. Vamos alterar só pra escrever o HelloWorld na tela.

O primeiro código
No "path" do projeto existe uma pasta "src" que - obviamente - contém os fontes. Lá dentro, edite o arquivo HelloWorld.java:



package meu.HelloWorld;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class HelloWorld extends Activity{&nbsp;&nbsp;&nbsp; /** Called when the activity is first created. */&nbsp;&nbsp;&nbsp; @Override&nbsp;&nbsp;&nbsp; public void onCreate(Bundle savedInstanceState)&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.onCreate(savedInstanceState);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TextView tv = new TextView(this);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tv.setText("Hello, Android!");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setContentView(tv);&nbsp;&nbsp;&nbsp; }}
Sem muitas explicações, vamos logo rodar isso...

Compilando...
Voltando ao path do projeto, execute:

ant debug
Sim, por enquanto, debug ativo. E só.
O ant já cria, no diretório "bin" do projeto, os arquivos .apk para serem instalados.

... configurar o celular...
É preciso habilitar o celular para rodar aplicações de fora do Android Market. Isso fica nos ajustes (settings) do celular.
E mais algumas configurações que podem ser encontradas em http://developer.android.com/guide/developing/device.html
&nbsp;
... e rodar!
No projeto, é só executar

ant install
A aplicação será transferida para o celular. A partir de agora, só precisa clicar nela pra tudo sair funcionando.. 

Melhor que usar o eclipse, né!? ;)


Fontes:
http://developer.android.com/guide/developing/device.html
http://blogs.nitobi.com/joe/2010/03/26/android-without-eclips/