Você está na página 1de 48

Programao para Android com bancos de dados e Publicao no Market

Francisco Figueiredo Jr. 01 de Julho 2011 Twitter: @franciscojunior

Agenda

O que o Android? Componentes de uma aplicao Criando a primeira aplicao Acessando Banco de Dados Android Market Mais referncias

O que o Android?

Conjunto de softwares para dispositivos mveis. Sistema operacional, middleware e aplicaes chave. GPS, Telefone, Sensores, 3G, Wifi ... Dalvik Virtual Machine SQLite Ambiente de Desenvolvimento

Emulador, ferramentas e plugin para o Eclipse

Arquitetura do Android

Portions of this page are reproduced from work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Verses do Android

A partir da verso 1.5, a Google decidiu batizar as releases com nomes de sobremesas 1.0 Set 2008 1.1 Mar 2009 1.5 Mai 2009 (Cupcake) 1.6 Set 2009 (Donut) 2.0/2.1 Out 2009 (Eclair) 2.2 Mai 2010 (Froyo) 2.3 Dez 2010 (Gingerbread) 3.0/3.1 Fev 2011 (HoneyComb) Somente para tablets ?? ??? 2011 (Ice Cream Sandwiche) Unir elementos de tablet e telefone

Agenda

O que o Android? Componentes de uma aplicao Criando a primeira aplicao Acessando Banco de Dados Android Market Mais referncias

Componentes de uma aplicao


Atividade Servio Provedor de contedo Receptor de mensagens Intent (Inteno)

Meio de utilizao de todos esses componentes

Atividade

Componente principal de uma aplicao Representa uma tela de interao do usurio com a aplicao Exemplos de telas de interao que podem ser implementadas como uma atividade:

Cadastro de lugar, lista lugares, tela de edio de um e-mail

Servio

Componente que roda em background No est associado interface do usurio Geralmente utilizado para funcionalidades que precisam estar rodando independente de uma tela Tocador de udio, atualizador de localizao, etc

Provedor de Contedo

Funciona como proxy de contedo para as aplicaes Essas informaes podem estar no sistema de arquivos, num banco de dados ou mesmo na web As aplicaes ento pedem essas informaes e o provedor de contedo toma as providncias para obt-las Informaes de contato, agenda ...

Receptor de Mensagens

Componente que recebe notificaes sobre eventos Um download completado, uma nova conexo wifi feita, conexo de dados perdida Todos so eventos que podem ser recebidos por um Receptor de Mensagem O receptor normalmente apenas recebe as mensagens e as repassa para algum fazer algo apropriado

Intent (Inteno)

Meio de comunicao entre vrios componentes Um Intent pode ser usado para iniciar uma nova atividade, um servio ou enviar mensagens para os receptores Contm uma ou mais informaes necessrias para realizar as operaes:

Nome do componente a quem est mandando o intent Ao Dados Categoria Dados Extras Flags

Agenda

O que o Android? Componentes de uma aplicao Criando a primeira aplicao Acessando Banco de Dados Android Market Mais referncias

Criando a primeira aplicao

Os seguintes softwares devem ser instalados:

Android SDK

http://developer.android.com/sdk/index.html http://developer.android.com/sdk/eclipse-adt.html

Plugin do Eclipse ADT

Android SDK

Ferramentas e bibliotecas para o desenvolvimento com Android Emulador Gerenciador das VM's com o Android (AVD) DDMS

Permite copiar arquivos de/para vm Permite simular ligaes, sms etc

Instalando o plugin ADT no Eclipse

O plugin d suporte s ferramentas de desenvolvimento a partir do Eclipse:


Compilao Suporte a edio dos arquivos de layout e arquivos de manifesto Integra vrias ferramentas do SDK dentro do Eclipse

Criao das VM's do emulador Rodar o emulador DDMS

Exportao da aplicao para publicao

Hora da Demonstrao

Instalao do plugin no Eclipse e criao da primeira aplicao

Arquivos que compem a aplicao

Arquivo de Manifesto

AndroidManifest.xml

Arquivos de Layout (telas) Arquivos de configurao Arquivos auxiliares

Bitmaps, arquivos de audio, video

Arquivo R.java Classes da Aplicao

Arquivo de Manifesto

O arquivo permite controlar vrios aspectos da aplicao Declarao de permisses Declarao das atividades, servios, requisitos de tela, etc Nmero da verso Nome da verso

Arquivo de Manifesto
<?xml version="1.0" encoding="UTF-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="nome.pacote" android:versionCode="1" android:versionName="Nome da Verso"> <application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> <activity android:name=".NomeDaAtividade"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity ...> <service ... /> <receiver ... /> <provider ... /> </application> <uses-permission android:name="android.permission.Internet" /> <uses-sdk android:minSdkVersion="7" /> </manifest>

Arquivos de Layout

Descrio em XML do contedo das telas

As telas tambm podem ser criadas em cdigo FrameLayout LinearLayout TableLayout RelativeLayout Separao de cdigo Facilidade de uso de designers de tela

Objetos de layout:

Por que XML?


Arquivos de Layout

FrameLayouts

Todos os objetos ficam alinhados no canto superior esquerdo Permite alinhar objetos na horizontal ou na vertical Permite atribuir pesos (weight) para os objetos filhos de forma a balancear como a tela ser preenchida Alinha os objetos em forma de tabela Posiciona os objetos filhos de maneira relativa ao continer ou uns aos outros. [todo] melhorar a explicao

LinearLayout

TableLayout

RelativeLayout

Elementos de interface

Muitos exemplos de elementos de interface podem ser estudados no projeto apiDemos que vem no plugin do Eclipse

Arquivos de Configurao

Strings utilizadas no projeto


