android26.05

49
Unisinos – UNIINFO 2011 – 26/05/2011 Guilherme Callegaro Sesterheim * Android development basics

Upload: guisester

Post on 16-Apr-2017

2.778 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Android26.05

Unisinos – UNIINFO 2011 – 26/05/2011

Guilherme Callegaro Sesterheim

*Android development basics

Page 2: Android26.05

*Sumário

*Android e smartphones*Fragmentação de versões do Android*Ambiente de desenvolvimento*Testes de aplicativos*Publicando aplicativos*Desenvolvimento

Page 3: Android26.05

*O que é:*Sistema operacional móvel, baseado em

Linux.*Adquirido pela Google em 2005 e lançado

em 2008.*Desenvolvimento de aplicações é baseado

em Java / C++ / C / C# e Python.*Curiosidade: possui 12 milhões de linhas de

código, divididas entre XML, C, Java e C++.

*Android

Page 4: Android26.05

*Hoje o Android Market possui mais de 200 mil aplicativos disponíveis

*Em fevereiro a Google abriu a web store para facilitar a procura por aplicativos no Android Market

* Os percentuais mostram o crescimento em comparação ao mês anterior à pesquisa (fevereiro)

*Android

Page 5: Android26.05

*Android

Perspectivas para desenvolvedores

*O Market vende mais do que a App Store (maior loja de aplicativos existente) desde março

*Desde janeiro, é permitida a inclusão de pagamentos dentro de aplicativos

*Projeção de lucro para desenvolvedores sozinhos x empresas

*Oportunidade de trabalho com Android:* Sites de free-lancers* Projetos open source

*Empregos fixos: entre R$ 2000,00 para desenvolvedores e R$ 8000,00 para analistas

*Visibilidade

Page 6: Android26.05

*Android

*Smartphones*Marcos:*Nov 2009 – Lançamento do Motorola Milestone* Jun 2010 – Lançamento do Samsung Galaxy S

*Melhores smartphones atualmente (09/05/2011):*HTC Thunderbolt 4G*Motorola Atrix 4G*HTC Inspire 4G*T-Mobile G2x*Google Nexus S 4G

*Curiosidade: o lucro da HTC triplicou no primeiro trimestre de 2011 em função da demanda por Androids. Já a Motorola estuda o desenvolvimento de um mobile OS próprio

Page 7: Android26.05

*Android

Escolhendo smartphone para iniciar a desenvolver

*Samsung Galaxy 5 – 2.1 (R$ 400,00)**Motorola MB502 – 2.1 (R$ 550,00)*Sony Ericsson Xperia X8 – 2.1 (R$ 600,00)

Page 8: Android26.05

*Android

Problemas do Market

*Aplicativos maliciosos – roubo de informações

*Em março de 2011 foram descobertos e removidos 52 aplicativos virais do Android Market. Eles representavam diversas ameaças aos usuários, responsáveis pelos mais de 50 mil downloads (calculadora, xadrez, entre outros)

*Falta de controle sobre o Market

*Iniciada a utilização do Google remote kill, implementado desde 2008

Page 9: Android26.05

*Fragmentação em smartphones*Fragmentação em smartphones e tablets*Tentativas de diminuição da fragmentação

*Fragmentação de versões do

Android

Page 10: Android26.05

*Fragmentação de versões operando em smartphones (15/03/2011)

*Fragmentação de versões do

Android

Page 11: Android26.05

Fragmentação de versões operando em smartphones e tablets (15/03/2011)

*Fragmentação de versões do

Android

Page 12: Android26.05

Tentativa de diminuição da fragmentação

*Há a expectativa de diminuição da fragmentação de Androids operando em smartphones e tablets através da liberação do 3.1 – Ice Cream Sandwich, que será compatível com ambas as plataformas

*Há uma negociação entre fabricantes e Google para que todos os novos modelos de smartphone sejam atualizados por pelo menos 18 meses

*Uma mudança recente da Google sobre o Market, fez com que a partir de então os aplicativos que não são compatíveis com o aparelho que está fazendo a busca, não sejam mostrados

*Fragmentação de

versões do Android

Page 13: Android26.05

*Ambiente de desenvolvimento

*Baixando os SDKs*Montando o ambiente de

desenvolvimento*Eclipse + ADT plugin (Google)*Motodev studio for Android

Page 14: Android26.05

*Ambiente de desenvolvimento

*Baixando o SDK

Page 15: Android26.05

*Ambiente de desenvolvimento

*Escolhando os SDK que serão instalados

Page 16: Android26.05

*Ambiente de desenvolvimento

Montando o ambiente de desenvolvimento

*1 – Baixar o eclipse em eclipse.org/downloads

*2 – Instalar o ADT (Android development tools) plugin

Page 17: Android26.05

*Ambiente de desenvolvimentoMontando o ambiente de

desenvolvimento

Page 18: Android26.05

*Ambiente de desenvolvimento

