API's e Aplicações para Android Computação Móvel Prof. Me. Eng. Adauto Mendes adauto.inatel@gmail.com Introdução As API s estabelecidas para Android permitem total modificação por meio de programação do seu conteúdo. Porém, programas que não precisam envolverse em detalhes da implementação do software podem apenas utilizar o serviço, sem a preocupação de como funciona. 1
Introdução Um ponto forte das API s básicas do Android é a otimização que estas possuem, focando na utilidade dos pacotes, em conjunto com um bom aproveitamento, deixando de fora pacotes pesados e pouco evoluídos. Através das API s, pode ser criada toda a interface com o usuário, permitindo desenvolver telas, acessar arquivos, criptografar dados, ou seja, utilizar toda a funcionalidade definida pelo utilizador. Principais API s android.util: contém várias classes utilitárias (classes de containers e utilitários XML). android.os: contém serviços referentes ao sistema operacional, passagem de parâmetros e comunicação entre processos. android.database: contém API s para a comunicação com banco de dados SQLite. 2
Principais API s android.content: API s de acesso a dados no dispositivo, como as aplicações instaladas e seus recursos. android.view: pacote que contém as principais funções e componentes de interface gráfica. android.widget: contém widgets prontos (botões, listas, grades, etc.) para serem utilizados nas aplicações. Principais API s android.app: API s de alto nível referentes ao modelo da aplicação. android.provider: API que contém padrões de provedores de conteúdo (Content Providers). android.telephony: API para interagir com as funcionalidades de telefonia e telecomunicação. 3
Principais API s android.webkit: inclui API s para conteúdos web, bem como um navegador embutido para utilização geral. Elementos de uma App O Android possui um grupo de componentes essenciais que o sistema pode instanciar e executar sempre que for necessário, formado pelos seguintes elementos: Activities Services Broadcast Receivers Content Providers Intent e Intent Filters 4
(ou Atividade) É o mais utilizado dos componentes. Geralmente é representada por uma tela na aplicação. Possui interface de usuário composta por Views, consistindo de várias telas que respondem a eventos previamente programados Cada atividade é uma especialização (herança em Java) da classe e possui um ciclo de vida específico. 5
(ou Atividade) OnCreate(): método chamado quando a atividade é inicialmente criada. OnStart(): chamado quando a atividade se torna visível para o usuário. OnResume(): é o topo da pilha de uma atividade, chamada quando vai iniciar a interação com o usuário. (ou Atividade) OnPause(): chamado quando o sistema está perto de começar uma próxima atividade. Geralmente é utilizado para gravar as informações que ainda não foram salvas. OnStop(): chamado quando a atividade não estiver sendo utilizada pelo usuário e perder o foco para outra atividade. 6
(ou Atividade) OnDestroy(): pode ser chamado quando a atividade termina ou quando o sistema precisa finalizar atividades para a liberação de recursos. OnRestart(): chamado quando sua atividade estiver interrompida e prestes a ser acionada pelo usuário novamente. Assim que uma atividade é iniciada, esta é colocada no topo da pilha de atividades e se torna a atividade em execução. Caso exista alguma atividade anterior, esta permanecerá na posição logo abaixo e só passará para o estado executando que a atividade acima for finalizada. 7
São quatro os estados em que uma atividade pode se encontrar: Executando: a atividade que estiver ativa no visor do dispositivo. Parada: uma atividade que perdeu o foco para outra atividade, mantém todas as informações de estado, porém não interagindo com o usuário. Pode ser finalizada em situações de baixo nível de memória disponível. Interrompida: quando uma atividade é interrompida ele tem o mesmo comportamento de uma atividade parada, porém são muitas vezes finalizadas quando uma recuperação de memória é necessária, perdendo suas informações. Finalizada: o sistema pode remover uma atividade da memória, caso esta seja interrompida temporariamente ou esteja parada. O estado anterior só pode ser restaurado se os métodos responsáveis estiverem sido implementados. 8
Tanto no status parada ou no de interrompida, o sistema pode finalizar a atividade caso os recursos estejam baixos, sem que sejam chamados os métodos OnDestroy ou OnStop, o que está representado na figura anterior como kill. São basicamente três ciclos que ocorrem em uma atividade: Ciclo completo: inicia-se no método OnCreate(), onde a atividade realiza toda a configuração, passa de um estado para outro e termina no OnDestroy(), quando os recursos utilizados por esta atividade são liberados. 9
Ciclo de vida visível: inicia-se no método OnStart() e termina no método OnStop(). É o ciclo onde a atividade está disponível e visível ao usuário, mesmo que não esteja interagindo com esta. Quando o usuário não for visualizar mais a atividade, o método OnStop() é chamado ou então, para colocar a atividade visível, chama-se o método OnStart(). Primeiro ciclo da atividade: Ocorre entre os métodos OnResume() e OnPause(). Este é o período em que a atividade está visível e interagindo com o usuário no topo da pilha das atividades. O código utilizado neste período não pode ser pesado pela iminente possibilidade de troca dos estados OnPause() e OnResume(). 10
A movimentação de uma atividade para outra ocorre através da Intent, que são requisições disparadas pelas atividades para descrever o que pode ser feito em caso de acionamento. Outra classe relacionada é a Intent Filter, que é uma descrição de quais ações (Intents) uma classe pode acionar. 11