Android Aula 1

11,068 views

Published on

Aula 1 de Android para a disciplina Tecnologias para Dispositivos Móveis da FATEC (João Pessoa - PB)

Published in: Technology
3 Comments
16 Likes
Statistics
Notes
No Downloads
Views
Total views
11,068
On SlideShare
0
From Embeds
0
Number of Embeds
441
Actions
Shares
0
Downloads
782
Comments
3
Likes
16
Embeds 0
No embeds

No notes for slide

Android Aula 1

  1. 1. Erisvaldo Gadelha Saraiva JúniorFaculdade de Tecnologia de João Pessoa (FATEC-JP)Especialização em Desenvolvimento para Dispositivos MóveisDisciplina: Tecnologias para Dispositivos MóveisAndroid E-mail: erisvaldojunior@gmail.com Site: http://erisvaldojunior.com Twitter: @erisvaldojunior
  2. 2. Sobre mim Empreendedor Yupi Studios (http://yupistudios.com); Desenvolvedor Mobile (LAViD); Mestrando em Informática (UFPB); Analista de Sistemas (Cehap).
  3. 3. Sobre a Yupi Studios www.yupistudios.com
  4. 4. Games (MinerMan)
  5. 5. Aplicativos (Pump Me Up!)
  6. 6. Soluções Corporativas (Cardápio Digital)
  7. 7. O que será exposto na aula? Conceitos Introdutórios;Organize with Sections Mercado Mobile; Expor as Tecnologias e Tendências; Introduzir o Android e preparar o ambiente de desenvolvimento.
  8. 8. Era da Computação UbíquaConceitos Introdutórios
  9. 9. Computação Móvel / Pervasiva / UbíquaConceitos Introdutórios
  10. 10. Computação Móvel / Pervasiva / UbíquaConceitos Introdutórios
  11. 11. Computação em Nuvem (Cloud Computing)Conceitos Introdutórios
  12. 12. Computação em Nuvem (Cloud Computing)Conceitos Introdutórios
  13. 13. Conceitos Introdutórios Realidade Aumentada
  14. 14. Roteiro da Aula VISÃO GERAL PLATAFORMAS E A PLATAFORMA DO MERCADO TENDÊNCIAS ANDROID Entendendo o Mundo da Mobilidade
  15. 15. VISÃO GERAL DOMERCADO Números do Mercado Mobile no Brasil e no Mundo
  16. 16. O Mercado Mobile Mercado brasileiro de telefonia móvel;Organize with Sections Números do mercado internacional; Mercado de jogos (Brasil e mundo).
  17. 17. Celulares no Brasil (2007 a 2009)
  18. 18. Market Share das operadoras no Brasil (2007 a 2009)
  19. 19. Mercado brasileiro de celulares (2010) 202 milhões e 944 mil celulares Crescimento de 16,7%; 104,7 celulares a cada 100 habitantes. Operadoras Vivo - 29,7% Claro - 25,4% TIM – 25,1% Oi – 19,4%
  20. 20. Celulares no mundo (2000 a 2009)
  21. 21. Principais mercados de celular no mundo (2008 e 2009)
  22. 22. Operadoras de telefonia no mundo (2008 e 2009)
  23. 23. Market Share dos fabricantes (2005 a 2007)
  24. 24. Market Share dos fabricantes (2009 e 2010)
  25. 25. Mercado americano de jogos para dispositivos móveis
  26. 26. Mercado mundial de jogos para dispositivos móveis Gartner
  27. 27. Plataformas e Tendências Plataformas de Mobilidade e Tendências do Mercado
  28. 28. SOs para Desenvolvimento (no Presente) iOS Android RIM SYMBIAN PALM OS Windows Mobile MAEMO
  29. 29. iOS (Apple) iPod, iPhone (2007) e iPad (2010); Baseado no Mac OS X (Objective-C); Kit de desenvolvimento exclusivo para Mac OS; Aplicativos exclusivamente na Apple App Store.
  30. 30. Android (Open Handset Alliance, liderada pelo Google) Plataforma aberta baseada em Linux; Android Development Tools (ADT) Plugin para Eclipse; Desenvolvimento em Java (Linux / Windows / Mac OS); 1º smartphone: HTC G1 (2008); 1º tablet: Samsung Galaxy Tab (2010).
  31. 31. Plataformas para Desenvolvimento (no Presente) JavaME Flash Lite PyS60 BREW
  32. 32. JavaME Quase 2 bilhões de aparelhos; Grande comunidade de desenvolvedores; Atingiu 95% dos aparelhos em 2007.
  33. 33. Comparativo entre JavaME e Flash Lite
  34. 34. Comparativo entre Tecnologias
  35. 35. SOs para Desenvolvimento (Apostas para o Futuro) Windows BADA MeeGo Phone 7
  36. 36. Mercado Mobile em 2010 (Divisão dos SOs) Segundo a AdMob, dados de 2010, o Android ocupa a segunda posição entre os sistemas operacionais para smartphone no mundo, possuindo 26% do mercado e atrás apenas do iOS, que detém 40%.Organize with Sections
  37. 37. Mercado Mobile em 2010 (Crescimento dos SOs) Um aspecto interessante, porém, é o crescimento do Android no mercado. O SO vem em uma ascendente contínua, ao contrário do iOS, que vem oscilando, e do Symbian OS, que perdeu mercado.Organize with Sections
  38. 38. Mercado Mobile em 2010 (Divisão dos Fabricantes) A AdMob também mostra que a Apple (aparelhos iOS) possui a maior fatia de smartphones do mercado. A Nokia (aparelhos Symbian e Maemo) detém a segunda posição.Organize with Sections
  39. 39. Android deve superar iOS em breveVárias pesquisas e especialistas apontam que o Android deve se tornarmais popular que o iOS nos próximos anos. Android deve superar sistema operacional do iPhone em 2012, diz estudo. Organize with Sections http://www.tecnologia3g.com.br/site/pt/page/noticias_detalhe.asp?cod=261 Android é a plataforma que mais cresce, diz consultoria http://tecnologia.ig.com.br/noticia/2010/11/03/android+e+a+plataforma+que +mais+cresce+diz+consultoria+9956087.html Co-fundador da Apple (Steve Wozniak) acredita que Android ganhará corrida entre smartphones http://olhardigital.uol.com.br/produtos/digital_news/co-fundador-da-apple- acredita-que-android-ganhara-corrida-entre-smartphones/14935 Demanda por desenvolvedores Android cresceu 710% em um ano http://imasters.com.br/noticia/18931/carreira/demanda_por_desenvolvedore s_android_cresceu_710_em_um_ano/
  40. 40. Lojas de Aplicativos para Dispositivos Móveis (App Stores) Modelo Antigo (antes das App Stores) Desenvolvedor / Publisher / Grande Empresa OperadorasPequena Empresa A porcentagem final para o desenvolvedor independente ou pequena empresa acabava sendo menor que 20% do total.
  41. 41. Lojas de Aplicativos para Dispositivos Móveis (App Stores) Novo Modelo (era das App Stores)Desenvolvedor / Loja de aplicativos do Empresa Fabricante ou Operadora A porcentagem final para o desenvolvedor independente ou empresa agora gira em torno de 70% do total.
  42. 42. Apple App Store Loja de aplicativos para iOS (iPod, iPhone e iPad) gerenciada pela Apple e disponível através dos próprios aparelhos. Lançada em julho de 2008; 340 mil aplicativos e 10 bilhões de downloads até janeiro de 2011;App Stores Disponível em cerca de 90 países; Share de 70% Desenvolvedor e 30% Apple; Desenvolvedor paga inscrição e anuidade no valor de U$ 99,00.
  43. 43. Google Android Market Loja de aplicativos para Android gerenciada pela Google e disponível através dos próprios aparelhos. Lançado em outubro de 2008; Mais de 200 mil aplicativos e 3 bilhões de downloads até janeiro de 2011;App Stores Disponível em cerca de 48 países; Share de 70% Desenvolvedor e 30% Google; Desenvolvedor paga taxa única de inscrição no valor de U$ 25,00.
  44. 44. Comparativo Android Market X Apple App Store Dados referentes ao ano de 2009, quando a distância entre Android Market e a Apple App Store ainda era muito grande.Organize with Sections
  45. 45. Comparativo Android Market x Apple App StoreA média de downloads da Apple App Store é superior a do AndroidMarket, bem como a porcentagem de usuários que compram aplicações(dados de 2009). Organize with Sections
  46. 46. Nokia Ovi Store Loja de aplicativos para dispositivos Nokia (Symbian, QT, Flash Lite e JavaME) e disponível através dos próprios aparelhos. Lançada em maio de 2009; 50 mil aplicativos e média de 3 milhões de downloads por dia (janeiro de 2011);App Stores Disponível em mais de 200 países; Share de 70% Desenvolvedor e 30% Nokia; Desenvolvedor paga taxa única de inscrição de apenas 1 (um) euro.
  47. 47. Comparação entre App Stores (custo para desenvolvedores)
  48. 48. Relação de App Stores (distimo.com)
  49. 49. In-App Payment é uma tendência Jogos e aplicativos são gratuitos à priori, embora vários recursos possam ser comprados dentro do próprio aplicativo.App Stores
  50. 50. A plataforma Android Introdução ao Android, Arquitetura e Layouts
  51. 51. Definição do AndroidPilha de Software para Dispositivos Móveis queinclui um Sistema Operacional, um Middleware eaplicações-chave.O Android SDK provê ferramentas e APIs para odesenvolvimento de aplicações na plataformaAndroid usando a linguagem de programação Java.
  52. 52. Recursos do Android• Biblioteca Gráfica 2D e Suporte a 3D (OpenGL ES 1.0);• SQLite;• Suporte a Mídias diversas (MPEG-4, H.264, MP3, AAC, AMR, JPG, PNG,GIF);• Bluetooth, EDGE, 3G e WiFi (dependente do hardware);• Câmera, GPS, Bússola e Acelerômetro (dependente do hardware);• Para desenvolvedores: Android Development Tools (ADT) Plugin paraEclipse.
  53. 53. História do Android Julho de 2005: Google comprou a startup Android; Novembro de 2007: Google anunciou a Open Handset Alliance (OHA) e o Android; Ainda nesse mês, liberou a primeira versão do Android SDK.
  54. 54. História do Android Outubro de 2008: Android se torna Open Source; Ainda nesse mês, lançado o primeiro smartphone com Android: o HTC G1; Lançado o primeiro Android Developer Phone (ADP), baseado no G1.
  55. 55. História do Android Julho de 2009: HTC Hero, concorrente direto do iPhone; Novembro de 2009: Motorola Droid, 1 milhão de unidades em pouco mais de dois meses; Chegou no Brasil como Motorola Milestone e foi sucesso de vendas.
  56. 56. História do Android Em 2010, dezenas de ótimos smartphones Android foram lançados; Setembro de 2010: Samsung Galaxy Tab, primeiro tablet a concorrer com o iPad; Dezembro de 2010: Quarto ADP lançado, o Samsung Nexus S.
  57. 57. Versões do Android AndroidManifest.xml
  58. 58. Android 1.1 (fevereiro de 2009)•Alarm Clock•API Demos•Browser•Calculadora•Camera•Contatos•Dev Tools•Dialer•Email•Maps (e StreetView)•Mensagem•Música•Imagens (Galeria)•Configurações
  59. 59. Android 1.5 Cupcake (maio de 2009)Grande evolução na interface (UI),adicionando as seguintes novidades:•Gravação de vídeos•Bluetooth A2DP•Conexão Bluetooth Automática•Upload de vídeos para YouTube e Picasa•Copiar e Colar
  60. 60. Android 1.6 Donut (setembro de 2009)O HTC Hero trazia essa versão, que incluia onovo Android Market, além das seguintesmelhorias:•Integração de câmera, gravação de vídeos egaleria•Busca por gestos e voz•Integração de aplicativos•Grande melhoria no Text-To-Speech
  61. 61. Android 2.0/2.1 Eclair (outubro de 2009)Uma das versões mais usadas até hoje.•Desempenho otimizado•Mais opções de tamanho e resolução de tela•UI bastante melhorada•Suporte ao Exchange•Live wallpapers•Teclado virtual melhorado•Bluetooth 2.1•Google Maps 3.1.2
  62. 62. Android 2.2 Froyo (maio de 2010)•Suporte completo ao Flash 10.1•Desempenho bastante otimizado (até 5x)•Hotspot para até 8 aparelhos•Home Screen melhorada (atalhos dedicados)•Melhoria do Exchange•Melhoria da câmera•Salvar aplicativos no cartão de memória•Discagem por bluetooth
  63. 63. Android 2.3 Gingerbread (dezembro de 2010)•Melhoria do Copiar e Colar•Interface melhorada•Suporte a NTFC•Teclado multitouch•Suporte a SIP•Gerenciador de Downloads•Suporte a câmera frontal e vídeo-conferência
  64. 64. Google App Inventor for Android Criação de aplicações para Android visualmente, sem aApp Inventor for Android necessidade de escrever código.
  65. 65. Google App Inventor for Android Orientado a blocos, basta definir as suas propriedades visuais eApp Inventor for Android as suas ações para determinados eventos.
  66. 66. App Inventor for Android Google App Inventor for Android
  67. 67. Arquitetura do Android
  68. 68. Arquitetura do Android Applications Conjunto de aplicações-chave nativas do Android, incluindo um cliente de e-mail, gerenciador de SMS, calendário, mapa, navegador, gerenciador de contatos e outros. Todas essas aplicações foram escritas em Java. Application Framework Desenvolvedores tem acesso completo às mesmas APIs que as aplicações-chave. O framework provê um conjunto de Views que podem ser utilizados para construir a interface da aplicação, incluindo listas, tabelas, caixas de texto, botões e até mesmo um browser embutido. Disponibiliza também Content Providers que permitem o acesso a dados de outras aplicações (como o gerenciador de Contatos). Há, ainda, o Resource Manager (provê acesso a recursos como imagens e arquivos de layout), o Notification Manager (permite que a aplicação mostre avisos personalizados) e o Activity Manager (gerencia o ciclo de vida da aplicação e a sua navegação).
  69. 69. Arquitetura do Android Libraries Conjunto de bibliotecas C/C++ utilizadas por vários componentes do Android. Essas bibliotecas provêem recursos que são expostos aos desenvolvedores através de sua camada sobrejacente: Application Framework. Android Runtime Cada aplicação no Android roda em um processo diferente no Linux e para cada processo é criada uma instância da máquina virtual Dalvik. Essa máquina virtual foi criada de forma que um dispositivo possa executar múltiplas instâncias de forma eficiente. As classes compiladas da aplicação são transformadas para o formato .dex (Dalvik Executable), otimizado para uma mínima utilização de memória. A Dalvik VM interage diretamente com o kernel Linux para execução de funcionalidades subjacentes como tratamento de concorrência e gerenciamento de memória.
  70. 70. Noções sobre aplicações Android As aplicações são escritas em Java e o seu código compilado, juntamente com os recursos que a aplicação utilizada, são empacotados em um arquivo .apk pela ferramenta aapt. É esse arquivo .apk que é usado para distribuir a aplicação e instalá-la nos dispositivos Android; Por padrão, cada aplicação é executada como um processo separado, com ID único e máquina virtual própria, isolando o seu código das demais aplicações.
  71. 71. Componentes da AplicaçãoUm recurso fundamental do Android é o reuso de componentes. Caso umaaplicação precise disponibilizar uma lista de imagens com scrolling e outraaplicação apresenta tal componente e o disponibilizou para as demais, pode-se invocar esse componente.Devido a essa organização dos aplicativos em componentes, as aplicaçõesAndroid não possuem um único ponto de entrada (não há um método main(),por exemplo). Ao invés disso, as aplicações apresentam componentesessenciais que o sistema pode instanciar e executar quando necessário. Essescomponentes podem ser de quatro tipos: Activities (apresenta uma interface visual para o usuário) Services (roda em segundo plano por um período de tempo indeterminado) Broadcast Receivers (recebe e reage a eventos do sistema) Content providers (dados do aplicativo disponíveis para os demais)
  72. 72. Ativando e desativando componentesContent Providers são ativados por meio de uma requisição de umContentResolver. Os demais componentes (Activities, Services e BroadcastReceivers) são ativados por mensagens assíncronas denominadas intents. Trata-se de um objeto da classe Intent que armazena o conteúdo da mensagem. Paraactivities e services, o objeto apresenta o nome da ação que está sendorequisitada bem como o endereço do dado em que atuará, além de outras coisas.No caso de uma Activity, por exemplo, pode conter uma requisição paraapresentar uma imagem ao usuário ou permitir que o usuário edite algum texto.Já para Broadcast Receivers, o objeto Intent pode anunciar que um botão dacâmera foi pressionado, por exemplo. Content Provider e BroadCast Receiver não precisam ser desativados, uma vez que permanecem ativos somente enquanto estão respondendo requisições. Já Activities e Services podem permanecer em execução por um longo período de tempo, daí a necessidade de finalizá-los através dos métodos finish() e stopSelf(), respectivamente.
  73. 73. ActivitiesO componente mais comum de uma aplicação é um Activity. É implementadocomo uma subclasse de Activity e uma aplicação pode conter uma ou maisactivities. Cada qual representa uma interface visual e uma delas é marcadacomo sendo a inicial que deve ser apresentada quando a aplicação é iniciada.Mover-se de uma Activity para outra consiste em fazer com que a Activity atualinvoque a próxima.Cada Activity possui uma janela padrão para O visual da janela é compostodesenhar. Normalmente a janela ocupa a tela por uma hierarquia de views,toda mas também pode ser menor e flutuar objetos derivados da classesobre outras janelas. Uma Activity pode base View. As views tambémconter janelas adicionais, como por exemplo são responsáveis porum dialog que exige uma resposta do usuário responder às ações do usuárioou mostra um aviso quando um dado item é direcionadas ao seu espaço.selecionado.
  74. 74. Activities e TasksConforme dito anteriormente, uma Activity pode iniciar outra, inclusive uma quepertença a outro aplicativo. Por exemplo: uma aplicação deseja mostrar o mapade algum local. Já existe uma Activity que o faz, então tudo o que a sua Activityprecisa fazer é chamar o método startActivity() passando como parâmetro oobjeto da classe Intent com as informações necessárias. O mapa será mostrado e,quando o usuário pressionar a tecla voltar, sua Activity será mostrada novamentena tela. Para o usuário, isso é transparente. O Android mantém ambas as activities na mesma Task. Uma Task, para o usuário, é como se fosse uma aplicação. Tecnicamente é um grupo de Activities relacionadas que foram adicionadas em uma pilha. A base da pilha é a primeira Activity que é mostrada quando a Task é iniciada, enquanto que o topo é a Activity que está sendo executada no momento, ou seja, que está recebendo o foco das ações do usuário.
  75. 75. Ciclo de vida de uma ActivityBasicamente, uma Activity possui três estados: Ativo: quando a Activity está no topo da pilha (visível na tela e recebendo as ações do usuário); Pausado: quando a Activity perdeu o foco mas permanece visível ao usuário. Ou seja, há outra Activity no topo que é transparente ou não ocupa toda a tela; Parado: quando a Activity está ofuscada por outra. Mantém o estado mas pode ser eliminada pelo sistema em caso de falta de memória.
  76. 76. Ciclo de vida de uma Activity
  77. 77. ServicesDiferentemente de activities, os services não possuem interface e executam emsegundo plano por um período de tempo indeterminado. Cada serviço é umaclasse que herda de Service. Um exemplo clássico de Service é um tocador de músicas. A aplicação deve consistir de uma ou mais activities que permitem ao usuário selecionar as músicas e começar a tocá-las. Contudo, a execução das músicas em si não faz parte da Activity mas sim de um Service, uma vez que o usuário espera que a música continue a ser tocada após sair da tela.
  78. 78. Ciclo de vida de um Service
  79. 79. Broadcast ReceiversComponente que recebe e reage a anúncios de broadcast, geralmente oriundosdo sistema. Cada receiver é uma classe que herda de BroadCastReceiver. Mudança no fuso horário, anúncio de bateria fraca e mudança da linguagem por parte do usuário são exemplos de anúncios que podem ser capturados por Broadcast Receivers. Uma aplicação pode conter quantos receptores quiser. Os receptores podem iniciar uma Activity ou utilizar o NotificationManager para alertar o usuário (acender a luz do aparelho, vibrar, executar um som, etc).
  80. 80. Ciclo de vida de Broadcast ReceiversQuando uma mensagem de broadcast chega ao receptor, o Android invoca ométodo onReceive(), passando como parâmetro um objeto Intent contendo amensagem. O Broadcast Receiver fica ativo apenas enquanto está executando esse método.
  81. 81. Content ProvidersComponente que torna um conjunto específico de dados da aplicação disponívelpara outras aplicações. Cada provider é uma classe que herda de ContentProvidere disponibiliza um conjunto padrão de métodos para que outras aplicaçõespossam recuperar e armazenar dados do tipo que o provedor controla. As aplicações não podem acessar os métodos de um Content Provider diretamente. Para isso, elas precisam de um objeto ContentResolver, o qual pode conversar com qualquer Content Provider.
  82. 82. Como o Android suporta múltiplas telas? Desde o Android 1.6, a plataforma provê suporte a múltiplosSuporte a Múltiplas Telas tamanhos de tela e resoluções, adequando-se aos muitos tipos e tamanhos de dispositivos com Android. Assim, a partir do Android 1.6, a plataforma divide a infinidade de tamanhos de tela e resoluções suportadas em: • Um conjunto de três tamanhos: large, normal e small; • Um conjunto de três densidades: hdpi (high), mdpi (medium) e ldpi (low). Dessa forma, a aplicação pode prover layouts e imagens para qualquer um desses três conjuntos, sem a necessidade de trabalhar com o tamanho físico real da tela do aparelho. Em tempo de execução, o Android carrega o conjunto adequado de recursos, baseado no dispositivo em questão.
  83. 83. Suporte a Múltiplas Telas
  84. 84. Suporte a Múltiplas Telas
  85. 85. Suporte a Múltiplas Telas Organização de pastas de layout e imagens para uma aplicação que, em tese, suporta todos os tamanhos de telas e resoluções.
  86. 86. Views e ViewGroups em AndroidEm Android, todos os componentes de interface gráfica são representados porsubclasses de android.view.View que representam os componentes gráficoscomo TextView, Button, TextEdit, RadioButton, CheckBox, etc. Além da classeandroid.view.ViewGroup, que representa um container de views e também deViewGroups. Ela é a classe base para componentes de layouts, comoLinearLayout, RelativeLayout, AbsoluteLayout, FrameLayout, TableLayout, etc.
  87. 87. Hierarquia de classes de UI
  88. 88. Layouts e Layout Params em AndroidPara que os componentes possam ser acomodados de acordo com o layout deseu pai, os mesmos devem manter uma relação de obediência. Sendo assim, cadafilho deve configurar os seus parâmetros de layouts, por meio da classeViewGroup.LayoutParams, que permite que estes determinem suas propriedadesde posição e tamanho referente ao layout de seus pais.
  89. 89. LinearLayoutO layout básico, padrão quando da geração de um .XML de layout no Android, é oLinearLayout. Como o próprio nome diz, ele dispõe os componentes linearmenteem uma unica direção definida pelo atributo android:layout_orientation.
  90. 90. LinearLayout e LayoutParamsandroid:layout_gravity: similar ao float do CSS, ogravity define a posição do conteúdo doLinearLayout na tela, podendo-se usar top,bottom, left, right, center, center_vertical,center_horizontal, etc. Pode-se usar combinaçõesatravés do conector “|”. Por exemplo: “bottom |right”.android:layout_weight: indica quanto do espaçoextra no LinearLayout será alocado para a visãoassociada aos LayoutParams. Ou seja, pode-sedividir a tela entre os layouts atribuindo a cadaum deles um peso que define qual deles terámaior espaçamento e, casa todos tenham omesmo peso, a tela é dividida igualmente. Aplicação de peso (weight) em um componente do LinearLayout
  91. 91. LinearLayout (Código)
  92. 92. FrameLayoutArranja seus filhos de acordo com uma pilha de componentes que sãoadicionados, sendo que o topo da pilha contém o objeto que foi adicionado porúltimo. Pode-se usar quando se tem várias imagens e uma é sobreposta pelaoutra (como um slide de imagens) conforme vão sendo adicionadas. Criando uma pilha de componentes com FrameLayout Sobreposição de componentes com FrameLayout
  93. 93. FrameLayout (Código)Nota: O FrameLayout é usado comumente a partir de uma de suas subclasses,tais como ImageSwitcher, ViewAnimator, ViewSwitcher, ScrollView, TabHost, etc.
  94. 94. AbsoluteLayoutImplementa um plano cartesiano e posiciona os componentes em coordenadas X,Y de forma absoluta. Posicionando componentes no AbsoluteLayout
  95. 95. AbsoluteLayout (Código)
  96. 96. RelativeLayoutOs componentes são ajustados através de relacionamentos entre si ou ao seu pai.
  97. 97. RelativeLayout (Código)
  98. 98. TableLayoutComporta seus filhos em linhas e colunas. Cada filho é representado por umTableRow (uma espécie de LinearLayout na horizontal) que permite que uma ouais células sejam adicionadas horizontalmente, sendo que cada célula podeconter um único View.
  99. 99. TableLayout (Código)
  100. 100. What’s Your Message?OBRIGADO!

×