Page 19: Android26.05

*Ambiente de desenvolvimento

Montando o ambiente de desenvolvimento – alternativa1 – Baixar o plugin diretamente no site

da Google

2 – Mesmo procedimento anterior,

porém escolhendo o arquivo localmente

Após a instalação, é necessário indicar qual SDK deverá ser utilizado através do menu

Window > Preferences > Android

IMPORTANTE: é necessário verificar periodicamente as atualizações,

através do menu Help > Check for Updates, ou através do site da Google

Page 20: Android26.05

*Ambiente de desenvolvimento

*Motodev studio*Gratuito*Não há restrição a aparelhos da Motorola*Principais diferenciais:*App validator (permissões, e uso de código)*Code snippets (adicionar facilmente códigos já

construídos)*Application signing automático*Suporta o Android NDK (desenvolvimento em C e C++)*Screen capture de dispositivos emulados e físicos*Tradutor de aplicativos nativo

Page 21: Android26.05

*Ambiente de desenvolvime

nto

*Construtor de interface

Page 22: Android26.05

*Testes de aplicativos

*Emulador*ADB

Page 23: Android26.05

*Testes de aplicativos

*Criando dispositivos de teste

Page 24: Android26.05

*Testes de aplicativos

*Emulador

Page 25: Android26.05

*Testes de aplicativos

