desenvolvimento para android - bento gonçalves (08/2011)
DESCRIPTION
Slides do workshop sobre Desenvolvimento para Android, apresentado no Tchêlinux Bento Gonçalves (13/08/2011). http://tchelinux.org/site/doku.php?id=evento_2011_agosto_bentoTRANSCRIPT
Desenvolvimento para
4 Frases que o dono de um Android escuta [todos os dias]
Que marca de iPhone é esse seu ?
Nossa! Com esse dinheiro dava até pra comprar um iPhone!
É uma imitação do iPhone?
A bateria do meu Nokia 5125 dura duas semanas a fio. E eu mando SMS!
Quem sou eu
História do AndroidOutros OSs para dispositivos móveis
Coisas boas do Android
Coisas ruins do Android
O que é o AndroidMercado Mobile
Paradigmas de desenvolvimento
Estrutura de um aplicativo Android
Conceitos utilizados no desenvolvimentoAmbiente e Ferramentas
Hello World Como debugar uma aplicaç!ao móvel
Publicação de Apps no Android Market
Sistemas Operacionais(para dispositivos móveis)
• Visão tradicional‒ Modelo fechado‒ Symbian, PalmOS, WinMo,
Blackberry‒ Linux (sem padrões)‒ JavaME
Sistemas Operacionais(para dispositivos móveis)
• Visão atual‒ Modelo aberto‒ iOS, Android, WinMO,
Blackberry, Symbian‒ Desenvolvimento nativo‒ “Apps” & “Markets”
O Android é um “Software Stack”
Software Stack
• Aplicações
• Middleware
• Sistema Operacional
Parte Linux
• Kernel 2.6• Drivers, memória, rede,
gerenciamento de processos
• Sem glibc (custom)• Sem “unix utils”• Sem Xwindow
Parte Middleware
• Bibliotecas de baixo nível• SSL, OpenGL, Codecs,
Webkit, SQLite, Dalvik
• Application Framework• Activity Mngr, Location Mngr,
Notification Mngr, Telephony
Parte Aplicações
• Home• Contatos• Telefone• Browser• Gmail• Maps• Market (...)
Dizem que Android == Java...
Porque Android != Java
• Android *usa* Java• Implementa parte da
especificação Apache Harmony• dex != class• apk != jar• Dalvik != Oracle JVM• Patentes
Dalvik, Eyjafjörður, Islândia
Dalvik
• Apache Harmony• Otimizado para as
restrições dos dispositivos móveis
• Não precisa de SWAP• Multiplas VMs
https://sites.google.com/site/io/dalvik-vm-internals
Um pouco de história [pic related]
Agosto/2005 – Google adquire uma empresa chamada “Android Inc.”, de Palo Alto (Califórnia) e fundada em
Outubro/2003
Setembro/2007
Novembro/2007
Android 1.0 (Sem nome)
Android 1.0 e 1.1
• Set/2008 e Fev/2009• Primeira versão (e update)• HTC G1 e HTC Dream• Early Adopters
Android 1.5 (Cupcake)
Android 1.5
• Abril/2009• Widgets• Gravação de video• MPEG4• Teclados de terceiros• HTC Hero
Android 1.6 (Donut)
Android 1.6
• Set/2009• Android Market• Suporte a CDMA e VPNs• Navegação GPS• Text-to-speech
Android 2.0 e 2.1 (Eclair)
Android 2.0 e 2.1
• Out/2009 e Jan/2010• Melhorias na câmera• Melhorias no navegador• Desempenho• Motorola Milestone• Nexus One
Android 2.2 (Froyo)
Android 2.2
• Maio/2010• Desempenho• Compilador JIT• V8• Tethering e Hotspot Wi-Fi nativo• Apps no SD• Adobe Flash• Telas com alto DPI (320)
Android 2.3 (Gingerbread)
Android 2.3
• Dez/2010• Nova Interface• Desempenho (GC concorrente)• SIP nativo (VoIP) e chat por video• NFC• Download Manager• Múltiplas câmeras• NDK melhorado• Nexus S
Android 3.0, 3.1 e 3.2 (Honeycomb)
Android 3.x
• Fev-Mai-Jul/2011• Suporte exclusivo a Tablets (Sistema
totalmente redesenhado)• Dispositivos USB (3.1)• Suporte a novos hardwares• Modo de compatibilidade (3.2)• Motorola XOOM
Android 4.0? (Ice Cream Sandwich)
O mercado Android hoje
Vendas - Comparativo
Smartphones - EUA
~500.000 ativações por dia
Estranhas patentes
Incidentes de segurança
Fragmentação (Agosto 2011)
Pirataria
Comunidade
Concorrência
Desenvolver para dispositivos móveis é quebrar paradigmas
Você não usa o celular como usa um computador !
Há coisas que só podem ser feitas com um celular!
Você não pode [nem deve] prever onde e quando seu App será usado.
Bons desenvolvedores conhecem vários programas
Bons desenvolvedores conhecem outros desenvolvedores
Bons desenvolvedores conhecem vários dispositivos
Apps que resolvem um problema
Apps que resolvem um problema que os usuários não sabem que tem
Feedback com bom senso
Android Building Blocks
Application
Activities
Views e Widgets
Services
Foreground Services
Broadcast Receivers
Notifications
Content Providers
Data Storage
• Shared Preferences• Internal Storage• External Storage• SQLite• Network Connection
Intents
Intents implícitos e intent filter
Resources
• Drawables• Layouts• Values• XML• Menu• Animations• RAW
• Tamanhos e densidades de telas• Orientação do dispositivo• Funções do dispositivo (Teclado, Touch)• Localização• Versão do Android
Alternative Resources
AndroidManifest.xml
Debug e testeEmulador x Device
Publicando sua App
• Chaves• Assinatura• Alinhamento• Versionamento• Teste• Mais teste• APK
Android Market
• Regras do Market• Conta de desenvolvedor• US$ 25,00• Licenciamento• In-App Billing• Teste• Bom senso• Usuários
Mais Recursos
• http://developer.android.com• http://portalandroid.org• http://www.androidbrasil.com• http://diariodoandroid.com.br• http://www.euandroid.com.br• http://vidamovelblog.com
?
Obrigado!
ciello [at] gmail [dot] com@gustavociello