android26.05
TRANSCRIPT
![Page 1: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/1.jpg)
Unisinos – UNIINFO 2011 – 26/05/2011
Guilherme Callegaro Sesterheim
*Android development basics
![Page 2: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/2.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/3.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/4.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/5.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/6.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/7.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/8.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/9.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/10.jpg)
*Fragmentação de versões operando em smartphones (15/03/2011)
*Fragmentação de versões do
Android
![Page 11: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/11.jpg)
Fragmentação de versões operando em smartphones e tablets (15/03/2011)
*Fragmentação de versões do
Android
![Page 12: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/13.jpg)
*Ambiente de desenvolvimento
*Baixando os SDKs*Montando o ambiente de
desenvolvimento*Eclipse + ADT plugin (Google)*Motodev studio for Android
![Page 14: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/14.jpg)
*Ambiente de desenvolvimento
*Baixando o SDK
![Page 15: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/15.jpg)
*Ambiente de desenvolvimento
*Escolhando os SDK que serão instalados
![Page 16: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/16.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/17.jpg)
*Ambiente de desenvolvimentoMontando o ambiente de
desenvolvimento
![Page 18: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/18.jpg)
*Ambiente de desenvolvimento
![Page 19: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/19.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/20.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/21.jpg)
*Ambiente de desenvolvime
nto
*Construtor de interface
![Page 22: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/22.jpg)
*Testes de aplicativos
*Emulador*ADB
![Page 23: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/23.jpg)
*Testes de aplicativos
*Criando dispositivos de teste
![Page 24: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/24.jpg)
*Testes de aplicativos
*Emulador
![Page 25: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/25.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/26.jpg)
*Publicando aplicativos
*Registro na Google*Google checkout*Google adsense
*Publicando um aplicativo
![Page 27: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/27.jpg)
*Criando conta no Android Market
![Page 28: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/28.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/29.jpg)
*Publicando aplicativos
*Atrelando conta do AdSense ao Google Checkout
![Page 30: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/30.jpg)
*Publicando aplicativos*Manage board
![Page 31: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/31.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/32.jpg)
*Enviar recursos para divulgação
*Publicando
aplicativos
![Page 33: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/33.jpg)
*Descrever detalhes sobre a aplicação
*Publicando aplicativos
![Page 34: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/34.jpg)
*Descrever detalhes sobre a aplicação / Opções de publicação
*Publicando aplicativos
![Page 35: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/35.jpg)
*Informações para contato a ser divulgada aos usuários*Autorização ao Google
*Publicando aplicativos
![Page 36: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/36.jpg)
*Desenvolvimento
*Fundamentals / Introdução*Manifest*Debugging*Activities*Services*UI (user interface)*Data storage*Security*Widgets
![Page 37: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/37.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/38.jpg)
*Desenvolvimento*Manifest
![Page 39: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/39.jpg)
*Desenvolvimento
*Debugging*ADB – Android Debug Bridge*AVD – Android Virtual Device*Logcat*Captura de telas*Debug.startMethodTracing(String fileName)
![Page 40: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/40.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/41.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/42.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/43.jpg)
* Desenvolvimento
![Page 44: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/44.jpg)
*Desenvolvimento
*UI – User Interface*ViewGroup, View*addView(View)*Listeners
![Page 45: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/45.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/46.jpg)
*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](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/47.jpg)
*Desenvolvimento
*Widgets*Manifest
*AppWidgetProviderInfo
*onUpdate() onDeleted(), onEnabled(), onDisabled(), onReceive()
![Page 48: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/48.jpg)
*Dúvidas
![Page 49: Android26.05](https://reader036.vdocuments.net/reader036/viewer/2022070604/5456b8a4af79592b438b6d5b/html5/thumbnails/49.jpg)
*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