<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, Main!</string> <string name="app_name">FISL12Demo</string> <string name="titulo">Aplicao Demo FISL12</string> </resources>

Especificaes de preferncias do usurio

<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Preferencia"> <CheckBoxPreference android:key="checkBox" android:title="Titulo" android:summary="Texto da checkbox"> </CheckBoxPreference> </PreferenceCategory> </PreferenceScreen>

Arquivos Auxiliares

Arquivos que so utilizados pela sua aplicao Bitmaps, arquivos de vdeo, msica, bancos de dados

Arquivo R.java

Arquivo gerado automaticamente pelo plugin Contm o valor dos vrios identificadores utilizados no projeto

Ids Strings Layouts Drawables cones, linhas, etc Arquivos xml

Rodando a aplicao

Ciclo de Vida da Atividade Interface de usurio Criando a VM Android

Ciclo de Vida da Atividade

Ao iniciar a aplicao, o Android verifica qual a atividade padro no arquivo de manifesto Ao ser iniciada, a Atividade entra num ciclo chamado de Ciclo de Vida da Atividade A Atividade sabe em qual estado do ciclo est devido s chamadas de mtodos realizadas pelo Android

Ciclo de vida da Atividade

Portions of this page are reproduced from work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Mostrando a Interface do Usurio

A interface a ser mostrada especificada ao se chamar o mtodo setContentView(), geralmente no mtodo onCreate() Como parmetro passada a View a ser mostrada, ou o id do layout em xml
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }

Criando a VM Android

Para criar a VM Android, utiliza-se o AVD Manager


Executando android na linha de comando, ou Clicando no boto do AVD dentro do Eclipse

Hora da Demonstrao

Como criar uma VM Android e rodar uma aplicao

Agenda

O que o Android? Componentes de uma aplicao Criando a primeira aplicao Acessando Banco de Dados Android Market Mais referncias

Acessando banco de dados

O Android usa internamente o banco de dados SQLite para armazenar dados

Os dados dos contatos ficam num banco de dados sqlite O dicionrio de palavras inserido pelo usurio tambm

Portanto, h um bom suporte para acesso a bases de dados SQLite

Acessando banco de dados

Criao do bancos de dados

Pode ser utilizado um banco de dados criado externamente Pode-se usar o suporte do Android para criar o banco diretamente no cdigo Vrias API's esto disponveis para se fazer o acesso aos dados

Acesso aos bancos de dados

Criao do banco de dados

A forma de criao e acesso recomendada criar uma subclasse da SQLiteOpenHelper


OnCreate(); OnUpgrade(); GetReadableDatabase(); GetWritableDatabase();

Criao do banco de dados


public class DictionaryOpenHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 2; private static final String DICTIONARY_TABLE_NAME = "dictionary"; private static final String DICTIONARY_TABLE_CREATE = "CREATE TABLE " + DICTIONARY_TABLE_NAME + " (" + KEY_WORD + " TEXT, " + KEY_DEFINITION + " TEXT);"; DictionaryOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DICTIONARY_TABLE_CREATE); }

Acesso ao banco de dados

Outra forma de acesso abrir o arquivo de banco de dados diretamente


SQLiteDatabase.openDatabase(); SQLiteDatabase.openOrCreateDatabase(); openDatabase() permite especificar um caminho que pode apontar para seu carto de memria externo Com o banco no carto externo, fica fcil copiar esse banco para outros lugares

Acesso aos dados

Existem vrios mtodos que permitem o acesso aos dados

O mais simples o SQLiteDatabase.rawQuery(); que permite executar um sql direto SQLiteDatabase.query() SQLiteDatabase.insert() SQLiteDatabase.update() SQLiteDatabase.delete()

Acesso aos dados

Existe suporte para mostrar dados em uma lista (ListView). Para isso, faz-se uso da classe SimpleCursorAdapter Basta usar uma consulta que contenha pelo menos um identificador de linha (obrigatrio) chamado _id

Hora da Demonstrao

Aplicao exemplo de acesso ao banco de dados

Agenda

O que o Android? Componentes de uma aplicao Criando a primeira aplicao Acessando Banco de Dados Android Market Mais referncias

Android Market Onde comear?

A publicao do aplicativo no Market bem simples uma vez que os passos iniciais tenham sido feitos:

1. Inscrio

market.android.com/publish US$ 25.00 Criao do certificado para publicao

2. Assinatura da aplicao

3. Versionamento da aplicao

Processo de publicao

Android Market

Para criar o certificado, deve-se executar o seguinte comando:


keytool -genkey -v -keystore nomedokeystore.keystore -alias apelido_keystore -keyalg RSA -keysize 2048 -validity 10000

Esse comando ir criar o keystore necessrio para publicar no Market Deve ter validade maior que 22 de Outubro de 2033 Pode-se usar o Export Wizard do Eclipse para gerar a keystore

Android Market

Alm da assinatura, deve-se especificar o valor da verso e o nome da verso do aplicativo no arquivo de Manifesto Essas informaes sero usadas pelo Market para saber que houve a atualizao da aplicao
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="versao 1"> </manifest>

Android Market

Processo de publicao

market.android.com/publish Duas screenshots do aplicativo cone de alta resoluo (512x512)

Arquivos necessrios (imagens)


De posse desses requisitos, basta fazer o upload do aplicativo e escrever a descrio e mudanas recentes

Referncias - Onde aprender mais


http://d.android.com http://android-developers.blogspot.com http://source.android.com http://coderzheaven.com http://j.mp/androidassetstudio

http://www.brasildroid.com.br

Contato

Francisco Figueiredo Jr. francisco.figueiredo.jr@gmail.com http://franciscodroid.blogspot.com @franciscojunior