Вы находитесь на странице: 1из 54

Universidade Regional Integrada - URI Curso de Cincia da Computao

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

A estrutura geral da plataforma Android

Grficos otimizados

Possui biblioteca grfica 2D, bibliotecas grficas 3D baseadas em OpenGL ES 1.0 sendo a acelerao de hardware opcional.

Armazenamento

utilizado SQLite para armazenamento de dados.

A estrutura geral da plataforma Android

Mensagens

Tanto SMS como MMS so formas disponveis de envio de mensagens.

Navegador

O browser intregado baseado em WebKit engine.

A estrutura geral da plataforma Android

Mquina virtual Dalvik

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.

A estrutura geral da plataforma Android

JMV X Dalvik

A estrutura geral da plataforma Android


Apesar das aplicaes Android serem escritas na linguagem Java, ela no uma mquina virtual Java, j que no executa bytecode JVM.

Multimdia

O sistema ir suportar formatos de udio, vdeo e imagem como: MPEG-4, H.264, MP3, AAC , AMR, JPG, PNG e GIF.

A estrutura geral da plataforma Android

Suporte Adicional de Hardware

O Android totalmente capaz de fazer uso de cmeras de vdeo, tela sensvel ao toque, GPS, acelermetros, e acelerao de grficos 3D.

Ambiente de desenvolvimento (SDK)

Inclui um emulador, ferramentas para debugging, memria e anlise de performance.

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

Viso Provedor de Contedo Gerenciador de Recursos Gerenciador de Notificao Gerenciador de Atividade

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 Emulador ADT e DDMS

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.

Estrutura de Aplicativos Android


O Android possui um grupo de componentes essenciais para o sistema que o sistema pode instanciar e executar sempre que for necessrio, formado pelos seguintes elementos:

Activities Services BroadcastReceivers Content Providers

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 .

A estrutura geral da plataforma Android


O Android SDK o kit de desenvolvimento que disponibiliza as ferramentas e APIs necessrias para o desenvolvimento de aplicaes Android, utilizando a linguagem Java. Ele possui os seguintes recursos:

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.

Intents e Intents Filters


As Intent Filters servem para descrever quais Intents uma Activity ou Broadcast Receiver so capazes de tratar.

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.

Pode-se tambm descrever as permisses e parmetros de instrumentao.

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

Вам также может понравиться