*ADB – Android Debug Bridge*O que é*Localizado em <sdk-path>/platform-tools/*Pode receber instruções via linha de

comando

Page 26: Android26.05

*Publicando aplicativos

*Registro na Google*Google checkout*Google adsense

*Publicando um aplicativo

Page 27: Android26.05

*Criando conta no Android Market

Page 28: Android26.05

*Inserindo dados comerciais na conta do Google Checkout para poder vender aplicativos

*É permitido o cadastro de pessoas físicas

*Publicando

aplicativos

Page 29: Android26.05

*Publicando aplicativos

*Atrelando conta do AdSense ao Google Checkout

Page 30: Android26.05

*Publicando aplicativos*Manage board

Page 31: Android26.05

*Passos para publicar um aplicativo:*Enviando o .apk*Enviar recursos para divulgação*Descrever detalhes sobre a aplicação*Opções de publicação*Informações para contato a ser divulgada aos

usuários*Autorização ao Google

*Publicando aplicativos

Page 32: Android26.05

*Enviar recursos para divulgação

*Publicando

aplicativos

Page 33: Android26.05

*Descrever detalhes sobre a aplicação

*Publicando aplicativos

Page 34: Android26.05

*Descrever detalhes sobre a aplicação / Opções de publicação

*Publicando aplicativos

Page 35: Android26.05

*Informações para contato a ser divulgada aos usuários*Autorização ao Google

*Publicando aplicativos

Page 36: Android26.05

*Desenvolvimento

*Fundamentals / Introdução*Manifest*Debugging*Activities*Services*UI (user interface)*Data storage*Security*Widgets

Page 37: Android26.05

*Desenvolvimento

*Fundamentals / Introdução*Os aplicativos de Android são instalados através

de um .apk*A partir do momento em que é instalado, cada

aplicativo do Android tem sua sandbox (baseia-se no conceito de multi-usuários do Linux)

*Cada processo recebe suas permissões específicas

*Cada processo executa dentro de uma VM*Cada aplicação consegue acessar apenas o que

foi determinado através do manifest

Page 38: Android26.05

*Desenvolvimento*Manifest

Page 39: Android26.05

*Desenvolvimento

*Debugging*ADB – Android Debug Bridge*AVD – Android Virtual Device*Logcat*Captura de telas*Debug.startMethodTracing(String fileName)

Page 40: Android26.05

*Desenvolvimento

*Activities* Uma Activity é um componente da aplicação (uma classe), que

proverá uma tela com a qual o usuário poderá interagir

* Geralmente o desenho ocupa a tela inteira, mas ela pode ser diminuída para ser feito o efeito de flutuação sobre outras telas já existentes

* Implementando métodos obrigatórios:* onCreate(), onStart(), onResume(), onPause(), onStop(),

onDestroy()

* Intents:* ACTION_VIEW* ACTION_DIAL* ACTION_EDIT* ACTION_MAIN

Page 41: Android26.05

*Desenvolvimento

*Definindo a tela que será exibida: setContentView( String codigoArquivoXML)

* Iniciando sub atividade: startActivity(Intent nova)

*Capturando resultado de uma atividade startActivityForResult() / onActivityResult()

* Finalizando uma atividade: finish() / finishActivity()

*Guardando o estado de uma Activity – onSaveInstanceState() / onRestoreInstanceState()

* Outros eventos importantes: onCreateOptionsMenu, onKeyDown, onMenuItemSelected, onTouchEvent, onWindowFocusChanged

Page 42: Android26.05

*Desenvolvimento

*Services*São atividades que operam em background por

um longo tempo e não provêem interface para o usuário

*É necessário declarar os Services, que a aplicação poderá disparar, no manifest

*Pode ser executado, desacoplado, e capturado futuramente

*onCreate(), onStartCommand(), onBind(), onUnbind(), onRebind(), onDestroy()

Page 43: Android26.05

* Desenvolvimento

Page 44: Android26.05

*Desenvolvimento

*UI – User Interface*ViewGroup, View*addView(View)*Listeners

Page 45: Android26.05

*Desenvolvimento

*Data Storage*Shared Preferences – dados de usuário / internos do smartphone*Internal storage*MODE_PRIVATE*MODE_APPEND*MODE_WORLD_READABLE*MODE_WORLD_WRITABLE

*External storage*Environment.getExternalStorageState()*getExternalStoragePublicDirectory() – images/music/ringtones/videos

*SQLite databases*Network connection

Page 46: Android26.05

*Desenvolvimento

*Security*Nenhuma aplicação tem permissão para interferir em outros

processos, outras aplicações, ou informações confidenciais do sistema*Application signing*Permissões*Existem 115 diferentes tipos de permissões*Exemplos: SET_ALARM, RECORD_AUDIO, RECEIVE_SMS, REBOOT,

INTERNET, FLASHLIGHT, DEVICE_POWER, CAMERA, CALL_PHONE, BATTERY_STATS, etc

Page 47: Android26.05

*Desenvolvimento

*Widgets*Manifest

*AppWidgetProviderInfo

*onUpdate() onDeleted(), onEnabled(), onDisabled(), onReceive()

Page 48: Android26.05

*Dúvidas

Page 49: Android26.05

*Bibliografia

* Vídeo sobre ativações do Android: http://www.youtube.com/watch?v=fqFpq9WXbJo&feature=player_embedded#at=118* Aplicativos pagos X gratuitos no Market: http://www.techzine.com.br/arquivo/android-market-supera-appstore-em-total-de-

aplicativos-grtis/* Levantamento atualizado sobre aplicativos do Market: http://www.distimo.com/appstores/app-store/19-Google_Android_Market* Hello world Phython para Android: http://www.mestreandroid.com.br/desenvolvimento-python-para-android/* Informações sobre o Android market: http://www.distimo.com/appstores/app-store/19-Google_Android_Market* Qual plataforma gera mais lucro: http://livetouch.blogspot.com/2011/03/android-x-ios-qual-plataforma-gera-mais.html* Início do pagamento dentro de apps: http://www.hardware.com.br/noticias/2011-01/app-1.html* Lucro da HTC triplica por causa do Android: http://info.abril.com.br/noticias/mercado/lucro-da-htc-triplica-com-demanda-po-androids-

08042011-7.shl* Queda da fragmentação do Android: http://www.blogdoandroid.com/2011/02/a-fragmentacao-do-android-caiu-mesmo/* Ação da Google para frear a fragmentação do Android: http://www.eletronicoblog.pop.com.br/post/7240/chega-de-fragmentacao-

android-podera-ser-o-unico-para-todos-smartphones* Google remote kill: http://tecnoblog.net/58868/aplicativos-maliciosos-do-android-market-serao-desativados-remotamente/* Nova web store: http://www.hardware.com.br/noticias/2011-05/novidades-android-market.html* Tentativa de diminuição de fragmentação: http://www.eletronicoblog.pop.com.br/post/7240/chega-de-fragmentacao-android-podera-

ser-o-unico-para-todos-smartphones* Anúncio do Ice Cream Sandwich 3.1 http://www.engadget.com/2011/05/10/google-announces-ice-cream-sadwich-for-q4-2011-for-

smartphones/* Google obriga fabricantes a atualizar androids: http://www.gizmodo.com.br/conteudo/como-o-google-obrigara-fabricantes-a-atualizar-

seus-novos-androids/* Melhora na fragmentação do Android: http://www.tekimobile.com/2011/03/android-ainda-e-muito-fragmentado-mas-esta-

melhorando.html* Vantagem do froyo: http://geekfiles.altervista.org/pt/android-dati-di-distribuzione-froyo-resta-in-vantaggio/

* Instalando o ambiente: http://developer.android.com/sdk/eclipse-adt.html#installing* Motodev Studio: http://developer.motorola.com/docstools/motodevstudio/* ADB: http://developer.android.com/guide/developing/tools/adb.html

* Desenvolvimento: http://developer.android.com/guide/topics/fundamentals.html* http://developer.android.com/guide/topics/fundamentals/activities.html* http://developer.android.com/guide/topics/fundamentals/services.html* http://developer.android.com/guide/topics/ui/index.html* http://developer.android.com/guide/topics/data/data-storage.htmlhttp://developer.android.com/guide/topics/security/security.html* http://developer.android.com/guide/topics/manifest/manifest-intro.html* http://developer.android.com/guide/topics/appwidgets/index.html http://developer.android.com/guide/developing/debugging/

index.html