• Save
Programação em Android - Aula 1 - Introdução
Upcoming SlideShare
Loading in...5
×
 

Programação em Android - Aula 1 - Introdução

on

  • 1,736 views

Treinamento de Programação em Android.

Treinamento de Programação em Android.
1ª Aula de introdução.

Statistics

Views

Total Views
1,736
Views on SlideShare
469
Embed Views
1,267

Actions

Likes
1
Downloads
0
Comments
0

2 Embeds 1,267

http://www.tecnoinf.com.br 1223
http://sendgrid.com 44

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • OHA fundada em Nov 2007
  • Android Market aberto no Brasil em Outubro 2010.
  • WebKit um browser Engine (também base do Safati/Mac).

Programação em Android - Aula 1 - Introdução Programação em Android - Aula 1 - Introdução Presentation Transcript

  • Programação em AndroidAula 1 - Introdução
  • 2Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.O que é o Android? A plataforma Android é composta de um sistema operacional (Linux 2.6)middleware, bibliotecas e aplicações. O Android SDK (Software Development Kit) oferece ferramentas e APIsnecessárias para o desenvolvimento de aplicações para a plataformaAndroid usando a linguagem de programação Java.
  • 3Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Open Handset Alliance (OHA) A Open Handset Alliance (OHA) é um consórcio de mais de 80 empresas que temo objetivo de desenvolver padrões abertos para dispositivos móveis. Entre as empresas participantes estão Google, HTC, Sony, Dell, Intel, Motorola,Qualcomm, Texas Instruments, Samsung Electronics, LG Electronics, T-Mobile,Nvidia, entre outros.http://www.openhandsetalliance.com
  • 4Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.SmartphonesHTC G1, Droid,TattooMotorola Droid (X)Suno S880 Samsung GalaxySony Ericsson
  • 5Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.TabletsVelocity Micro CruzGome FlyTouchAcer beTouchDawa D7 Toshiba Android SmartBook Cisco Android TabletSamsung Galaxy Tab
  • 6Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Market share: plataformas móveis Relatório da comScore em setembro de 2011 sobre o mercado americano deassinantes de telefonia móvelhttp://www.comscore.com/Press_Events/Press_Releases/2011/11/comScore_Reports_September_2011_U.S._Mobile_Subscriber_Market_Share
  • 7Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Market share: versões do Androidhttp://developer.android.com/resources/dashboard/platform-versions.html
  • 8Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Características Framework de aplicação que permite reuso e substituição decomponentes Máquina virtual Dalvik otimizada para dispositivos móveis Browser integrado baseado no WebKit (open-source) Gráficos otimizados utilizando biblioteca gráfica customizada 2D e gráficos3D baseados na especificação OpenGL ES 1.0 (aceleração via hardwareopcional) Banco de dados SQLite para armazenamento local
  • 9Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Características (cont.) Suporte para arquivos de mídia – áudio, vídeo, imagens – (MPEG4, H.264,MP3, AAC, AMR, JPG, PNG, GIF) Telefonia GSM (dependente do hardware) Tecnologias de comunicação Bluetooth, EDGE, 3G, e WiFi (dependente dehardware) Câmera, GPS, compasso, e acelerômetro (dependente de hardware) Ambiente de desenvolvimento que inclui emulador de dispositivo,ferramentas para debug, monitoração de memória e performance, e umplugin para desenvolvimento no Eclipse
  • 10Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Arquitetura do Androidhttp://developer.android.com/guide/basics/what-is-android.html
  • 11Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Arquitetura: Aplicações O sistema Android vem com um conjunto de aplicações incluindo umcliente de email, software para SMS (envio e recebimento), calendário,software para visualização de mapas (integração com Google Maps),browser, contatos, entre outors. Todas as aplicações são escritas utilizando a linguagem Java e podem seracessadas por suas Apps
  • 12Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Arquitetura: Framework O Framework Android permite a criação de aplicações que utilizem os diversosrecursos do dispositivo móvel e se integrem ao sistema e demais aplicações. É possível acessar o hardware do dispositivo, obter a localização atual,configurar alarmes, executar serviços em background, adicionar notificações,entre outros. Desenvolvedores tem acesso irrestrito às mesmas APIs utilizadas pelas aplicaçõesque já vem no sistema, já mencionadas.• Uma nova aplicação desenvolvida pode publicar ao Framework suasfuncionalidades e outras aplicações podem fazer uso dessasfuncionalidades.• Esse mecanismo permite que componentes sejam substituídos no Framework.
  • 13Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Arquitetura: Framework (cont.) Para todas as aplicações, o Framework fornece um conjunto de serviços, queinclui:• Sistema de Views utilizado para construir aplicações contendo listas, grids,caixas de texto, botões, web browser, mapas, etc.• Os Content Providers permitem que as aplicações acessem dados de outrasaplicações (por exemplo, Lista de Contatos) ou compartilhem seus própriosdados• Um Resource Manager fornece acesso a recursos como textos localizados,gráficos e arquivos de layout• Um Notification Manager que permite que aplicações insiram alertascustomizados na barra de status• Um Activity Manager que gerencia o ciclo-de-vida de aplicações e forneceuma pilha de navegação entre telas (Activities) entre as aplicações que estãoexecutando
  • 14Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Arquitetura: Bibliotecas Estão incluas uma série de bibliotecas C/C++ que são usadas por várioscomponentes do sistema Android. A utilização destas bibliotecas é possível através do Framework Android.
  • 15Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Arquitetura: Bibliotecas (cont.) SecureSocketLayer (SSL) SQLite WebKit (engine de browser web para páginas embutidas) Audio Manager Media Framework• Para audio, video, e formatos de imagens (MPEG4, H.264, MP3,AAC, AMR, JPG, PNG, GIF)Bibliotecas Gráficas: Scalable Graphics Library (SGL- para 2D) OpenGL for Embedded Devices (para 3D) FreeType (fontes vector and bitmap fonts) Surface Manager Faz composição 2D e 3D de windows, widgets, apps, toolbars
  • 16Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Arquitetura: Runtime Android incluí um conjunto de bibliotecas padrão que fornece a maioria dasfuncionalidades padrão da linguagem Java. Cada App Android executa em seu próprio processo, com uma instância damáquina virtual Dalvik. A Dalvik foi criada de forma que um dispositivo móvel possa executar múltiplasVMs eficientemente. Pode-se criar várias threads em um processo (App + VM Dalvik)
  • 17Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Arquitetura: Runtime (cont.) A Dalvik executa arquivos no formato .dex (Dalvik Executable) – otimizado parautilização mínima de memória É uma máquina virtual baseada em registros que executa classes compiladas Javaque são transformadas para formato .dex pela ferramenta dx A Dalvik depende do kernel Linux para funções de baixo nível como threading egerenciamento de memória
  • 18Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Arquitetura: Linux Kernel O Android executa sobre Linux 2.6 para serviços de sistema padrão comosegurança, gerenciamento de memória, gerenciamento de processos, camadas derede, e drivers. O kernel também atua como uma camada de abstração entre o hardware e oresto do sistema Android.
  • 19Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Programação O SDK fornece um grupo de ferramentaspara facilitar o desenvolvimento Android Essas ferramentas são acessadas via linhade comando ou através do plugin paraEclipse chamado ADT (AndroidDevelopment Tools)Passos básicos paradesenvolvimento de umaaplicação Android
  • 20Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Programação – Fases Setup – fase de preparação do ambiente de desenvolvimento. Criação dosdispositivos virtuais e preparação dos dispisitivos reais para instalação dasaplicações desenvolvidas. Development – fase de configuração e desenvolvimento do projeto Android,contendo todos os arquivos de código e recursos da aplicação. Debugging and Testing – durante esta fase será produzido um arquivodebugável .apk que será possível ser instalado e executado em um dispositivovirtual ou real.• O ADT fornece vários recursos para isntrumentacão e depuracão (através daferramenta Android Debug Bridge adb) Publishing – fase onde a aplicação será configurada e construída para distribuiçãopara usuários. Para isso, ela terá que ser assinada com um certificado• (cifrado com uma chave pública)
  • 21Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Elementos do Projeto Android
  • 22Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Criando uma AppO Desenvolvimento de uma app Android tipicamente envolve: Criar as telas (layouts, compostas de views) – editor gráfico para os arquivos xml Criar uma Activity para cada layout• A mainActivity é o ponto de entrada na sua App• Activities devem ser subclasses de Activity totalmente independentes Projetar a transferência de controle entre Activities (Intents) Projetar o BD SQLite para persistir o estado de sua app Possivelmente:• Implementar interação com Activities de outras Apps• Implementar acesso/atualização dos dados em um content provider• Implementar interação com algum serviço (processamento demorado) Editar o arquivo AndroidManifest da app, incluindo as permissões, declarando ascompoenentes, e indicando os recursos necessários
  • 23Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Depuração A Android Debug Bridge (adb) é uma ferramenta de linha de comando que permitecomunicação entre a máquina de desenvolvimento (Dev) e os emuladores ou dispositivosreais conectados viaUSB, pada depuração, redirecionamento de portas, e copia de arquivos. É um programa cliente-servidor (no Dev) que interage com adb daemons nosemuladores/dispositivos. Execute ./adb na pasta <pasta-sdk>/platform-tools O servidor procura por emuladores/dispositivos conectados e cada um encontrado recebeum par de portas (na faixa 5555 – 5585)serverserverclienteclienteMaq. DesenvolvimentoAdbdaemonAdbdaemonAdbdaemonAdbdaemonEmulatorDevice5555/55565557/5558
  • 24Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Assinatura de Apps e Updates Todo .apk precisa ser assinado digitalmente Mas, para fim de testes e depuração local (rodar no emulador ou dispositivoconectado ao PC), o próprio Android SDK já criou um debug certificate, que estáem <user-home>/.android/debug.keystore• Usando o comando keytool (Java Cryptography Architecture) pode-se visualizar essedebug certificate Usa-se tb comando keytool, para gerar uma chave privada (em outro arquivokeystore, protegido por uma senha) .• Chave privada é usada para cifrar um digest (um hash) do arquivo .apk Isso será aassinatura de sua app. Uma vez que sua app foi assinada, toda futura atualização dela terá que ter amesma assinatura, senão o dispositivo não reconhecerá o desenvolvedor originalda appkeytool -list -keystore debug.keystoreEnter keystore password:androidKeystore type: JKSKeystore provider: SUNYour keystore contains 1 entryandroiddebugkey, Jan 25, 2012, PrivateKeyEntry,Certificate fingerprint (MD5): 85:DF:2B:E4:F9:AC:16:1D:2F:DE:D3:D6:35:BD:FD:33
  • 26Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Suporte para outras linguagens Em 2009 Google anunciou o Android Native Development Kit (NDK)• Permite desenvolvimento de componentes em C e C++• Não é completo, pensado mais para ser um complemento ao Java Google apresenta o Android Scripting Environment (ASE) – permite odesenvolvimento de apps usando Python e Lua
  • 27Tecnoinf – Tecnologia em Informática – Todos os direitos reservadosÉ expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,acessíveis a terceiros, para fins de comunicação pública ou de comercialização.Principal Referência : Android Developershttp://developer.android.com/