Desenvolvimento de aplicações nativas para a Plataforma Android

18
Desenvolvimento de aplicações nativas para a Plataforma Android João Silva / M.O.S.S. / ISCTE / Lisboa 2011 1

description

Desenvolvimento de aplicações nativas para a Plataforma Android

Transcript of Desenvolvimento de aplicações nativas para a Plataforma Android

Page 1: Desenvolvimento de aplicações nativas para a Plataforma Android

Desenvolvimento de

aplicações nativas para a

Plataforma Android

João Silva / M.O.S.S. / ISCTE / Lisboa 2011

1

Page 2: Desenvolvimento de aplicações nativas para a Plataforma Android

Índice

1. Introdução 2. Plataforma Android 3. Instalação 4. Primeiro projecto 5. Interfaces gráficas 6. Correr uma aplicação 7. Debug 8. Marketing 9. Distribuição 10. Partilhar código fonte

2

Page 3: Desenvolvimento de aplicações nativas para a Plataforma Android

1. IntroduçãoNos últimos anos tenho vindo a evitar a utilização da linguagem Java, procurando

na maioria dos casos, arranjar uma desculpa razoavél para a substituir por outra

tecnologia.

O Android veio mudar esta situação!

Com seis anos dedicados a tecnologias “web”, decidi recentemente desviar um pouco

a minha rota, na direção das aplicações “Mobile”. O meu objectivo é especializar-me no

desenvolvimento de aplicações nativas para plataformas móveis.

Quando olhei pela primeira vez para o programa deste mestrado (M.O.S.S.) e

verifiquei que dele constava uma cadeira de Java pensei: “é a minha oportunidade

de aprender Java e ir em frente com o Android”. Assim foi, as aulas começaram, a

matéria foi aparecendo, o objectivo/projecto final foi traçado e em casa os trabalhos

foram iniciados. No final, a descoberta de uma linguagem fantástica e a minha primeira

aplicação em Java para Android.

Nos próximos capítulos tento resumir aquilo que aprendi no decorrer deste

desenvolvimento.

2. Plataforma AndroidFoi em 2005 que a Google se interessou por uma empresa chamada Android,

Inc, uma startup Californiana que tinha como principal core o desenvolvimento de

aplicações/software para dispositivos moveis. Rapidamente o interesse se materializou

em aquisição. A Google pretendia desenvolver um aparelho que oferecesse serviços

baseados em localização, sendo que para tal precisava de um sistema, procurando por

3

Page 4: Desenvolvimento de aplicações nativas para a Plataforma Android

isso importar know - how e tecnologia para o mesmo.

Dois anos e meio depois, a 5 de Novembro de 2007, a Google anuncia o seu

novo sistema operativo para dispositivos móveis baseado em Linux. Foi também

referenciado que seria Open Source.

No mesmo ano e mês foi formada a Open Handset Alliance, que incluía

empresas tão diversas como a Google, HTC, Motorola, Intel, Qualcomm, Sprint Nextel,

T-Mobile, e NVIDIA. Era pretendido com a aliança o desenvolvimento de padrões

abertos para dispositivos móveis. Em 2008 o Android passa a ser disponibilizado

à comunidade como full Open Source. O primeiro dispositivo data de Setembro de

2008 e chamava-se de G1 tendo sido lançado pela T-Mobile. O Android é baseado na

licença Apache, que é uma licença BSD (sem necessidade de após modificação ter de

a redistribuir). Histórico de versões:

● Android 1.1 (Fevereiro de 2009) - Kernel 2.6.25

● Android 1.5 "Cupcake"(Maio de 2009) - Kernel 2.6.27

● Android 1.6 "Donut (Setembro de 2009) - Kernel 2.6.29

● Android 2.0/2.1 "Eclair" (OUT-2009) Kernel 2.6.29

● Android SDK 2.0.1(Janeiro de 2010)

● Android 2.2 "Froyo"(20 de Maio de 2010) Kernel 2.6.32

● Android 2.3 “Gingerbread” 2.6.33 ou 34

● Android 3.0 (Honeycomb)

João Silva e Dinis Monteiro in “Android Vs Meego - FSOCA, M.O.S.S. 2010/11”

As aplicações para Android são escritas em Java. O código Java compilado,

