Baixe o app para aproveitar ainda mais
Prévia do material em texto
07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 1/22 Recursos de uma Aplicação Android Apresentar os principais componentes relacionados à estrutura de um aplicativo Android, que d executados e devem ser processados pelo Android. Introdução O Android segue um modelo de programação um pouco diferente dos dem modelos, mesmo quando falando da linguagem de programação Java. caso dos outros tipos de aplicativos Java, sejam eles web, desktop ou mo (Java ME puro), todos são executados e autocontidos em um ambiente execução, que é a Máquina Virtual Java, mais conhecida como JVM (sigla inglês Java Virtual Machine). Nas aplicações executadas sobre a JVM, qualquer componente da aplica pode interagir com a JVM para acessar recursos do sistema operacional que ela é executada. Assim, a JVM gerencia o uso e o compartilhamento recursos entre os aplicativos que estão sendo executados. Para a JVM aplicação deve ter um ponto em que ela é iniciada (para um aplica desktop, é o método main(), para um Servlet, o método init(), e assim diante). A partir da execução desses métodos, a aplicação pode fazer que outros métodos sejam executados, e eles podem receber eventos 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 2/22 sistema operacional a qualquer momento, mas se a aplicação for encerr esses métodos também são encerrados. Ou seja, todos os métodos depen de um ponto de inicialização do aplicativo, e eles apenas são executa enquanto o aplicativo estiver em uso. Assim, é possível concluir que to esses métodos fazem parte da aplicação e somente podem ser iniciados encerrados de acordo com a operação do aplicativo, e a interação da com eles, depende deles estarem em execução. Para o Android, uma aplicação é composta por Activities, que de modo m simples, pode ser entendida como a tela que o usuário vê, para interagir o aplicativo. Mas ao contrário do que ocorre com as aplicações Java cita no parágrafo anterior, o Android sabe que uma aplicação é composta várias Activities. Mas determina que qualquer Activity possa compartilhada para outras aplicações, no intuito de realizar u determinada tarefa para aquela aplicação. Desse modo, o Android p iniciar uma Activity a qualquer momento, mesmo que a aplicação à qual pertence não esteja sendo executada. Assim, é possível que uma Act esteja sendo executada pelo Android, mesmo que a aplicação propriame dita não esteja em uso. O que não ocorre com as aplicações Java citadas parágrafos anteriores Para que o usuário inicie um aplicativo a partir dos menus, o And solicita que o desenvolvedor indique qual Activity é a atividade principa aplicativo. Assim, quando o usuário tocar no ícone da aplicação, o And executará a atividade principal em primeiro lugar, e a cada tela qu mostrada para o usuário, ele chama uma nova Activity para interagir co usuário. Para controlar a execução de uma Activity, o Android usa alguns recu conhecidos como Intents e Tasks. Este tópico apresenta como esses recu estão relacionados e como funciona a interação entre eles. Construindo o aplicativo Android simple Para desenvolver um aplicativo Android, são necessárias algu ferramentas que permitam editar, compilar e testar o aplicativo. No caso Android, esse kit é composto pela JDK que permite a programação em J (pode ser obtido link http://www.oracle.com/technetwork/java/javase/downloads/index.h 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 3/22 Figura 1 - Tela Inicial de Criação de Projeto no ADT (http://www.oracle.com/technetwork/java/javase/downloads/index.html) pelo ADT (Android Development Tools), que pode ser obtido no ende http://developer.android.com (http://developer.android.com). Ao montar o ambiente para desenvolver para o Android, instale primeir JDK do Java, e depois, o ADT, caso contrário, eles podem não funcio corretamente. Ao terminar de preparar o ambiente de desenvolvimento, é possível come a desenvolver a primeira aplicação para o Android. Para isso, após abri ADT, clique em File -> New -> Android Application Project, para abrir a mostrada na Figura 1. Essa tela é onde se cria um projeto Android, com a seguinte relação campos: 1. Project name: nome do projeto no eclipse. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 4/22 Figura 2 - Tela Inicial de Criação de Projeto no ADT Após Preenchimento 2. Build Target: versão do Android para a qual o projeto será desenvolvido. 3. Application name: o nome da aplicação, nome que aparecerá no dispositivo móvel. 4. Package name: local onde serão criadas as classes (partes de programa) Java. Após preencher esses campos de modo que eles fiquem como apresentad Figura 2, clique no botão Next para avançar à tela seguinte (Figura 3). E tela relaciona os ícones e a atividade que serão usados para inicia aplicativo. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 5/22 Figura 3 - Configuração inicial do arquivo Activity.xml Para este exemplo, nenhum campo pode ser alterado. Por isso, clique botão Next para avançar para a tela apresentada na Figura 4, onde se adicionadas as imagens relacionadas aos ícones. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 6/22 Figura 4 - Definição dos ícones Simplesmente clique no botão Next e avance para a tela apresentada Figura 5. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 7/22 Figura 5 - Definição dos ícones Essa tela configura como a Activity principal aparecerá na tela. Aqui, nã necessário fazer nenhuma alteração para este aplicativo. Por isso, clique botão Next para avançar à próxima tela (Figura 6), onde devem configuradas as informações relativas a essa atividade. Não é necess alterar as informações, e por isso, clique no botão Finish para finaliz criação do projeto. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 8/22 Figura 6 - Definição da atividade Estes passos conduzirão o desenvolvedor à área de trabalho do ADT, on possível editar os código-fonte, e iniciar algumas ferramentas do Andr Aqui, observe o SDK Manager e o AVD Manager, apresentados em desta na Figura 7. O SDK Manager é usado para manter o ambiente de desenvolvime sempre atualizado, enquanto que o AVD Manager é usado parar config os emuladores que serão usados para testar o aplicativo. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 9/22 Figura 7 - Ícones do AVD e SDK Manager Figura 8 - Lista de emuladores do AVD No desenvolvimento de aplicativos Android, o emulador é um utilit usado para simular um dispositivo móvel usando Android. Ele perm executar os aplicativos desenvolvidos, sem ser necessário instalá-los respectivos aparelhos. Para este exemplo, é necessário criar um AVD através do ícone And Virtual Device Manager. Ao clicar nesse ícone, abre-se a tela da Figura 8, lista os emuladores já existentes. Caso essa lista esteja vazia, é porque 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 10/22 Figura 9 - Tela de criação de um novo AVD foi criado nenhum emulador. Para criar um novo emulador, clique no bo New para abrir a tela da Figura 9. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 11/22 Figura 10 - Tela de criação de um novo AVD após preenchimento Nessa tela, clique no botão “New” para criar um novo ambiente de execu e na tela que abrir, preencha os detalhes do AVD como mostra a Figura ou seja, dê um nome para o AVD em “AVD Name”, defina a versão do And para a qual o aplicativo está sendo desenvolvido em “Platform Target”, tamanho para o cartão de memória em SD Size, ou use o tamanho estabelecido, e uma skin, também pode ser usada a skin já estabelecida. último, clique em “CreateAVD”. Ao voltar para a tela da Figura 8, selecione o AVD recém-criado e clique botão Start para iniciar o Emulador. Se ele não estiver em uso, pode dem entre 5 e 10 minutos para ele inicializar, dependendo da capacidade processador e do tamanho da memória RAM definidas para o emulador. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 12/22 Figura 11 - Execução do aplicativo como Android Application. Figura 12 - Tela inicial do log quando o aplicativo é executado Depois que o emulador foi iniciado, é possível testar o aplicativo. Por i clique com o botão direito do mouse sobre o nome do projeto, e no m que abrir, selecione as opções “Run As” e “Android Application”, confo mostra a Figura 11. Isso fará com que o aplicativo seja constru (compilado), aparecendo um log no console do ADT, similar ao mostr pela Figura 12. Se o emulador já estiver sendo executado, este passo pode ser realiz rapidamente. Caso contrário, pode gastar os mesmos 5 a 10 minutos, co ditos anteriormente. Quando o log for similar ao da Figura 13, depois 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 13/22 Figura 13 - Tela do log indicando que o aplicativo foi corretamente instalado e está sendo execu Figura 14 - Aplicativo em execução no emulador aparece a linha “Starting activity com.example.helloworld.MainActivity device emulator-5554”, isso significa que a aplicação pode ser visualiz conforme mostra a Figura 14. Isso indica que o ambiente de desenvolvimento está corretamente instal e totalmente operacional, sendo possível avançar para os próximos tópic 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 14/22 Activities, Intents e Tasks Este primeiro exemplo apresenta o conceito inicial de qualquer aplica Android: a Activity, que é basicamente uma classe gerenciadora de (Interface com o usuário). Todo aplicativo Android começa por uma Act principal, e ela pode conter várias Activities secundárias. O projeto que acaba de ser testado no emulador também possui sua Activ Se você não alterou nada nas figuras de configuração do projeto, a Activity principal é definida pelo código da classe MainActivity, declarada arquivo MainActivity.java, e seu código é apresentado pela listagem a seg 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 15/22 1. 1. package com.example.helloworld; 2. 2. 3. 3. import android.os.Bundle; 4. 4. import android.view.LayoutInflater; 5. 5. import android.view.Menu; 6. 6. import android.view.MenuItem; 7. 7. import android.view.View; 8. 8. import android.view.ViewGroup; 9. 9. import android.os.Build; 10. 10. 11. 11. public class MainActivity extends ActionBarActivity { 12. 12. 13. 13. @Override 14. 14. protected void onCreate(Bundle savedInstanceState) { 15. 15. super.onCreate(savedInstanceState); 16. 16. setContentView(R.layout.activity_main); 17. 17. 18. 18. if (savedInstanceState == null) { 19. 19. getSupportFragmentManager().beginTransaction() 20. 20. .add(R.id.container, new PlaceholderFragment()) 21. 21. .commit(); 22. 22. } 23. 23. } 24. 24. 25. 25. 26. 26. @Override 27. 27. public boolean onCreateOptionsMenu(Menu menu) { 28. 28. getMenuInflater().inflate(R.menu.main, menu); 29. 29. return true; 30. 30. } 31. 31. 32. 32. @Override 33. 33. public boolean onOptionsItemSelected(MenuItem item) { 34. 34. int id = item.getItemId(); 35. 35. if (id == R.id.action_settings) { 36. 36. return true; 37. 37. } 38. 38. return super.onOptionsItemSelected(item); 39. 39. } 40. 40. 41. 41. public static class PlaceholderFragment extends Fragment { 42. 42. 43. 43. public PlaceholderFragment() { 44. 44. } 45. 45. 46. 46. @Override 47. 47. public View onCreateView(LayoutInflater inflater, ViewGroup container, 48. 48. Bundle savedInstanceState) { 49. 49. View rootView = inflater.inflate(R.layout.fragment_main, container 50. 50. false); 51. 51. return rootView; 52. 52. } 53. 53. } 54. 54. 55. 55. } 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 16/22 Como pode ser observado, ela é um subtipo da classe Activity, qu fornecida pelo Android, para definir um conjunto básico de métodos, que usado por ele para controlar cada uma das Activities, e os recursos que utilizam. A linha 14 desse código declara o método onCreate(), que é o ponto em q classe MainActivity é iniciada, ou seja, é quando o ciclo de vida de u Activity começa, de acordo com o layout contido nos arqu activity_main.xml e fragment_main.xml, localizados na pasta res -> layout A Activity é a menor parte de um aplicativo Android, uma aplicação p conter várias Activities, sendo uma delas a principal, mas qualquer Activ capaz de ser iniciada pelo Android, e ter seu uso compartilhado com o aplicação. Isso ocorre porque uma Activity é totalmente independente demais. Isso faz com que uma aplicação Android fuja um pouco do modelo norma programação orientada a objetos, pois, para iniciar uma Activity, ao in criar uma instância dela, e chamar os métodos que ela disponibiliza, tarefa é feita através de um mecanismo conhecido como Intent. Uma das razões do uso do Intent é que uma aplicação Android poderia ga muita memória no gerenciamento de referências de objetos, mecanismo que se apoia a orientação a objetos. Assim, ao invés de criar uma instância de uma Activity, uma aplica descreve um Intent que identifica qual é o serviço que ele precisa executa esse Intent consulta o sistema operacional para saber qual é a Activity corresponda ao Intent. No exemplo realizado, o ícone da aplicação HelloWorld fica acessível pa usuário através do menu do dispositivo. Para o Android, este men executado por uma Activity chamada Android Home Screen. Quand usuário toca no ícone do aplicativo, o Android Home Screen cria um In que chamará a atividade principal da aplicação HelloWorld, que se ch MainActivity. Ao ser inicializada, a MainActivity pode criar seu próprio conjunto intents, que solicitarão ao Android vários serviços. Essa encadeamento comunicação criado pela Intent é o que se chama de Task. Para o Android, uma Task é um encadeamento de Activities pertencent várias aplicações, para realizar um determinado processo. Por exempl aplicativo HelloWorld pode usar a câmera para tirar uma foto do dono 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 17/22 dispositivo móvel, para compor uma mensagem, usando um fluxo de inten Como pode ser observado, algumas dessas tasks são executadas às vista usuário, mas algumas não, por exemplo, a que se comunica com o telef para enviar a mensagem. Intent-Filters Em alguns casos, uma aplicação espera que suas mensagens envia recebam respostas das atividades ou serviço que elas iniciaram. E respostas são conhecidas como intent-filter (ou filtros de mensagem). Ele é usado para declarar o que seu criador é capaz de fazer. Como podem ser gerados por atividades e serviços, isso significa que ele decla tarefa que eles executam, e declara quais são os tipos de receptores alertas que são possíveis de serem identificados, quando usados receptores e alertas. Serviço Outro exemplo de tasks que não aparecem para o usuário final é o toca de mp3 que reproduz os arquivos de áudio, minimizado em backgrou enquanto o usuário lê um livro eletrônico, ou consulta uma página web. Quando uma aplicação fica nessa situação, sendo executada em backgrou costuma receber o nome de Service, que o Android usa para se referenci aplicações que estãosendo executadas, mas que não estão visíveis par usuário. Os melhores exemplos disso, o receptor de chamadas telefôni que interrompe as demais aplicações para mostrar que há uma cham para ser atendida. É possível fazer isso com os serviços, pois eles são similares às ativida ou seja, um serviço é uma herança da classe Service, do mesmo modo uma atividade é uma herança da classe Activity, e deve ser construída mesmo modo, para prover os métodos que controlam seu ciclo de vida, são os mesmos das atividades. Isso significa dizer que um serviço pode ser iniciado, interromp reiniciado, finalizado, etc. Manifesto 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 18/22 Para controlar o que compõe uma aplicação, o Android usa um arqu chamado manifesto, que descreve todos os componentes que fazem parte aplicativo. Desse modo, a runtime do Android reconhece a estrutura inte desse aplicativo, e a compartilha com todas as outras aplicações Android estão em execução no dispositivo em questão, sendo capaz de execut aplicativo dentro de uma ambiente bem controlado e gerenciado. O manifesto é um arquivo em formato XML, com o n AndroidManifest.xml, e pode ser encontrado dentro da pasta raíz do pro no ADT, e sua estrutura básica é apresentada do seguinte modo: 1. <?xml version="1.0" encoding="utf-8"?> 2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3. package="com.example.helloworld" 4. android:versionCode="1" 5. android:versionName="1.0" > 6. 7. <uses-sdk 8. android:minSdkVersion="8" 9. android:targetSdkVersion="19" /> 10. 11. <application 12. android:allowBackup="true" 13. android:icon="@drawable/ic_launcher" 14. android:label="@string/app_name" 15. android:theme="@style/AppTheme" > 16. <activity 17. android:name="com.example.helloworld.MainActivity" 18. android:label="@string/app_name" > 19. <intent-filter> 20. <action android:name="android.intent.action.MAIN" /> 21. 22. <category android:name="android.intent.category.LAUNCHER" /> 23. </intent-filter> 24. </activity> 25. </application> 26. 27. </manifest> Cada uma dessas tags XML define um parâmetro de inicialização par aplicativo, que a runtime do Android deve prover, quando a aplicaçã usada, e podem ser facilmente detectados como eles foram definidos atra das telas de criação do projeto no ADT. Por exemplo, note as tags dentro da tag intent-filter: 1. <action android:name="android.intent.action.MAIN"/> 2. <category android:name="android.intent.category.LAUNCHER" /> 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 19/22 Elas definem os intents que indicam para o Android que a classe se declarada é a atividade principal deste projeto, e que ela entra nu categoria de atividades a serem iniciadas a partir da aplicação Android Ho Screen, e podem ser usadas como exemplo para a declaração de intents novas atividades. Se você já fez o download de um aplicativo Android no Google Play, dev lembrar que no momento do download, o Android informa que o aplica necessita acessar serviços como Bluetooth, Internet, Lista de Contatos, e você precisa aceitar que o aplicativo use esses serviços, para que o aplica possa ser baixado. Essas informações são obtidas do arquivo de manifesto aplicação, e são escritas conforme o exemplo a seguir, que indica qu aplicativo usa os serviços de BlueTooth: 1. <uses-permission android:name="android.permission.BLUETOOTH" android:label="BLUETOOTH" 2. <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> O manifesto garante com que todos os componentes de uma aplicação se executados dentro de um mesmo processo Linux, que é criado pela aplica quando o aplicativo é iniciado. Processos e Threads no Android O processo do Android indica onde um determinado componente de aplicativo deve ser executado. Os componentes podem ser ativida serviços, receptores e provedores, e são identificados no manifesto p respectivas tags xml: Essas devem ter uma propriedade android:process que especifica o processo executa o componente, ou quando o componente pode ser compartilh por vários processos. Essa propriedade também pode ser usada na para definir um valor padrão para todos os seus componente Em computação, a thread é a forma pela qual o sistema operacional proc um aplicativo, desde o momento em que seu componente principa executado, e eles são capazes de enviar eventos gerados pelo usuário pelos serviços do sistema operacional, à aplicação. O Android cria uma thread quando ele executa uma aplicação, e todo componentes dessa aplicação são executados num único proce Normalmente, esses componentes fazem parte dos pacotes android.widg 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 20/22 android.view, e costumam gerar, ou responder, a eventos relacionado interface de usuário, e por isso, a thread costuma ser chamada de UI Thre Além da UI Thread, há também as Background Threads, que são serviço atividades sendo executadas enquanto o usuário está usando ou aplicativo, e as Worker Threads, que processa a aplicação que atualmente em uso pelo usuário. Conclusão Neste tópico foram apresentados os componentes que fazem parte de u aplicação Android, definidos pelo próprio sistema operacional, e que dev constar de todas as aplicações, para que ela seja executada corretament se necessário, compartilhar alguns de seus recursos com outras aplicaçõe Estes componentes não têm relação direta com o que o aplicativo pre fazer, mas sim para definir o que eles precisam do Android, para poderem executados. Dica: Para fixar os conceitos e conferir seu aprendizado, realize os exercí propostos. Quiz Exercício Final Recursos de uma Aplicação Android INICIAR 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 21/22 Referências LEE, Wei-Meng; COSTA, Angelo Giuseppe Meira. Introdução ao desenvolvimento de aplicativos para o Android. Rio de Janeiro: Ciência Moderna, 2011. OGLIARI, Ricardo da Silva; BRITO, Robison Cris. Android: do básico ao avançado. Rio de Janeiro: Ciência Moderna, 2014. SAMPAIO, Cleuton. Manual do indie game developer. Rio de Janeiro: Ciên Moderna, 2013. TERUEL, Evandro Carlos. Webmobile: desenvolva sites para dispositivos móveis com tecnologias de uso livre. Rio de Janeiro: Ciência Moderna, 20 Avalie este tópico ANTERIORMercado de aplicações móveis PRÓXIMOApresentação das principais APis presentes na estrutura do Android Índice Biblioteca (http://alpha.u ninove.br/F? func=login- session) Portal Uninove (http://www un ® Todos os direitos reservados Ajuda? (https://av a.uninove.b r/seu/AVA/ help/help.p hp? idCurso=) 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 22/22 (http://www.un inove.br) Mapa do Site
Compartilhar