Upload
paulo-remoli
View
17
Download
2
Embed Size (px)
DESCRIPTION
Introdução ao android
Citation preview
AndroidPaulo Renato
O que é?
Android é uma plataforma para desenvolvimento e execução de programas para dispositivos móveis, robusta e de fácil utilização.
Esta plataforma é vista hoje como uma ótima alternativa para o desenvolvimento de aplicações.
Open Handset Alliance
Consórcio entre mais de 40 empresas (Google, HTC, Intel, Motorola, Samsung, Nextel e NVIDIA)
Desenvolver padrões abertos para os dispositivos móveis
Primeiro produto foi o Android, construído sobre o sistema operacional Linux
Infraestrutura de Software
A infraestrutura do Android é formada por: Sistema operacional baseado em Linux, Conjunto de bibliotecas, API chamada Android Runtime, As aplicações pré-existentes no Android
e aplicações diversas
Linux kernel
Versão do kernel: 2.6 Camada de de abstração entre o hardware e o
resto da pilha de software Segurança Gerenciamento de memória Gerenciamento de processos Protocolos de rede Modelo de drivers
Bibliotecas
Android inclui um conjunto de bibliotecas C/C++ usadas por diversos componentes do sistema: System C Library Media Libraries Surface Manager LibWebCore SGL 3D Libraries FreeType SQLite
Runtime
Aplicação Android: É um processo
Linux Própria instância da
máquina vitual Dalvik
Executa arquivos .dex
Frameworks
Bibliotecas de mais alto nível Responsáveis por funções específicas no aparelho:
Gerenciamento de janelas Gerenciamento de recursos dos dispositivos móveis Notificações
Essas são as bibliotecas acessadas pelos desenvolvedores Android para interagir com o dispositivo móvel.
Aplicações
Os aplicativos são ferramentas comuns a todos os usuários de celulares e smatphones. Cliente de email Programa SMS Calendário Mapas Navegador Contatos
Infraestrutura de Software
Android API x Java API
Pacotes suportados java.io - File and stream I/O java.lang - (except java.lang.management)
Language and exception support java.math - Big numbers, rounding, precision java.net - Network I/O, URLs, sockets java.nio - File and channel I/O java.security - Authorization, certificates, public
keys java.sql - Database interfaces java.text - Formatting, natural language, collation java.util Lists, maps, sets, arrays, collections
Android API x Java API
Pacotes suportados javax.crypto - Ciphers, public keys javax.security except:
▪ javax.security.auth.kerberos▪ javax.security.auth.spi▪ javax.security.sasl
javax.sound - Music and sound effects javax.xml.parsers - XML parsing org.w3c.dom - DOM nodes and elements▪ but not subpackages
org.xml.sax - Simple API for XML
Ambiente de execução
A plataforma é composta por uma máquina virtual Dalvik
Requer pouca memória Cada aplicação é um processo Cada processo roda tem sua prórpia
VM Executa arquivos .dex (Dalvik
Executable)
Ambiente de Desenvolvimento
IDE: Netbeans ou Eclipse (Oficial) JDK - Kit de Desenvolvimento Java Android SDK - Kit de Desenvolvimento
Padrão do Android Plugins:
Eclipse - Android Development Tools (ADT) ▪ http://dl-ssl.google.com/android/eclipse/
Netbeans – Nbandroid▪ http://kenai.com/downloads/nbandroid/
updates.xml
Ambiente de Desenvolvimento
Deve-se criar um AVD (Android Virtual Device), ao qual um aplicativo quando executado deve ser associado.
O AVD possui características do dispositivo, como resolução de tela, tamanho da memória externa, entre outras.
DroidDraw
Aplicação android
As aplicações são compostas por um ou mais componentes:
Activity BroadcastReceiver Service ContentProvider
Activity
É um componente do aplicativo que fornece uma tela com a qual os usuários podem interagir, a fim de fazer algo, como discar o telefone, tirar uma foto, envie um e-mail, ou ver um mapa.
As atividades são armazenada em uma pilha
Activity
Content Providers
ContentProviders armazenam e recuperam dados e tornam estes dados disponíveis para todas as aplicações.
São o único modo de compartilhar dados entre as aplicações.
A plataforma fornece ContentProvider para os tipos de dados mais comuns (áudio, vídeo, imagens, etc.)
BroadcastReceiver
BroadcastReceiver é utilizado quando a aplicação necessita responder a eventos externos, como uma ligação sendo recebida.
As aplicações podem iniciar os broadcasts, para notificar outras aplicações que um conteúdo foi baixado e está disponível para uso.
Service
Um serviço é um componente da aplicação que pode executar operações de longa duração em segundo plano e não oferece uma interface de usuário.
Outro componente do aplicativo pode iniciar um serviço e vai continuar a correr em segundo plano, mesmo se o usuário muda para outro aplicativo.
Estrutura do projeto
AndroidManifest.xml: Um XML descrevendo a aplicação que está sendo construida e quais componentes (atividades, serviços, etc.) são fornecidos por esta aplicação.
build.xml: um script Ant para compilar a aplicação e instalar ela no dispositivo.
default.properties, um arquivo de propriedade usado pelo script build
bin/ contém o aplicativo, uma vez que é compilado libs/ contém os JARs externos utilizados na aplicação src/ contém o código-fonte da aplicação res/ contém os recursos (Gif, layouts GUI) assets/ contém arquivos estáticos que necessitam ser
empacotados junto com a aplicação
Estrutura do projeto
Quando compilado o projeto, os resultados vão para a pasta bin
bin /classes/ contém as classes compiladas Java
bin /classes.dex contém o executável criado a partir dessas classes Java compiladas
bin /yourapp.ap_ contém os recursos do seu aplicativo, como um arquivo ZIP
bin / YourApp-unsigned.apk é a aplicação real do Android
JoKenPo
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.jokenpo" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="2" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name="JoKenPo" 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>
Main.xml
<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout android:id="@+id/widget27"android:layout_width="fill_parent" android:layout_height="fill_parent"xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:id="@+id/escolha" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Escolha:"android:textStyle="bold|italic" android:layout_x="11px"android:layout_y="276px"></TextView><ImageButton android:id="@+id/papel" android:layout_width="90px"android:layout_height="55px" android:src="@drawable/papel"android:layout_x="7px" android:layout_y="314px"></ImageButton>...
</AbsoluteLayout>
JoKenPo.java
public class JoKenPo extends Activity {
private ImageButton btnPapel, btnPedra, btnTesoura, btnUserPick, btnCpuPick;....public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.main);btnPapel = (ImageButton) findViewById(R.id.papel);btnPedra = (ImageButton) findViewById(R.id.pedra);btnTesoura = (ImageButton) findViewById(R.id.tesoura);...btnPapel.setOnClickListener(new ImageButton.OnClickListener() {
public void onClick(View v) {escolherPapel();}
});
...
Emulador
Emulador
Conclusão
O Android se mostra um grande concorrente para Apple e vem apresentando números impressionantes em seu crescimento.
Dúvidas?