Академический Документы
Профессиональный Документы
Культура Документы
Grupo de Estudos em Desenvolvimento de Apps Mveis ANDROID: Introduo Jonas Mayer 2012
Android
Android uma plataforma open source voltada para dispositivos mveis
O Android foi criado pelo Google e atualmente gerenciado pela OHA (Open Handset Alliance) que liderada pelo Google
OHA (empresas)
OHA foi criado com a inteno de padronizar uma plataforma de cdigo aberto e livre para celulares, justamente para atender a todas as expectativas e tendncias do mercado atual.
OHA (empresas)
Operadoras de Celulares
OHA (empresas)
Fabricantes de Celulares
OHA (empresas)
Companhias de Semicondutores
OHA (empresas)
Empresas de Software
OHA (empresas)
Companhias de Comercio
Grficos otimizados
Possui biblioteca grfica 2D, bibliotecas grficas 3D baseadas em OpenGL ES 1.0 sendo a acelerao de hardware opcional.
Armazenamento
Mensagens
Navegador
Aplicaes escritas em Java so compiladas em bytecodes Dalvik e executadas usando a Mquina virtual Dalvik, que uma mquina virtual especializada desenvolvida para uso em dispositivos mveis, o que permite que programas sejam distribudos em formato binrio (bytecode) e possam ser executados em qualquer dispositivo Android, independentemente do processador utilizado.
JMV X Dalvik
Multimdia
O sistema ir suportar formatos de udio, vdeo e imagem como: MPEG-4, H.264, MP3, AAC , AMR, JPG, PNG e GIF.
O Android totalmente capaz de fazer uso de cmeras de vdeo, tela sensvel ao toque, GPS, acelermetros, e acelerao de grficos 3D.
Arquitetura Android
Arquitetura Android
Aplicaes Junto com o Android vem um conjunto de aplicaes fundamentais desenvolvidas em Java. So elas:
um cliente de e-mail; programa de SMS; agenda; mapas; navegador; contatos entre outros.
Arquitetura Android
Framework
Arquitetura Android
Bibliotecas
System C library uma implementao derivada da biblioteca C padro sistema (libc) do BSD sintonizada para dispositivos rodando Linux. Media Libraries baseado no PacketVideos OpenCORE; as bibliotecas suportam os mais populares formatos de udio e vdeo, bem como imagens estticas. Surface Manager gere o acesso ao subsistema de exibio bem como as mltiplas camadas de aplicaes 2D e 3D; LibWebCore um web browser engine utilizado tanto no Android Browser quanto para exibies web.
Arquitetura Android
Bibliotecas
SGL o engine de grficos 2D 3D libraries uma implementao baseada no OpenGL ES 1.0 APIs; as bibliotecas utilizam acelerao 3D via hardware (quando disponvel) ou o software de renderizao 3D altamente otimizado includo no Android. FreeType renderizao de fontes bitmap e vector SQLite um poderoso e leve engine de banco de dados relacional disponvel para todas as aplicaes
Arquitetura Android
Android Runtime O sistema operacional Android no possui uma mquina virtual chamada Dalvik que otimizada para execuo em dispositivos mveis. Toda aplicao Android roda em seu prprio processo, com sua prpria instncia da mquina virtual Dalvik. O Dalvik foi escrito de forma a executar vrias VMs eficientemente. Ele executa arquivos .dex (Dalvik Executable), que otimizado para consumo mnimo de memria. .
Arquitetura Android
Android Runtime Os arquivos .dex e outros recursos como imagens so compactados em um nico arquivo com a extenso .apk (Android Package File), que representa a aplicao final, pronta para ser distribuda e instalada
Arquitetura Android
Linux Kernel Verso do kernel: 2.6 O kernel atua como uma camada de abstrao entre o hardware e o resto do software
Arquitetura Android
Linux Kernel Servios:
Servios Gerenciamento de memria Gerenciamento de processos Pilha de protocolos de rede Modelo de drives
Ferramentas necessrias
Android SDK
Android SDK (Kit de Desenvolvimento de Software) inclui documentao, cdigo e utilitrios para que programadores consigam desenvolver as suas aplicaes de acordo com um padro de desenvolvimento.
Emulador
Emulador
O Android SDK inclui um emulador de hardware que representa perfeitamente o funcionamento de um celular com o Android. Tudo que possa ser executado no emulador pode ser executado no Android. A maior vantagem a consistncia do software que ter o mesmo funcionamento do aparelho.
ADT e DDMS
O ADT (Android Development Tool) fornece suporte edio para vrios tipos de arquivos. Um componente interessante o DDMS (Dalrik Debug Monitor Service) , que possibilita acompanhar todos os processos que so executados no hardware durante a aplicao, podemos inclusive similar o reconhecimento de ligaes ou de mensagens de texto.
Nem toda aplicao precisa ter todos os tipos, mas ter alguma combinao destes. Os componentes que compem a aplicao so declarados em um arquivo XML, chamado AndroidManifest.xml .
Activities ou Atividades
o mais utilizado de todos os componentes. Geralmente representado por uma tela na aplicao. Possui uma interface se usurio composta de Views, consistindo de vrias telas que respondem a eventos previamente programados.
Activities ou Atividades
Cada Activity uma especializao da classe Activity e possui um ciclo de vida especfico:
Activities ou Atividades
onCreate() Executado apenas uma vez quando a Activity criada, logo aps sua execuo o mtodo onStart() chamado.
Activities ou Atividades
onStart() Chamado quando uma activity est se tornando visvel para o usurio. Pode ser executado aps o onCreate() ou onRestart(), aps sua execuo o mtodo onResume() chamado.
Activities ou Atividades
onResume() o topo da pilha de atividade, chamada quando vai iniciar a interao com o usurio. chamado aps o onStart().
Activities ou Atividades
onRestart() Esse mtodo chamado quando a Activity estava no estado de interrompida em segundo plano e volta a ser executada.
Activities ou Atividades
onPause() executado quando a Activity interrompida, quando o sistema est prestes a iniciar uma prxima atividade. Geralmente usada para salvar o estado da sua aplicao para que seja possvel uma recuperao pelo mtodo onResume().
Activities ou Atividades
onRestart() Esse mtodo chamado quando a Activity estava no estado de interrompida em segundo plano e volta a ser executada.
Activities ou Atividades
onStop() Chamado quando a activity j no visvel para o usurio, porque outra activity foi retomada e est cobrindo esta. Isto pode acontecer se, uma nova acitivity esta sendo criada, se a activity j criada est trazendo outra activity frente desta ou se a activity principal est sendo destruda. Caso a Activity seja reiniciada, o mtodo onResume() ser executado. Vai para onCreate() caso seja criado uma nova activity ou vai para onDestroy() se essa activity est sendo fechada.
Activities ou Atividades
onDestroy() Chamada quando a atividade terminou ou quando o sistema precisa finalizar atividades para a liberao de recursos.
Services
So cdigos sem interface de usurio, que rodam em background, no sendo interrompidos com a troca de atividades pelo usurio. Ao contrrio da Activity, que tem ciclo de vida prprio e uma vida curta. os Services mantem o servio ativo at que seja recebida outra ordem. Uma vez conectado com o servio ativo at que seja recebida outra ordem. Uma vez conectado com o servio, pode-se comunicar com este atravs de uma interface apresentada para o usurio.
Broadcast Receivers
Quando uma aplicao recebe um evento externo atravs de uma inteno, este componente que trata a reao deste evento. Um Broadcast Receiver pode ser acionado pelo tocar do telefone, quando houverem redes disponveis, um de terminado horrio, entre outros eventos previamente programados. No possui uma interface de usurios, mas pode fazer isso de uma Notification Manager (como forma de interface para o usurio), que um mecanismo de alerta.
A aplicao no precisa estar ativa para que o Broadcast Receivers possa der acionado.
Content Providers
Quando da necessidade de compartilhamento dos dados de sua aplicao com outras aplicaes, utiliza-se o content provider, que basicamente a forma de compartilhar dados entre os aplicativos. Este permite que outras aplicaes possam armazenar e recuperar dados no mesmo repositrio utilizado por aquela aplicao.
Uma Intent explicita aquela que vai direto ao destino, sem consultar a Intent Filter , mas uma implcita entregue ao destino apenas e passa pelos filtros dos componentes. Estas so registradas no arquivo AndroidManifest uma que a aplicao deve saber as capacidades de cada componente.
Android Manifest
AndroidManifest.xml necessrio para cada aplicao.
Descreve os elementos da aplicao: globalmente visveis, as classes de implementao de cada componente, e qual tipo de dado este pode tratar, quando pode ser ativado, ou seja serve para definir os dados de cada elemento.
Estrutura do AndroidManifest
Ele obrigatoriamente deve ficar na pasta raiz do projeto, contendo todas as configuraes necessrias para executar a aplicao, como o nome do pacote utilizado, o nome das classes de cada activity e vrias outras configuraes.
Estrutura do AndroidManifest
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.exemplo.oimundo" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".OiMundo" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Estrutura do AndroidManifest
O XML deve iniciar com as linhas a seguir, declarando o namespace para validar os atributos utilizados e o pacote da aplicao. importante que o encode do XML seja UTF-8.
Estrutura do AndroidManifest
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" http://schemas.android.com/apk/res/android" package="br.com.exemplo.oimundo" android:versionCode="1" android:versionName="1.0">
Dentro da tag <manifest> necessrio declarar o pacote principal do projeto, utilizando a tag <package>.
Estrutura do AndroidManifest
obrigatrio que cada activity do projeto esteja declarada no arquivo AndroidManifest.xml, caso contrario no possvel utiliza-la. Para declarar a activity utilizada a tag <activity>, que recebe o nome da classe, e sempre relativa ao pacote principal.
Estrutura do AndroidManifest
O projeto pode conter apenas uma, vrias ou nenhuma activity, mas o importante que ser for necessrio exibir um cone na tela principal do Android, para que a aplicao possa ser iniciada pelo usurio, necessrio pelo menos uma activity, e esta deve ser configurada como sendo o ponto de partida da aplicao. Para isso necessrio declarar uma tag <intent-filter> com as aes android.intent.action.MAIN e a categoria android.intent.category.LAUNCHER dentro da tag <activity>, conforme o seguinte trecho de cdigo.
Estrutura do AndroidManifest
<activity android:name=".OiMundo" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
A tag <intent-filter> necessria para customizar a forma como a activity ser iniciada. A ao MAIN significa que essa activity OiMundo pode ser iniciada isoladamente, como ponto inicial da aplicao.
Estrutura do AndroidManifest
A categoria LAUNCHER indica que a activity estar disponvel para o usurio na tela inicial junto com as outras aplicaes que o usurio tem. Dessa forma, um cone da aplicao pode ser visualizado na tela das aplicaes instaladas, e ao clicar no cone a activity configurada como principal iniciada. Em aplicaes reais geralmente existir apenas um activity com essa configuraes.
Referencias
Mobilen http://mobilein.com.br ALVES, Luciano. Android Programando Passo a Passo Luciano Alves da Silva, RJ, 2010 ENDLER, Markus. A Plataforma Android: Uma Introduo DUARTE Anderson. ANDROID: uma viso geral , 2011 LECHETA, Ricardo R. Google Android Aprenda a criar aplicaes para dispositivos mveis com o Android SDK, 2 Edio CAMILO, Lcio, et. al. Android Para Desenvolvedores , 2009