juntamente com todos os dados e ficheiros necessários para a aplicação são

fornecidos pela ferramenta AAPT num pacote de Android, um ficheiro com a extensão

APK. É este o ficheiro que será utilizado na distribuição da aplicação e finalmente na

sua instalação em dispositivos de consumidor final.

Ver mais em: http://developer.android.com/guide/topics/fundamentals.htm

4

Page 5: Desenvolvimento de aplicações nativas para a Plataforma Android

3. InstalaçãoO JDK, o SDK do Android, o Eclipse e a configuração do plugin ADT, compõem o

ambiente de desenvolvimento necessário à criação de aplicações.

1. Instalar o Java SE Development Kit (http://www.oracle.com/technetwork/java/

javase/downloads/index.html)

2. Instalar o Eclipse (http://www.eclipse.org/downloads/)

3. Instalar o Android SDK (http://developer.android.com/sdk/index.html)

4. Instalar o ADT Plugin (http://developer.android.com/sdk/eclipse-adt.htmll)

Ver mais em: http://developer.android.com/sdk/eclipse-adt.html#installing

4. Primeiro projectoPara criar a primeira aplicação para Android existe um “Projecto de teste” que pode ser

iniciado da seguinte forma: Eclipse >> File > New > Project > Android > Android Test

Project

5

Page 6: Desenvolvimento de aplicações nativas para a Plataforma Android

Depois de selecionar “Android Test Project”, configurar o projecto de modo equivalente

ao seguinte:

6

Page 7: Desenvolvimento de aplicações nativas para a Plataforma Android

7

Page 8: Desenvolvimento de aplicações nativas para a Plataforma Android

Depois de finalizar(“Finish”) a criação do projecto, ficamos com a seguinte estrutura de

ficheiros:

Ao correr a aplicação teremos o seguinte resultado:

8

Page 9: Desenvolvimento de aplicações nativas para a Plataforma Android

5. Interfaces gráficasNa plataforma Android as interfaces com o utilizador, são definidas em XML, podendo

também ser criadas em “runtime” através da programação (JAVA).

Uma ferramenta importante para a criação de interfaces gráficas, é a vista em “Layout”

que faz parte do plugin ADT, é a (ver capítulo 3. Instalação).

Como construir uma primeira interface?

9

Page 10: Desenvolvimento de aplicações nativas para a Plataforma Android

1. Abrir o ficheiro “main.xml”(ponto 1)

2. Selecionar a vista de “Layout” (ponto 2)

3. Arrastando elementos de UI (ponto 3) para o “canvas” (ponto 4)

4. Definir as propriedades dos elementos no separador propriedades (ponto 5)

10

Page 11: Desenvolvimento de aplicações nativas para a Plataforma Android

6. Correr uma aplicação

Podemos correr uma aplicação de duas formas, através do Simulador ou utilizando um

dispositivo real.

Para inciar a aplicação: Run > Run As > Android Application

Sempre que o simulador é iniciado, é feito um “startup” do sistema operativo(Android).

Este é um processo algo lento por isso, o simulador não deverá ser encerrado, dessa

forma apenas será lançada uma nova instância da aplicação por cada “Run”.

A forma mais rápida de “correr” uma aplicação é utilizando um dispositivo real, no meu

11

Page 12: Desenvolvimento de aplicações nativas para a Plataforma Android

caso, o HTC Legend, com o Android 2.2 "Froyo".

7. Debug

Um sistema de “logs” permite ao programador fazer o debug da aplicação. Na API do

Android existe uma class específica para fazer “log”: Classe Log (android.util.Log).

Estão disponíveis as funções Log.v(), Log.d(), Log.i(), Log.w(), r Log.e(), que diferem no

nível de “log”:

12

Page 13: Desenvolvimento de aplicações nativas para a Plataforma Android

● DEBUG – logs impressos pela função Log.d()● ERROR – logs impressos pela função Log.e()● INFO – logs impressos pela função Log.i()● VERBOSE – logs impressos pela função Log.v()● WARN – logs impressos pela função Log.w()

Todas as anteriores funções recebem como parâmetros duas strings:

TAG - Todas as aplicações imprimem o “log” no mesmo “stream”, definindo

uma tag podemos facilmente encontrar/filtrar a informação de “log” da nossa

aplicação.

É uma boa prática definir a TAG como uma string constante:private static final String TAG = "MOSS";

MSG - O segundo parâmetro é a mensagem que queremos imprimir.

Para imprimir um log de DEBUG basta usar a linha abaixo:Log.d(TAG, "O M.O.S.S. este aqui!");

Análize de “logs” no Logcat

Para abrir o separador do “Logcat”: Window > Show View > Others > Android -> LogCat

13

Page 14: Desenvolvimento de aplicações nativas para a Plataforma Android

Ponto 1 Seleccionar o nível de log pretendido

Ponto 2.1 Criar Filtro por TAG ou filtragem livre (ex: MOSS)

Ponto 2.2 Criar Filtro por TAG ou filtragem livre (ex: MOSS)

Ponto 3 Listagem dos logs resultantes do filtro efectuado

Ponto 4 Filtragem livre não permanente

Atenção!A existência de um filtro que não retorna quaisquer resultados, cria a ilusão de

funcionamento incorrecto do “LogCat”.

A elevada utilização de logs, poderá influenciar a performance da aplicação,

especialmente quando colocados dentro de ciclos.

14

Page 15: Desenvolvimento de aplicações nativas para a Plataforma Android

8. Marketing

Fortemente implementado no mercado de consumo, o “marketing”, é muitas vezes

desvalorizado pela indústria do software. Até à data, o número de aplicações para

disponíveis atingiu o valor de meio milhão. Obnubiladas, por esta imensidão de

aplicativos, as empresas de software, principalmente as mais pequenas, sentem

enorme dificuldade em concentrar atenções.

O “marketing” de produtos envolve estudo de mercado, planeamento, estratégia,

posicionamento, lançamento e sustentação de um produto no mercado de consumo.

Como programador e parte interessada no estudo desta temática, acredito que se

compreendidas e aprofundadas, estas premissas podem conduzir ao sucesso de uma

aplicação.

João Silva in “Ensaio de dissertacao - M.O.S.S. MNESCA, 2010/11”

Aspectos a considerar:

1. Usabilidade

2. Interface gráfica

3. Iconografia

4. Imagem do produto

5. Campanhas de promoção

Para a minha aplicação, resolvi criar uma página de apoio que poderá ser consultada

em: http://joaosantacruz.com/jz2/uk/songmemo

15

Page 16: Desenvolvimento de aplicações nativas para a Plataforma Android

9. DistribuiçãoUma aplicação pode ser distribuída de várias formas, através de um “website” de apoio

onde estará disponível um link para “download”, ou através de uma loja de aplicações,

como por exemplo o Andoid Market. O Android Market permite ao “developer” publicar

e distribuir as suas aplicações directamente para os utilizadores de “smartphones”

Android de forma muito simples.

Ver mais em: http://market.android.com/publish/

16

Page 17: Desenvolvimento de aplicações nativas para a Plataforma Android

10. Partilhar código fonteCaso a partilha do código fonte seja uma preocupação, existem diversas plataformas

disponíveis com mais ou menos interesse, para o caso, escolhi o GitHub, que permite

uma colaboração entre utilizadores da comunidade clara e bastante eficaz.

Ver mais em: http://github.org e http://gitref.org/remotes/

11. Referências

Android SDK - Android Developers

http://developer.android.com/

SongMemo’s “Website”, in www.joaosantacruz.com

http://www.joaosantacruz.com/jz2/uk/songmemo

João Silva in “Ensaio de dissertacao (Thesis Index) - M.O.S.S. MNESCA, 2010/11”

http://joaosantacruz.com/jz2/uk/mnesca-work/

João Silva e Dinis Monteiro in “Android Vs Meego - M.O.S.S. FSOCA, 2010/11”

http://www.joaosantacruz.com/jz2/uk/fsoca-work/

Android SDK - Developer console

http://market.android.com/publish/

GitHub

http://github.org

17

Page 18: Desenvolvimento de aplicações nativas para a Plataforma Android

Git Reference

http://gitref.org/remotes/

Futuras actualizações deste documento em:

http://www.joaosantacruz.com/jz2/uk/fsoca-work/

18