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/14 Introdução ao desenvolvimento de aplicaç Android e seus Componentes Apresentar os conceitos iniciais para no que diz respeito ao desenvolvimento de sistema móvei Android. Introdução O Android é um sistema operacional para dispositivos móveis, baseado Linux. Seu uso mais conhecido é em Tablets PC e SmartPhones, e isso oc em praticamente 190 países ao redor do mundo, ou seja, é praticame possível encontrar um usuário de Android em qualquer canto do mundo. Em termos de usuários, o Android é a maior base instalada de um sist operacional móvel, crescendo na razão aproximada de um milhão de no usuários ao dia, ou seja, praticamente um milhão de pessoas ligam s aparelhos Android pela primeira vez, procurando os mais variados tipo aplicações, jogos e conteúdos digitais. Esses números incentivam os desenvolvedores de software a investi nesse nicho de mercado, e para eles, o Android oferece uma plataforma p criar os aplicativos e jogos procurados pelos usuários do Android. A disso, a Google Play, loja da empresa Google que disponibiliza aplicat 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 2/14 gratuitos e pagos, oferece um espaço que permite a qualquer aplicativo visto por qualquer um dos usuários do Android, independentemente do em que ele esteja. Em relação ao ambiente de desenvolvimento, o Android dá ao desenvolve tudo o que ele precisa para construir seus aplicativos, uma IDE para edit código-fonte de suas aplicações; provê bibliotecas que permitem acessa principais funcionalidades do aparelho; componentes prontos que facili o desenvolvimento da interface de usuário; além de mecanismos adequam o aplicativo desenvolvido às características de hardware de determinado aparelho, seja ele um telefone ou uma Tablet PC. Essas características permitem que um aplicativo aproveite ao máximo recursos de hardware que estão disponíveis em cada dispositivo. exemplo disso é a interface do usuário (as telas da aplicação) que se aju automaticamente ao tamanho da tela (física) de cada dispositivo, com efeito de girar a tela automaticamente quando o usuário vira o aparelho. Para quem vem do ambiente da linguagem de programação Java, certame se lembra do “escreva o programa uma única vez, e o execute em qualq lugar...”. Como o Android usa uma máquina virtual para executar aplicações, as características descritas anteriormente ajudam desenvolvedor de software a construir um único aplicativo, que será l interpretado e otimizado pela máquina virtual para as condições dispositivo móvel, em tempo de execução. Caso você queira realmente ser um desenvolvedor Android, seu princ ponto de referência para buscar informações relacionadas desenvolvimento de aplicativos para Android tem que ser o próprio site desenvolvedores do Android (http://developer.android.com). Esse concentra tudo o que é necessário para desenvolver para o Android, co ambientes de desenvolvimento, diretrizes de desenvolvimento, documen de especificação, exemplos de aplicativos, informações sobre as atualizaç nas versões, datas de novos releases (atualizações), entre outros. Desenvolvendo os Aplicativos Para desenvolver um aplicativo Android, é necessário usar um ambiente desenvolvimento para isso, que neste caso, é um ambiente conhecido co Android SDK. Ele é um conjunto de ferramentas que servem para comp testar e depurar o aplicativo durante a fase de desenvolvimento. Para qu está no início do aprendizado, é recomendado o uso de um kit chamado A 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 3/14 Bundle (download dispon em: http://developer.android.com/sdk/index.html). Porém, antes de inst lo, convém lembrar que esse ambiente é executado sobre a plataforma J SE, que é distribuída gratuitamente pela Oracle no ender (http://www.oracle.com), e que deve ser instalada previamente ao And ADT Bundle, que contém os seguintes itens, a serem usados durant desenvolvimento: IDE Eclipse + o plug-in ADT; Android SDK; Gerenciador de Plataformas Android; Imagens simuladas de dispositivos reais, para os testes do desenvolvimento. Após instalar a plataforma Java SE e o Android ADT Bundle, o ambiente desenvolvimento estará pronto para o primeiro teste. Android Virtual Device (AVD) A execução em um ambiente que simula o dispositivo móvel é conhecido meio técnico, como emulador, assim chamado por simular no computa uma CPU executando o Android. No caso do Android, esse emulador usa algumas configurações definidas p usuário, para saber o quanto de memória virtual precisa ser aloc tamanho da tela, velocidade de processamento da CPU, se a CPU coprocessador gráfico, entre outros. Essas configurações são chamadas AVD (sigla para dispositivo Virtual Android, tradução livre do original inglês Android Virtual Device). Um AVD é criado através de um utilit chamado AVD Manager, que será discutido em detalhes mais adiante mesma forma que o restante do ambiente de desenvolvimento Android. antes de começar a programar, é necessário conhecer alguns fundament respeito do desenvolvimento de aplicativos Android. Fundamentos de um Aplicativo Android A linguagem de programação usada no desenvolvimento de aplicat Android é o Java, entretanto o aplicativo não é apenas o código escrito. U aplicação também é composta por arquivos de imagens (usados em íco 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 4/14 fundos de tela, etc.), arquivos de banco de dados (armazenamento de u lista de contatos, eventos, etc.), entre outros tipos de recursos. Para gerar uma aplicação, o desenvolvedor usa o Android SDK para comp o código-fonte, mas, além disso, ele também verifica os outros tipos arquivos, buscando verificar se eles estão de acordo com as restrições versão do Android onde a aplicação será executada, por exemplo. Apó verificações, é criado o binário (chamado de APK), o qual poderá instalado no dispositivo móvel. Um arquivo APK contém todo o conteúdo que forma uma aplicação, e u vez que ele esteja sendo executado num dispositivo móvel, é executado n ambiente seguro, conhecido como caixa de areia (do inglês sandbox). O Android usa uma sandbox pelos seguintes motivos Ele é baseado no sistema operacional Linux, que é multiusuário, e cada usuário pode ter seu próprio conjunto de aplicações, que não são usadas pelos demais usuários; Quando o aplicativo é executado, o Android atribui ao aplicativo um identificador único (ID) ao aplicativo. Esse ID é conhecido apenas pelo Android, e ele é usado para que o sistemas saiba quais são os recursos que aquele ID pode acessar, e para gerenciar o acesso àqueles recursos; Cada aplicativo sendo executado possui sua própria máquina virtual, então, ela é executada totalmente isolada das demais aplicações; Quando o aplicativo é iniciado, ele é executado como um processo do Android, ele e seus recursos podem ser iniciados quando qualquer um dos componentes da aplicação é iniciado. O processo é mantido em execução até que ele não seja mais necessário. Nesse momento, o Android libera os recursos para que sejam usados por outros aplicativos. Assim, o Android executa os aplicativos dentro de um ambiente control onde ele somente acessa os recursos e componentes que necessita, e n mais além deles. Desse modo, uma aplicação não pode acessar ou recursos do sistema operacional se não tiver permissão explícita para i Em tese, isso significa que uma aplicação não poderia usar dados pertencem à outra aplicação, pois elas são executadas em ambien totalmente isolados. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 5/14 Mas há um mecanismo simples que permite compartilhar dados entre vá processos. Um aplicativo pode pedir permissão para acessar os dados aparelho, como por exemplo, os contatosdo usuário, conteúdo mensagens SMS, cartões de memória, Bluetooth, entre outros. E permissão deve ser dada pelo usuário no momento em que o aplicativ instalado no aparelho. Componentes de um Aplicativo Android No Android, os componentes da aplicação são todo e qualquer arquivo compõe o aplicativo, e para o sistema operacional, qualquer um deles se como um ponto de acesso para o Android. Entretanto, para o usuário, ape alguns desses arquivos servem para que o usuário possa acessar o aplicat Há quatro tipos diferentes de componentes de aplicação, que são: Activities Uma activity é uma única tela com a interface de usuário, e é sempre o uma aplicação se inicia. Assim, se uma aplicação possui oito telas, ela po oito activities. Apesar de pertencer a uma determinada aplicação, u activity pode ser acessada por outras aplicações. Como exemplo, a lista contatos pode acessar uma activity que mostra o mapa, para mostra localização de um contato da lista. Services Um service é um componente executado em background, executa processamentos demorados, ou para realizar alguma tarefa relacionad algum processo remoto, e não tem nenhuma interface de usuário. exemplo, o player pode ser um serviço tocando música, enquanto o usu vê fotos. Um service pode ser iniciado por uma activity e/ou interagir ela. Provedores de Conteúdo (Content Providers) 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 6/14 Um Content Provider é o componente de software responsável por geren os dados compartilhados de uma aplicação. Esses dados podem armazenados numa ferramenta de base de dados, como SQLite, ou qualquer tipo de arquivo, armazenado no sistema de arquivos do Androi eles também podem ser usados por qualquer aplicação através do Conte Provider, não apenas aquela que é proprietária dos dados. Receptores (Broadcast Receivers) Um Broadcast Receiver é um componente de software que trata qualq aviso enviado pelo Android, por exemplo: sinalizar o fim da bateria, av da chegada de nova mensagem, entre outros. Qualquer aplicação p enviar um aviso para o Android, desde que ela queira que outras aplicaç saibam o que está acontecendo. Por exemplo, se uma aplicação está faze download de um arquivo, ela pode querer que outras aplicações saibam o download foi finalizado, e que o arquivo pode ser usado. Esse tipo de componente pode ter uma interface de usuário, dependend o desenvolvedor considerar isso necessário. Entretanto, é bastante com usar a barra de status (indicativo de atividade) do Android para deixa usuário receber tais alertas. Interação entre as Aplicações Ao contrário de outros sistemas operacionais, o Android permite que u aplicação use componentes de outra aplicação. Por exemplo, desenvolvedor cria um aplicativo de edição de imagens, que ativa a câm para tirar uma fotografia e editá-la, simplesmente enviando uma mensa para o Android, que inicia o componente correspondente à câm fotográfica, como se ela fizesse parte da aplicação. Para o sistema operacional, cada vez que um componente de softwa iniciado, um novo processo é criado. Assim, no exemplo anterior, o And tem dois processos em execução, um para o aplicativo de edição de imag e outro para a câmera fotográfica. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 7/14 Ainda em relação ao exemplo anterior, a fotografia é o dado usado pelos aplicativos. O Android restringe o uso compartilhado do mesmo dado mais de um aplicativo. Entretanto, é possível compartilhar o uso de alg recursos, desde que o Android tenha a permissão do usuário para isso. E permissão tem que ser dada explicitamente pelo usuário. Intents e Tasks As mensagens que ativam os componentes de uma aplicação Android chamadas de intents. Elas se conectam aos componentes individuais dura a execução das aplicações. Quando os intents são enviados por service activities, eles definem as ações que o outro componente deve executar. P os broadcast receivers, o intent simplesmente define o alerta que deve enviado ao Android. Como pode ser observado, os componentes do tipo contente provider são iniciados por intents, mas por um objeto de tipo ContentResolver. O intent inicia os componentes de forma diferente, sendo que as activi são iniciadas pelo método startActivity() ou startActivityForResult(); services são iniciados pelo método startService(), ou pelo mét bindService(), quando um componente quer se conectar a um serv enquanto que o broadcast é iniciado pelos métodos sendBroadca sendOrderedBroadcast() ou sendStickyBroadcast(); enquanto que contente providers podem ser acessados pelo método query() de um ob do tipo ContentResolver. Dalvik VM Quando se cria um aplicativo para os sistemas Windows ou Linux processo de compilação traduz o código escrito em linguagem humana p linguagem de máquina, que é a forma como ela é entendida p processadores dos computadores PC. Como todos os PCs são constru com a mesma arquitetura, isso torna possível desenvolver um aplica para o Windows e executá-lo em qualquer computador que tenha as mes características. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 8/14 Entretanto, o mesmo não ocorre com os dispositivos móveis, pois c fabricante possui sua própria arquitetura de hardware, o que pod inviabilizar a tarefa de desenvolver aplicativos que pudessem ser executa em dispositivos de vários fabricantes. Mesmo usando o Java Micro Edi (J2ME), podem ocorrer problemas de compatibilidade, pois a implementa da máquina virtual Java, que executa o aplicativo, depende do tipo de ace a recursos de hardware que o fabricante do aparelho quer disponibilizar. Para contornar esse problema, há a máquina virtual Dalvik, qu responsável por executar aplicativos Android nos dispositivos de qualq fabricante. Ou seja, ela é uma runtime similar à do Java, mas que indepe da implementação do fabricante, pois ela já vem com o sistema operacio Android básico, permitindo a uma aplicação acessar vários recursos aparelho, compartilhando o uso deles. Assim, depois de escrever o código-fonte do aplicativo, ele pode compilado. Entretanto, ao invés de ser traduzido para linguagem máquina, ele é convertido para uma linguagem intermediária, cham bytecode. O aplicativo em bytecode é o formato que o desenvolve distribui para os dispositivos equipados com Android. Quando o aplica for instalado, o dispositivo identificará que o aplicativo necessita máquina virtual Dalvik e fará a associação do aplicativo com a máqu virtual, para que o usuário possa usá-lo. Para que essa associação ocorra, o desenvolvedor deve conectar o aplicativo ao sistema operacional Android, e para isso, ele deve usa framework do Android. No momento em que o aplicativo for inicializ pelo usuário, a máquina virtual Dalvik interpretará o bytecode do aplicat traduzindo o mesmo para a linguagem de máquina entendida p dispositivo, possibilitando que o aplicativo seja executado em qualq dispositivo móvel usando Android. Zygote Quando o aplicativo é chamado, ele pode usar recursos de r compartilhamento de dados, outros recursos do telefone, como a câmer lista de contatos, entre outros. Nessas situações, a aplicação tem inicializar todos os componentes que ela precisa, mas isso ocupa mu recursos de processamento do dispositivo, e, em algumas situações, pod 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 9/14 haver o mesmo componente sendo executado mais de uma vez. Para ev isso, dentro do conceito de Activities, e cada Activity é executada em processo separado, o Android faz com que alguns recursos, muito usados vários aplicativos, sejam executados em processos iniciados a partir de processo base, o qual contém um conjunto de classes pré-carregadas, simbolizam o estado otimizado para criar uma nova instância da VM. Is chamadode Zygote. Isso pode auxiliar o desempenho de seu aplicativo, dispositivo móvel como um todo, pois evita o processamento desnecess para criar novos recursos, quando eles podem ser compartilhados. Sandbox A caixa de areia (sandbox) é um recurso que permite ao Android gerenci funcionamento de uma aplicação, sem interferir no funcionamento demais, uma vez que elas podem usar alguns recursos compartilha Assim, a sandbox é uma área monitorada pelo Android, onde a aplica pode manipular seus dados, e tentar acessar os recursos compartilha pelo Android, para evitar que algum problema com esses dados ca problemas nos recursos compartilhados, e consequentemente, em ou aplicativo. O que deve ser lembrado pelo desenvolvedor, é que o gerenciamento sandbox ocorre de acordo com as permissões definidas pelo usuário, qua o aplicativo é instalado no dispositivo. Ciclo de Vida de um Aplicativo Android Ao contrário de outros modelos de programação, onde as aplicações iniciadas através de um método que é o ponto de partida, como o mét main(), por exemplo, o Android não possui um método específico que in a execução de um aplicativo. O Android inicia uma aplicação chamando objeto de tipo Activity, através de algum método que corresponde ao est em que o aplicativo se encontra. O período que vai do momento em que o aplicativo é iniciado, at momento em que ele é encerrado, chama-se ciclo de vida. O Android in uma aplicação através de um método onCreate(), o que faz com qu 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 10/14 aplicativo fique num estado chamado Criado, depois, a Actvity é inic através de um método onStart(), que põe o aplicativo num estado cham Iniciado, que pode ficar visível ao usuário, mas que ainda não interage ele. Enquanto o aplicativo está no estado Iniciado, ele recebe um mét onResume(), deixando o aplicativo no estado Executando, que é o mome em que o usuário final pode interagir com ele. Enquanto o aplicativo nesse estado, há vários serviços sendo executados em background, co atendimento a chamadas, recebimentos de mensagens, que geram ale exibidos na barra de status do Android, entre outros. Durante a execução do aplicativo, um serviço como o de recebimento chamadas envia um intent para esta aplicação, fazendo com que ela te sua execução pausada, através do método onPause(), ou seja, ela entra estado Interrompida, até receber outro intent que a faça sair desse esta Quando o usuário termina a chamada, o Android pode enviar um intent executa o método onResume(), que faz com que o Android volte a execut aplicativo. Como alternativa à operação acima, o usuário pode querer encerra aplicativo, e isso faz com que o Android envie um intent onStop(), parará a execução do aplicativo, mantendo-o num estado de Parado. N estado, ele pode receber um intent onRestart(), fazendo com qu aplicativo seja reiniciado, ou pode receber um intent onDestroy(), faze que o aplicativo seja realmente finalizado. A Figura 1 apresenta o fluxo de mudança de estados, mostrando como intents fazem com que as Activities mudem de um estado para o outr quais os métodos que eles ativam. Esse fluxo deve ser conhecido, p manter os dados íntegros, ou para recuperar o estado de certas informaç visando garantir a confiabilidade na execução dos aplicativos. Neste momento, vem a seguinte consideração: se uma aplicação po várias Activities, e o Android pode iniciar qualquer Activity, como gara que o aplicativo sempre inicia pela tela principal? Isso é feito através uma propriedade da tela, em que a Activity é declarada como sendo a inicia o aplicativo (o Launcher). Essa declaração ocorre num arqu chamado Manifesto, um arquivo do tipo xml que deve ser nomeado co 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 11/14 AndroidManifest.xml e que deve ser colocado na pasta raiz do projeto. E usado para armazenar a configuração do aplicativo. A estrutura básica manifesto é apresentada pela Listagem 1. 1. <activity android:name=".MainActivity" android:label="@string/app_name"> 2. <intent-filter> 3. <action android:name="android.intent.action.MAIN" /> 4. <category android:name="android.intent.category.LAUNCHER" /> 5. </intent-filter> 6. </activity> Listagem 1 - Forma básica da declaração de uma Activity no arquivo Manifesto. Assim, quando aplicação for iniciada pelo usuário, O Android lerá e arquivo para identificar qual é a Activity principal, que deve estar declar como MAIN na ação a ser tomada pelo filtro do intent, e deve entrar co LAUNCHER na categoria desse intent. Assim, o Android chamará o mét onCreate() para executar a criação do aplicativo, e inicia-lo como processo no Android. 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 12/14 Conclusão Neste tópico foram apresentados alguns aspectos básicos relacionados desenvolvimento de aplicativos Android, bem como alguns de s componentes. Devido a extensão do assunto, alguns dos conce apresentados serão abordados com mais detalhes em outros tópicos, qua serão aprofundados temas específicos sobre o desenvolvimento plataforma Android. Dica: Para fixar os conceitos e conferir seu aprendizado, realize os exercí propostos. Quiz Exercício Final 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 13/14 Introdução ao desenvolvimento de aplicações para Android e seus Componentes INICIAR 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 07/04/2018 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/topico.php 14/14 Avalie este tópico PRÓXIMOMercado de aplicações móveis Índice Biblioteca (http://alpha.u ninove.br/F? func=login- session) Portal Uninove (http://www.un inove.br) Mapa do Site ® Todos os direitos reservados Ajuda? (https://av a.uninove.b r/seu/AVA/ help/help.p hp? idCurso=)
Compartilhar