Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Anna Schaller
Evangelistas da tecnologia Android Plataformas e servios para desenvolvedores
Bem-vindo 01 Anteseagora
Designdosmartphoneversusdesigndotablet
02 MudanasnodesigndaIUdeaplicativos
IntroduoaosrecursosdeIUdoAndroid3.0
03 Mudanasnosgrficosenamdia
Atualizaes,aprimoramentoseinformaessobresuportea grficosemdia
04 Recursos dehardware
SuporteaoAndroidnohardwaredoXOOM
05 10coisas
10PassosfceisparacolocaroseuaplicativonoXOOM
2010 Motorola Mobility, Inc.
Pgina 3
Apresentao do tablet
Tela: 10,1 polegadas diagonal (xlarge), WXGA (1280 x 800), 160 dpi (mdpi) Memria: 32 GB de armazenamento flash Processador: nVidia Tegra 2 dual core Sensores: acelermetro, barmetro, giroscpio, bssola, luz ambiente, GPS, sem proximidade ou vibrao, rotao 4 direes Conectividade: 802.11 a/b/g/n, Bluetooth, HDMI Cmera: 2 mp foco fixo dianteira / 5 mp autofoco traseira Mdia: gravao em vdeo HD 720p, reproduo HD 1080p Armazenamento externo: carto SD de 32 GB post-launch Plataforma: Android 3.0 (Honeycomb) Ambientes de aplicativo: Adobe AIR 2.6, Android, NDK, Flash 10.1 Muitas alteraes de software..
2010 Motorola Mobility, Inc.
Pgina 4
Tecla de menu
Tecla de incio
Pgina 5
Pgina 6
Interao (cont.)
No um boto de menu
Barra de sistema
Pgina 7
Barra de aes Fragmentos Novos widgets Notificaes atualizadas rea de transferncia do sistema Arrastar e soltar
Ttulo da apresentao Verso 1.0 02.24.09
Pgina 8
Tema hologrfico
Herdado por todos os aplicativos compilados com o Android 3.0
minSdkVersion ou targetSdkVersion = 11 *e* ativar acelerao de hardware (android:hardwareAccelerated=true) Se a verso do SDK <= 9, o seu aplicativo usa os designs de widget do Android 2.3 e no herda o tema hologrfico
Pgina 9
Pgina 10
public boolean onCreateOptionsMenu(Menu menu) {} public boolean onOptionsItemSelected(MenuItem item) { case R.id.menu_item }
/res/menu/menu_definitions.xml
2010 Motorola Mobility, Inc.
Pgina 11
O cone do aplicativo pode ser acionvel Interface com abas na barra de aes Itens de ao individuais, em vez de listados no menu overflow Com ou sem texto; com ou sem cone Para gerenciar a barra de aes
ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Consulte android.app.actionbar
Pgina 12
Outra forma de ocultar a barra de aes com programao, e ento deixar o usurio alternar
Pgina 13
Menus
Para aceitar compatibilidade retroativa, o boto de menu de software foi adicionado junto barra de sistema
minSdkVersion e targetSdkVersion < 11
Pgina 14
Fragmentos
Possibilita que um aplicativo seja dividido em subcomponentes que possam ser gerenciados individualmente e combinados de vrias formas, como a criao de uma IU com diversos painis.
Pgina 15
Fragmentos (cont.)
Um fragmento deve estar sempre includo em uma Atividade
Atividade
Lista Fragmento
Fragmento
Pgina 16
Crie classe que estenda Fragments Exibe contedo semelhante a uma Atividade (imagens, texto, widgets de aplicativo) Pode ser vinculado a outro fragmento ou aba Pode adicionar itens ao menu overflow da Atividade (barra de aes) No precisa ser visvel (pode trabalhar nos bastidores) Se for visvel, precisar de seu prprio arquivo de layout
2010 Motorola Mobility, Inc.
Pgina 17
XOOM_hc_app /res/layout/main.xml Layout da atividade (Lista) Fragmento (Contedo) Fragmento com incluso de imagem
PictureList.java
ContentFragment.java
2010 Motorola Mobility, Inc.
Pgina 18
Fragmentos (cont.)
Instrues no Guia do desenvolvedor do 3.0 sobre fragmentos Consulte referncia 3.0 sobre APIs
android.app.Fragment android.app.ListFragment
Exibe uma lista semelhante a ListActivity
android.app.DialogFragment
Exibe uma caixa de dilogo flutuante
android.app.FragmentManager
Interface para interao com o fragmento (findFragmentById)
android.app.FragmentTransaction
APIs para operaes de fragmento (adicionar, remover, substituir, ocultar, mostrar)
Pgina 19
Pgina 20
Exemplo em funcionamento
Honeycomb Gallery em amostras de SDK apresenta..
Barra de aes com interface com abas, menu de itens de ao e menu overflow FragmentList e fragmento em retrato e paisagem Novo tema Arrastar e soltar Animao Ocultar/mostrar Barra de aes Modo de apagar a luz
Grficos e multimdia
Ttulo da apresentao
Verso 1.0
02.24.09
Pgina 22
Acelerao de hardware
Suporte integrado para acelerao em um subconjunto de grficos 2D (Canvas API) Globalmente para todo o aplicativo ou atividade individual com configurao do n apropriado no manifesto
android:hardwareAccelerated=true
Teste para confirmar se o canvas est acelerado por hardware com isHardwareAcclerated()
2010 Motorola Mobility, Inc.
Pgina 23
Compresso de texturas
Chipsets diferentes aceitam tipos de compresso diferentes Formatos para celular:
ETC1 aceito por todos os dispositivos Android com OpenGL ES 2.0 mas sem canal alfa PVRTC (PowerVR SGX 530 GPU da Imagination Technologies) ATITC (Adreno GPU da Qualcomm) S3TC ou DXT1, 3, 5 (nVidia GPU)
Pgina 24
Pgina 25
Animao
Dois sistemas de animao para escolher: 1. Animaes de exibio (android.view.animation) Animaes com Tween Cria uma srie de transformaes simples no contedo de um objeto de exibio View. As transies bsicas incluem rotao, esmaecimento, movimento e ampliao em um grfico. Com as animaes quadro a quadro (frame-by-frame), voc carrega uma srie de recursos Drawable, um aps o outro, para criar uma animao. // novo no honeycomb)
2.
Pode animar quase qualquer coisa (no apenas exibies como drawables!) Aumenta o conjunto de propriedades que podem ser animadas (grupo e reproduo) As animaes de exibio so mais simples e rpidas, as animaes de propriedade fazem mais Consulte http://developer.android.com/guide/topics/graphics/animation.html
2010 Motorola Mobility, Inc.
Pgina 26
Sensores
Hardware
Pgina 28
Sensores
Acelermetro, giroscpio, magnetmetro, barmetro, bssola, luz ambiente, GPS, sem sensor de proximidade, sem vibrao Orientao do dispositivo
A orientao natural paisagem (landscape) com rotao em 4 direes
+ye +x +yes +ye -x +x -x -x -ye Rotao 0 Rotao 90 -ye
Rotao 02010 Motorola Mobility, Inc.
+z
-ye +x
Pgina 29
Sensores (cont.)
Use android.view.Display.getRotation() para ver a direo atual Ajuste os valores x/y para os quatro tipos de rotao
ROTATION_0 ROTATION_90 ROTATION_180 ROTATION_270
Consulte a amostra AccelerometerPlay no SDK Mais detalhes no post do blog do Android One Screen Turn Deserves Another Se voc precisar impedir a rotao do aplicativo, trave-o na orientao natural com
<activity android:orientation=nosensor />
2010 Motorola Mobility, Inc.
Pgina 30 Pgina
2010 Motorola Mobility, Inc. Motorola Mobility, Inc. 2010 Verso 1.0
Pgina 31
Cmeras
2 cmeras disponveis dianteira e traseira
Traseira: 5 mp, autofoco Dianteira: 2 mp, foco fixo
Suporte adicionado para cmeras duplas no Gingerbread (2.3) A cmera traseira primria e, portanto, a filtragem feita com base nos recursos da cmera traseira (por exemplo android.hardware.camera.autofocus)
<uses-permission android:name=android.permission.CAMERA /> <uses-feature android:name=android.hardware.camera.front android:required=<true or false> />
Pgina 32
Cmera (cont.)
import android.hardware.Camera; import android.hardware.Camera.CameraInfo; [] public void toggleCamera() { Camera mCamera; int numberOfCameras = Camera.getNumberOfCameras(); CameraInfo cameraInfo = new CameraInfo(); for (int i = 0; i < numberOfCameras; i++) { Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) { mCamera = Camera.open(i); // fazer algo com a cmera dianteira } else if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) { mCamera = Camera.open(i); // fazer algo com a cmera traseira } } }
2010 Motorola Mobility, Inc.
Pgina 33
Tela de toque
android.hardware.touchscreen.multitouch Aceita toque com 2 dedos android.hardware.touchscreen.distinct
Aceita deteco de 5 ou mais dedos de forma completamente independente (toque com 10 dedos) Defina a tag <usesfeature> para filtrar dispositivos que aceitam isso (como o XOOM)
Pgina 34
Pgina 35
Telefonia
Perspectiva do dispositivo
Dispositivos CDMA, UMTS/GMS tm um rdio para suporte a redes 4G/LTE Com suporte a um subconjunto de framework de telefonia (android.telephony.TelephonyManager)
Perspectiva do aplicativo
Sem suporte a recurso de telefonia <uses-feature android:name=android.hardware.telephony android:required=true/>
Pgina 36
Telefonia (cont.)
Obteno de identificadores exclusivos: pense em por que voc est obtendo os dados. Voc est tentando rastrear o hardware ou o aplicativo?
O hardware de rastreamento precisa que ele seja mantido na redefinio de fbrica. O aplicativo de rastreamento precisa que o valor seja redefinido na redefinio de fbrica.
ANDROID_ID (talvez)
Gerada e armazenada quando o dispositivo iniciado pela primeira vez. redefinida quando o dispositivo apagado. No garantido em dispositivos anteriores ao Android 2.2
Nova recomendao criar seu prprio ID nico e grav-lo em seu arquivo compartilhado de preferncias
Por exemplo: uniqueID = UUID.randomUUID.toString()
2010 Motorola Mobility, Inc.
10 coisas..
Modo de compatibilidade Drawables Texto Permisses e features Mantendo a base de cdigo SDK Honeycomb
Pgina 38
Pgina 39
Pgina 40
Pgina 41
Pgina 42
Pgina 43
Pgina 44
Pgina 45
Pgina 46
a* mplic *i
Pgina 47
Pgina 48
Pgina 49
USB APIs Suporte a MTP/PTP Real-Time Transport Protocol (RTP) Fragment Breadcrumbs
Pgina 50
Widgets Redimensionveis
Widgets da Homescreen podem ser redimensionados
horizontalmente, verticalmente, ou em ambos os eixos
Pgina 51
Pgina 52
USB APIs
Suporte embutido da plataforma para USB em modo servidor que oferece um API aos desenvolvedores que permite que os aplicativos gerenciem perifricos conectados
Modo servidor confia no controlador apropriado de hardware do USB presente no seu device Android Nos dispositivos que suportam modo servidor, como o XOOM, aplicativos podem usar a API para identificar e se comunicar com os dispositivos conectados
Tambm suporta dois novos tipos bsicos de hardware conectados (depende se o dispositivo Android est atuando como servidor)
Dispositivo USB : hardware conectado que depende de um dispositivo Android atuando como servidor (cmeras, teclado, mouse) Acessrio USB: hardware conectado que possui um servidor controlador USB (robs)
Pgina 53
MTP/PTP Support
Novo pacote android.mtp
Classes MtpDevice, MtpDeviceInfo, MtpConstants
APIs permitem aos aplicativos interagir diretamente com cmeras conectadas e outros dispositivos PTP (Picture Transfer Protocol) conectados via USB modo servidor
Instancie um objeto MtpDevice referenciando um UsbDevice Abra a conexo e transfira os dados Obtenha informaes sobre os dispositivos e os objetos armazenados nele Receba notificaes quando os dispositivos forem conectados ou removidos
O aplicativo Gallery agora suporta PTP, para que usurios possam conectar suas cmeras atravs de portas USB e importem fotos para a Gallery em um nico toque
2010 Motorola Mobility, Inc.
Pgina 54
DEMO
Pgina 55
Artigos tcnicos
Motorola XOOM Programming Tips (Dicas de programao para o Motorola XOOM) Understanding Texture Compression (Entendendo a compresso de texturas)
Especificaes de produtos
http://developer.motorola.com/products/xoom/
Fruns de discusso
- http://community.developer.motorola.com/
2010 Motorola Mobility, Inc.
Pgina 56
Perguntas?
Brasil - #appsum11br Argentina - #appsum11ar Mxico - #appsum11mx community.developer.motorola.com
Pgina 57
Obrigada!!
Pgina 58
AVISOS LEGAIS
AVISOS SOBRE LICENA Exceto quando indicado, o cdigo-fonte de amostra escrito pela Motorola Mobility Inc. e fornecido para voc licenciado conforme descrito adiante. Copyright 2010-2011, Motorola, Inc. Todos os direitos reservados, exceto se indicado explicitamente de outra forma. A redistribuio e utilizao nas formas binria e de fonte, com ou sem modificao, so permitidas contanto que as seguintes condies sejam cumpridas: As redistribuies do cdigo-fonte devem manter o aviso de direitos autorais acima, esta lista de condies e a declarao de iseno de responsabilidade a seguir. As redistribuies em forma binria devem reproduzir o aviso de direitos autorais acima, esta lista de condies e a declarao de iseno de responsabilidade a seguir em sua documentao e/ou outro material fornecido com a distribuio. O nome da Motorola, Inc. e os nomes de seus contribuidores no podem ser usados para endossar ou promover produtos derivados deste software sem permisso especfica prvia por escrito. ESTE SOFTWARE FORNECIDO PELOS TITULARES DOS DIREITOS AUTORAIS E CONTRIBUIDORES "NA FORMA EM QUE SE ENCONTRA" E QUALQUER GARANTIA, EXPRESSA OU IMPLCITA, INCLUINDO, MAS SEM LIMITAO A, GARANTIAS IMPLCITAS DE COMERCIABILIDADE E ADEQUAO A UMA FINALIDADE ESPECFICA, RENUNCIADA. EM CIRCUNSTNCIA ALGUMA O TITULAR DOS DIREITOS AUTORAIS OU CONTRIBUIDORES SERO RESPONSABILIZADOS POR QUALQUER DANO DIRETO, INDIRETO, INCIDENTAL, ESPECIAL, EXEMPLAR OU CONSEQUENTE (INCLUSIVE, SEM LIMITAO A, AQUISIO DE BENS OU SERVIOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPO DE NEGCIOS) SEJA QUAL FOR A CAUSA E SOBRE QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE OBJETIVA OU ATO ILCITO (INCLUSIVE NEGLIGNCIA) DE ALGUMA FORMA DECORRENTE DO USO DESTE SOFTWARE, MESMO SE TIVEREM SIDO AVISADOS DA POSSIBILIDADE DE TAL DANO. Outros cdigos-fonte exibidos nesta apresentao podem ser oferecidos sob outras licenas. Apache 2.0 Copyright 2010, Android Open Source Project. Todos os direitos reservados, a menos se indicado explicitamente de outra forma. Licenciado segundo a Licena do Apache, Verso 2.0 (a "Licena"); voc no pode usar este arquivo, exceto em conformidade com a Licena. Uma cpia da Licena pode ser obtida em http://www.apache.org/licenses/LICENSE-2.0. A menos que seja exigido pela lei aplicvel ou haja acordo por escrito, o software distribudo sob a Licena fornecido "NA FORMA EM QUE SE ENCONTRA", SEM GARANTIAS OU CONDIES DE NENHUM TIPO, expressas ou implcitas. Consulte a Licena para saber as permisses e limitaes regentes de idiomas especficos. Licena Creative Commons Atribuio 3.0 Partes desta apresentao so reproduzidas a partir do trabalho criado e compartilhado pela Google (http://code.google.com/policies.html) e so usadas de acordo com os termos descritos na Licena Creative Commons Atribuio 3.0 (http://creativecommons.org/licenses/by/3.0/).