ALUNO: Walanem Figueiredo Silva Jr.
ORIENTADOR: Carlos Alberto Soares Ribeiro
Graduação em Ciência da Computação – UFF
• Introdução
• Open Handset Alliance
• O que é o Android?
• Arquitetura do Android
• Dalvik Virtual Machine
• Aplicações Android
• Publicação de Aplicativos
• Presente e Futuro do Android
• Projeto prático
• Referências
Introdução
Introdução
• Panorama Contextual
– Mais de 7 bilhões de aparelhos de celular ativos;
– Mais linhas de celular do que pessoas no mundo;
Introdução
• Propósito Primário
– Inicialmente, aparelhos projetados apenas para atender e
efetuar ligações;
– Posteriormente, novas funcionalidades foram adicionadas
(Ex: Jogos, Internet)
– Limitação tecnológica;
Introdução
• Revolução Móvel
– Ideia de ‘‘mobilidade’’ disseminada de forma cada vez
mais incisiva;
– Celulares representam dispositivos leves, e praticamente
indispensáveis para qualquer pessoa;
• Novas funcionalidades incorporadas
Introdução
• Revolução Móvel (cont.)
– Introduzido o conceito de ‘‘smartphone’’ (telefone
inteligente);
– Diversas funcionalidades reunidas em um só aparelho;
Introdução
• Revolução Móvel (cont.)
– Demanda por uma plataforma centralizada;
– Gerenciamento de recursos de forma simples e flexível;
– Necessidade de um Sistema Operacional padronizado para
dispositivos móveis;
• Desafios
– Portabilidade de aplicações e recursos;
– Alta diversidade de tipos e modelos de dispostivos;
Open Handset
Alliance
Open Handset Alliance
• Aliança
– Grupo formado por gigantes da telefonia mundial
– Liderança:
• Objetivos
– Criação de padrões abertos para telefonia móvel;
– Inovações na área móvel, oferecendo experiências mais
ricas e acessíveis para os usuários.
Open Handset Alliance
O que é o Android?
• Definição
– Plataforma integrada para dispositivos móveis;
– Composta por um Sistema Operacional, Middleware e
aplicações;
• Características
– Transparência: Possibilidade de acesso a recursos do
dispositivo por meio de API’s, ou seja, aplicativos podem
utilizar qualquer recurso disponibilizado pelo Sistema
Operacional;
O que é o Android?
• Características (cont.)
– Não-distinção: Qualquer aplicativo pode ser estendido (ou
até mesmo substituído) por outro não nativo;
– Web-ready: Aplicativos Android podem exibir páginas da
HTML (inclusive HTML5), CSS e Javascript;
– Paralelismo: O Android é um ambiente multitarefa, no
qual os aplicativos podem ser executados em paralelo
(multitasking);
O que é o Android?
• Principais concorrentes
O que é o Android?
Arquitetura do
Android
• Camadas
Arquitetura do Android
• Applications
– Camada de alto nível;
– Local onde os aplicativos são executados:
• Browser, calendário, agenda de contatos, jogos, etc.
• Application Framework
– Engloba API’s e gerenciadores de recursos;
– Framework de componentes (úteis para desenvolvedores);
Arquitetura do Android
• Libraries
– Engloba as principais bibliotecas utilizadas pelo sistema:
• LibC, SQLite, OpenGL, entre outras;
• Linux Kernel
– Núcleo do S.O. Android (agora utiliza versão 3.14);
– Gerenciamento de processos, energia, drivers de hardware
e configurações de segurança;
– Responsável pela abstração do hardware do dispositivo;
Arquitetura do Android
• Android Runtime
– Camada-chave, onde se encontra a Dalvik;
– Responsável, por exemplo, pelo multitasking e
gerenciamento de memória;
– Garante conceito de ‘’sandbox’’ de aplicações, ou seja:
• Aplicações não podem interferir em outras, e nem no S.O.;
• Aplicações não podem interferir diretamente no hardware;
• Não existe a possibilidade de vinculação de aplicações a um
hardware específico;
Arquitetura do Android
• Android Runtime (cont.)
– Independência de aplicações:
• Cada aplicação representa um processo distinto no sistema;
• Processos se comunicam através de troca de mensagens;
• Kernel garante o isolamento de espaço em memória;
• Em suma: aplicações ocupam o mesmo espaço em memória, mas
cada uma delas representa uma instância distinta da Dalvik.
Arquitetura do Android
Dalvik Virtual
Machine
• Propósito
– Abstração de hardware dos dispositivos que executam o
Android;
– Otimizada para aparelhos móveis, que precisam consumir
o mínimo de memória, bateria e processamento possível.
Dalvik Virtual Machine
• Conceitos
– Dalvik funciona como uma instância isolada de processo;
– Cada aplicação roda em seu processo, que executa como
uma unidade totalmente granular:
• Em caso de crash, não afeta o sistema e nem outros processos em
execução paralela;
• Garantia de segurança;
– Compilador que segue o padrão Just in Time (JIT):
• A cada execução do app, a DVM traduz parte dos bytecodes em
código de máquina (binário);
• Assim, a cada passo, o sistema realiza mais cache destes recursos;
• Projetado desta forma para reduzir o tempo de warm-up.
Dalvik Virtual Machine
• Conceitos (cont.)
– ‘’init’’ é o processo pai de todos os processos Android;
– Sempre que uma aplicação Android é executada, a
seguinte sequência de passos é executada:
1. “init’’ cria um subprocesso chamado zygote;
2. zygote carrega e inicializa uma instância da DVM;
3. zygote contatcta o ActivityManager que se responsabiliza por
executar as classes Java referentes a esta aplicação;
Dalvik Virtual Machine
• Conceitos (cont.)
Dalvik Virtual Machine
• Origem
– Dalvik é um dos produtos da Open Handset Alliance;
– O nome vem de uma pequena cidade da Islândia, local de
origem de seu principal conceptor, Dan Bornstein;
Dalvik Virtual Machine
• Funcionamento
– A Dalvik não é a JVM!
– Embutido no Android, existe uma ferramenta chamada dx,
responsável por transformar os arquivos com extensão
.class em arquivos de extensão .dex (Dalvik Executable);
– Em outras palavras, o bytecode Dalvik pode ser executado
em qualquer dispositivo Android, independentemente do
hardware;
Dalvik Virtual Machine
• Funcionamento (cont.)
– Aplicações Android são compiladas em arquivos .dex, que
são empacotados em um único arquivo no dispositivo, que
possui a extensão .apk (Android Package) ;
Dalvik Virtual Machine
• Funcionamento (cont.)
Dalvik Virtual Machine
• Motivações de criação
– A Dalvik não utiliza as bibliotecas-padrão do Java, que se
dividem em 3 grandes grupos:
• Java Standard Edition ;
• Java Enterprise Edition;
• Java Micro Edition;
– O Android também não inclui bibliotecas gráficas do Java
(AWT e Swing). Em vez disso, incluiu suas próprias.
Dalvik Virtual Machine
• Motivações de criação (cont.)
– Em suma, a Dalvik não utiliza a biblioteca Java class,
presente no ambiente de execução Java, mas sim, uma
alternative open-source:
– Decisão tomada pois mesmo o Java, suas bibliotecas e
ferramentas sendo gratuitas, a JVM, em si, não é:
• Possibilidade de problemas de licença com a Oracle;
• …o que não adiantou: inúmeros processos ocorridos!
Dalvik Virtual Machine
Aplicações Android
• Componentes de Aplicação
– Conjunto de componentes, que desempenham papéis
específicos e integrados, representam pilares da aplicação;
Aplicações Android
• Intent
– Representa a forma padrão de ativação de componentes;
– Envia uma mensagem assíncrona ao Sistema Operacional,
explicitando a intenção de se realizar uma ação:
• Iniciar uma nova Activity da aplicação,
• Realizar uma chamada telefônica para determinado número, etc.;
– A classe Intent contém uma lista pré-determinada de
constantes, para execução de ações gerais, tais como:
• ACTION_CALL: Ligar para um número de telefone;
• ACTION_VIEW: Exibir informações através de uma Activity;
Aplicações Android
• Intent (cont.)
– Filtragem de Intent leva em consideração 3 aspectos:
• Ação;
• Categoria;
• Opcionalmente, informações adicionais, como URI e MIME Type;
Aplicações Android
• Activity
– Representa uma interface visual da aplicação (tela);
– Local onde elementos gráficos, chamados de views, são
dispostos, de forma a compor a tela;
– Interação com o usuário;
– Representam estruturas independentes entre si e,
geralmente, há uma Activity principal, que representa o
ponto de partida da aplicação;
Aplicações Android
• Activity (cont.)
– Declaração de Activity no arquivo AndroidManifest.xml
Aplicações Android
• Services
– Executam ações em background, ligados a operações de
longa duração ou até mesmo processamentos remotos;
– Não possuem interface gráfica, e executam em background
mesmo se o usuário inicia novas aplicações:
• Player de música;
• Transferência de dados;
– Devem ser usados sempre que uma ação precisa se
estender além do escopo da aplicação;
Aplicações Android
• Services (cont.)
– Declaração de Service no arquivo AndroidManifest.xml
Aplicações Android
• Content Provider
– Gerencia formas de acesso padronizadas e segurança de
repositórios de dados entre aplicações distintas;
– Acessos ao Content Provider são feitos através de um
cliente específico, ou seja, um Content Resolver:
• Elo de ligação entre o ContentProvider e a aplicação cliente;
• Buscas realizadas através do método query() ;
• Encaminha a requisição para o Content Provider adequado,
através da autoridade da query-string;
– Necessidade de implementação dos métodos CRUD;
Aplicações Android
• Content Provider (cont.)
– Definição de Content URI :
• Prefixo/Scheme: Prefixo padrão ‘’content://’’, que garante o
tratamento da requisição por um Content Provider adequado;
• Autoridade: Identificador único do Content Provider. Geralmente
possui o caminho completo da classe na aplicação;
• Path: Caminho que o Content Provider utiliza para efetuar a query
na tabela correta;
• Parameter: Parâmetro adicional que denota o intuito de se obter
um registro específico da tabela, utilizando o campo _ID;
Ex: content://my_library/books/13
Aplicações Android
• Content Provider (cont.)
– Definição de Content Provider no AndroidManifest.xml:
Aplicações Android
• Broadcast Receiver
– Android implementa envio de mensagens através do
padrão ‘’Observer’’
• Intents são, por padrão, enviadas por meio de broadcast;
• As mensagens são enviadas sem saber quem as irá receber;
• Qualquer aplicação está apta a receber estas mensagens;
• Filtros são necessários para decodificar o receptor correto;
– Broadcast Receivers ‘’ouvem’’ mensagens enviadas por
qualquer aplicação
• Se as tags da mensagem corresponderem a um determinado filtro,
o Broadcast Receiver é instanciado, se já não o estiver;
Aplicações Android
• Broadcast Receiver (cont.)
– Exemplos de constantes de Intents nativas, cujos
componentes-alvo são Broadcast Receivers:
• ACTION_BOOT_COMPLETE (Total inicialização do S.O.);
• ACTION_HEADSET_PLUG (Aviso de Headset inserido ou retirado);
• ACTION_BATTERY_LOW (Aviso de nível crítico de bateria);
Aplicações Android
• Broadcast Receiver (cont.)
– Broadcast Receivers podem ser registrados de 2 formas:
• Dinamicamente, através do método registerBroadcast();
• Via AndroidManifest.xml, através da tag <receiver>;
Aplicações Android
• Necessidade de interação? Notificações!
– Canal de comunicação entre componentes;
– Exibem informações para o usuário;
– Podem emitir som, piscar de LEDs e até mesmo vibrações;
Aplicações Android
Publicação de
Aplicativos
• Ciclo de vida de um aplicativo
– Setup: Instalação do ambiente Android (SDK), criação de
AVD’s e conexão de dispositivos-alvo;
– Development: Desenvolvimento de código do projeto
referente ao aplicativo;
– Debugging/Testing: Execução da aplicação em modo
Debug e utilização de ferramentas diversas de depuração
como a classe android.util.Log;
Publicação de Aplicativos
• Publishing
Publicação de Aplicativos
• Google Play
– Portal oficial de distribuição de aplicativos Android;
– Possui guidelines e políticas de submissão de apps, como:
• Não permite conteúdos considerados como spam;
• Garantia de não infrigimento da propriedade intelectual de
aplicativos de terceiros;
• Proibição de qualquer material pornográfico em apps;
• Não permite upload de apps que coletam informações, com fim
malicioso, sem o consentimento do usuário (spywares)
Publicação de Aplicativos
Presente e futuro
do Android
• Presente
– Android Lollipop (5.0)
Presente e futuro do Android
• Principais features
– Novidades em animações e transições;
– Notificações inteligentes e configuráveis;
– Projeto Volta, que irá oferecer maior eficiência no
consumo de bateria;
– Novas APIs de suporte a multimedia tunneling (como o 4K);
– Melhorias significativas em renderização gráfica e áudio;
– Material design;
– ART nativo;
Presente e futuro do Android
• Material design
– Padronização de comportamento visual entre dispositivos;
– Novas APIs para temas, widgets e views;
– Adição do conceito de ‘’eixo Z’’ em views (elevação 3D);
Presente e futuro do Android
• ART
– Implementa a abordagem ‘’Ahead of Time’’ (AoT);
• Realiza pré-compilação do bytecode (via dex2oat) em linguagem
de máquina (binário) no ato da instalação do app no sistema;
• Ganhos de performance em garbage collection;
• Transforma o código em uma dependência do sistema;
• Menor uso de CPU, logo, uma redução do consumo de bateria;
Presente e futuro do Android
• Novas frentes
Presente e futuro do Android
• Futuro
– Números de crescimento
• Cerca de 75% dos smartphones mundiais rodam o Android;
• Mais de 1 milhão de novas ativações ocorrendo diariamente;
• 1 bilhão de usuários ativos mensalmente nos serviços do Google;
Presente e futuro do Android
• Previsão de vendas de smartphones (IDC)
Presente e futuro do Android
Projeto prático
• PS Gamers
– App Android de consulta a dados da Playstation Network;
– Possibilita ao usuário visualizar diversas informações, como:
• Perfil;
• Level, progresso e escada de troféus;
• Lista de games;
• Troféus conquistados por game;
• Detalhes de troféu;
• Amigos online;
• Consulta de games e troféus de cada amigo;
Projeto Prático
• Login e Home
Projeto Prático
• Trophy ladder e Game list
Projeto Prático
• Game trophies e Trophy details
Projeto Prático
• Online friends e Offline friends
Projeto Prático
• Friend profile e Friend game list
Projeto Prático
Referências
• Referências utilizadas
 http://developer.android.com/reference/
 http://oglobo.globo.com/tecnologia/eric-schmidt-preve-um-
futuro-com-android-para-todos-4097588
 http://www.idc.com/prodserv/smartphone-os-market-
share.jsp
 http://www.linuxforu.com/2011/06/virtual-machines-for-
abstraction-dalvik-vm/
 http://developer.android.com/about/versions/lollipop.html;
 http://www.google.com/design/spec/material-
design/introduction.html
Referências
• Referências utilizadas (cont.)
 http://android.stackexchange.com/questions/7802/why-
does-dalvik-virtual-machine-need-to-run-in-every-process
 http://developer.android.com/distribute/tools/launch-
checklist.html
 http://www.electronicsweekly.com/eyes-on-android/what-
is/what-is-the-dalvik-virtual-machine-2011-10/
 https://software.intel.com/en-us/blogs/2014/06/18/art-vs-
dalvik-introducing-the-new-android-x86-runtime
 http://pocketnow.com/2014/05/06/q1-2014-shipment-
numbers
Referências
Perguntas?
Obrigado pela atenção!

APRESENTACAO WALANEM ANDROID (1)

  • 1.
    ALUNO: Walanem FigueiredoSilva Jr. ORIENTADOR: Carlos Alberto Soares Ribeiro Graduação em Ciência da Computação – UFF
  • 2.
    • Introdução • OpenHandset Alliance • O que é o Android? • Arquitetura do Android • Dalvik Virtual Machine • Aplicações Android • Publicação de Aplicativos • Presente e Futuro do Android • Projeto prático • Referências
  • 3.
  • 4.
    Introdução • Panorama Contextual –Mais de 7 bilhões de aparelhos de celular ativos; – Mais linhas de celular do que pessoas no mundo;
  • 5.
    Introdução • Propósito Primário –Inicialmente, aparelhos projetados apenas para atender e efetuar ligações; – Posteriormente, novas funcionalidades foram adicionadas (Ex: Jogos, Internet) – Limitação tecnológica;
  • 6.
    Introdução • Revolução Móvel –Ideia de ‘‘mobilidade’’ disseminada de forma cada vez mais incisiva; – Celulares representam dispositivos leves, e praticamente indispensáveis para qualquer pessoa; • Novas funcionalidades incorporadas
  • 7.
    Introdução • Revolução Móvel(cont.) – Introduzido o conceito de ‘‘smartphone’’ (telefone inteligente); – Diversas funcionalidades reunidas em um só aparelho;
  • 8.
    Introdução • Revolução Móvel(cont.) – Demanda por uma plataforma centralizada; – Gerenciamento de recursos de forma simples e flexível; – Necessidade de um Sistema Operacional padronizado para dispositivos móveis; • Desafios – Portabilidade de aplicações e recursos; – Alta diversidade de tipos e modelos de dispostivos;
  • 9.
  • 10.
    Open Handset Alliance •Aliança – Grupo formado por gigantes da telefonia mundial – Liderança:
  • 11.
    • Objetivos – Criaçãode padrões abertos para telefonia móvel; – Inovações na área móvel, oferecendo experiências mais ricas e acessíveis para os usuários. Open Handset Alliance
  • 12.
    O que éo Android?
  • 13.
    • Definição – Plataformaintegrada para dispositivos móveis; – Composta por um Sistema Operacional, Middleware e aplicações; • Características – Transparência: Possibilidade de acesso a recursos do dispositivo por meio de API’s, ou seja, aplicativos podem utilizar qualquer recurso disponibilizado pelo Sistema Operacional; O que é o Android?
  • 14.
    • Características (cont.) –Não-distinção: Qualquer aplicativo pode ser estendido (ou até mesmo substituído) por outro não nativo; – Web-ready: Aplicativos Android podem exibir páginas da HTML (inclusive HTML5), CSS e Javascript; – Paralelismo: O Android é um ambiente multitarefa, no qual os aplicativos podem ser executados em paralelo (multitasking); O que é o Android?
  • 15.
  • 16.
  • 17.
  • 18.
    • Applications – Camadade alto nível; – Local onde os aplicativos são executados: • Browser, calendário, agenda de contatos, jogos, etc. • Application Framework – Engloba API’s e gerenciadores de recursos; – Framework de componentes (úteis para desenvolvedores); Arquitetura do Android
  • 19.
    • Libraries – Englobaas principais bibliotecas utilizadas pelo sistema: • LibC, SQLite, OpenGL, entre outras; • Linux Kernel – Núcleo do S.O. Android (agora utiliza versão 3.14); – Gerenciamento de processos, energia, drivers de hardware e configurações de segurança; – Responsável pela abstração do hardware do dispositivo; Arquitetura do Android
  • 20.
    • Android Runtime –Camada-chave, onde se encontra a Dalvik; – Responsável, por exemplo, pelo multitasking e gerenciamento de memória; – Garante conceito de ‘’sandbox’’ de aplicações, ou seja: • Aplicações não podem interferir em outras, e nem no S.O.; • Aplicações não podem interferir diretamente no hardware; • Não existe a possibilidade de vinculação de aplicações a um hardware específico; Arquitetura do Android
  • 21.
    • Android Runtime(cont.) – Independência de aplicações: • Cada aplicação representa um processo distinto no sistema; • Processos se comunicam através de troca de mensagens; • Kernel garante o isolamento de espaço em memória; • Em suma: aplicações ocupam o mesmo espaço em memória, mas cada uma delas representa uma instância distinta da Dalvik. Arquitetura do Android
  • 22.
  • 23.
    • Propósito – Abstraçãode hardware dos dispositivos que executam o Android; – Otimizada para aparelhos móveis, que precisam consumir o mínimo de memória, bateria e processamento possível. Dalvik Virtual Machine
  • 24.
    • Conceitos – Dalvikfunciona como uma instância isolada de processo; – Cada aplicação roda em seu processo, que executa como uma unidade totalmente granular: • Em caso de crash, não afeta o sistema e nem outros processos em execução paralela; • Garantia de segurança; – Compilador que segue o padrão Just in Time (JIT): • A cada execução do app, a DVM traduz parte dos bytecodes em código de máquina (binário); • Assim, a cada passo, o sistema realiza mais cache destes recursos; • Projetado desta forma para reduzir o tempo de warm-up. Dalvik Virtual Machine
  • 25.
    • Conceitos (cont.) –‘’init’’ é o processo pai de todos os processos Android; – Sempre que uma aplicação Android é executada, a seguinte sequência de passos é executada: 1. “init’’ cria um subprocesso chamado zygote; 2. zygote carrega e inicializa uma instância da DVM; 3. zygote contatcta o ActivityManager que se responsabiliza por executar as classes Java referentes a esta aplicação; Dalvik Virtual Machine
  • 26.
  • 27.
    • Origem – Dalviké um dos produtos da Open Handset Alliance; – O nome vem de uma pequena cidade da Islândia, local de origem de seu principal conceptor, Dan Bornstein; Dalvik Virtual Machine
  • 28.
    • Funcionamento – ADalvik não é a JVM! – Embutido no Android, existe uma ferramenta chamada dx, responsável por transformar os arquivos com extensão .class em arquivos de extensão .dex (Dalvik Executable); – Em outras palavras, o bytecode Dalvik pode ser executado em qualquer dispositivo Android, independentemente do hardware; Dalvik Virtual Machine
  • 29.
    • Funcionamento (cont.) –Aplicações Android são compiladas em arquivos .dex, que são empacotados em um único arquivo no dispositivo, que possui a extensão .apk (Android Package) ; Dalvik Virtual Machine
  • 30.
  • 31.
    • Motivações decriação – A Dalvik não utiliza as bibliotecas-padrão do Java, que se dividem em 3 grandes grupos: • Java Standard Edition ; • Java Enterprise Edition; • Java Micro Edition; – O Android também não inclui bibliotecas gráficas do Java (AWT e Swing). Em vez disso, incluiu suas próprias. Dalvik Virtual Machine
  • 32.
    • Motivações decriação (cont.) – Em suma, a Dalvik não utiliza a biblioteca Java class, presente no ambiente de execução Java, mas sim, uma alternative open-source: – Decisão tomada pois mesmo o Java, suas bibliotecas e ferramentas sendo gratuitas, a JVM, em si, não é: • Possibilidade de problemas de licença com a Oracle; • …o que não adiantou: inúmeros processos ocorridos! Dalvik Virtual Machine
  • 33.
  • 34.
    • Componentes deAplicação – Conjunto de componentes, que desempenham papéis específicos e integrados, representam pilares da aplicação; Aplicações Android
  • 35.
    • Intent – Representaa forma padrão de ativação de componentes; – Envia uma mensagem assíncrona ao Sistema Operacional, explicitando a intenção de se realizar uma ação: • Iniciar uma nova Activity da aplicação, • Realizar uma chamada telefônica para determinado número, etc.; – A classe Intent contém uma lista pré-determinada de constantes, para execução de ações gerais, tais como: • ACTION_CALL: Ligar para um número de telefone; • ACTION_VIEW: Exibir informações através de uma Activity; Aplicações Android
  • 36.
    • Intent (cont.) –Filtragem de Intent leva em consideração 3 aspectos: • Ação; • Categoria; • Opcionalmente, informações adicionais, como URI e MIME Type; Aplicações Android
  • 37.
    • Activity – Representauma interface visual da aplicação (tela); – Local onde elementos gráficos, chamados de views, são dispostos, de forma a compor a tela; – Interação com o usuário; – Representam estruturas independentes entre si e, geralmente, há uma Activity principal, que representa o ponto de partida da aplicação; Aplicações Android
  • 38.
    • Activity (cont.) –Declaração de Activity no arquivo AndroidManifest.xml Aplicações Android
  • 39.
    • Services – Executamações em background, ligados a operações de longa duração ou até mesmo processamentos remotos; – Não possuem interface gráfica, e executam em background mesmo se o usuário inicia novas aplicações: • Player de música; • Transferência de dados; – Devem ser usados sempre que uma ação precisa se estender além do escopo da aplicação; Aplicações Android
  • 40.
    • Services (cont.) –Declaração de Service no arquivo AndroidManifest.xml Aplicações Android
  • 41.
    • Content Provider –Gerencia formas de acesso padronizadas e segurança de repositórios de dados entre aplicações distintas; – Acessos ao Content Provider são feitos através de um cliente específico, ou seja, um Content Resolver: • Elo de ligação entre o ContentProvider e a aplicação cliente; • Buscas realizadas através do método query() ; • Encaminha a requisição para o Content Provider adequado, através da autoridade da query-string; – Necessidade de implementação dos métodos CRUD; Aplicações Android
  • 42.
    • Content Provider(cont.) – Definição de Content URI : • Prefixo/Scheme: Prefixo padrão ‘’content://’’, que garante o tratamento da requisição por um Content Provider adequado; • Autoridade: Identificador único do Content Provider. Geralmente possui o caminho completo da classe na aplicação; • Path: Caminho que o Content Provider utiliza para efetuar a query na tabela correta; • Parameter: Parâmetro adicional que denota o intuito de se obter um registro específico da tabela, utilizando o campo _ID; Ex: content://my_library/books/13 Aplicações Android
  • 43.
    • Content Provider(cont.) – Definição de Content Provider no AndroidManifest.xml: Aplicações Android
  • 44.
    • Broadcast Receiver –Android implementa envio de mensagens através do padrão ‘’Observer’’ • Intents são, por padrão, enviadas por meio de broadcast; • As mensagens são enviadas sem saber quem as irá receber; • Qualquer aplicação está apta a receber estas mensagens; • Filtros são necessários para decodificar o receptor correto; – Broadcast Receivers ‘’ouvem’’ mensagens enviadas por qualquer aplicação • Se as tags da mensagem corresponderem a um determinado filtro, o Broadcast Receiver é instanciado, se já não o estiver; Aplicações Android
  • 45.
    • Broadcast Receiver(cont.) – Exemplos de constantes de Intents nativas, cujos componentes-alvo são Broadcast Receivers: • ACTION_BOOT_COMPLETE (Total inicialização do S.O.); • ACTION_HEADSET_PLUG (Aviso de Headset inserido ou retirado); • ACTION_BATTERY_LOW (Aviso de nível crítico de bateria); Aplicações Android
  • 46.
    • Broadcast Receiver(cont.) – Broadcast Receivers podem ser registrados de 2 formas: • Dinamicamente, através do método registerBroadcast(); • Via AndroidManifest.xml, através da tag <receiver>; Aplicações Android
  • 47.
    • Necessidade deinteração? Notificações! – Canal de comunicação entre componentes; – Exibem informações para o usuário; – Podem emitir som, piscar de LEDs e até mesmo vibrações; Aplicações Android
  • 48.
  • 49.
    • Ciclo devida de um aplicativo – Setup: Instalação do ambiente Android (SDK), criação de AVD’s e conexão de dispositivos-alvo; – Development: Desenvolvimento de código do projeto referente ao aplicativo; – Debugging/Testing: Execução da aplicação em modo Debug e utilização de ferramentas diversas de depuração como a classe android.util.Log; Publicação de Aplicativos
  • 50.
  • 51.
    • Google Play –Portal oficial de distribuição de aplicativos Android; – Possui guidelines e políticas de submissão de apps, como: • Não permite conteúdos considerados como spam; • Garantia de não infrigimento da propriedade intelectual de aplicativos de terceiros; • Proibição de qualquer material pornográfico em apps; • Não permite upload de apps que coletam informações, com fim malicioso, sem o consentimento do usuário (spywares) Publicação de Aplicativos
  • 52.
  • 53.
    • Presente – AndroidLollipop (5.0) Presente e futuro do Android
  • 54.
    • Principais features –Novidades em animações e transições; – Notificações inteligentes e configuráveis; – Projeto Volta, que irá oferecer maior eficiência no consumo de bateria; – Novas APIs de suporte a multimedia tunneling (como o 4K); – Melhorias significativas em renderização gráfica e áudio; – Material design; – ART nativo; Presente e futuro do Android
  • 55.
    • Material design –Padronização de comportamento visual entre dispositivos; – Novas APIs para temas, widgets e views; – Adição do conceito de ‘’eixo Z’’ em views (elevação 3D); Presente e futuro do Android
  • 56.
    • ART – Implementaa abordagem ‘’Ahead of Time’’ (AoT); • Realiza pré-compilação do bytecode (via dex2oat) em linguagem de máquina (binário) no ato da instalação do app no sistema; • Ganhos de performance em garbage collection; • Transforma o código em uma dependência do sistema; • Menor uso de CPU, logo, uma redução do consumo de bateria; Presente e futuro do Android
  • 57.
    • Novas frentes Presentee futuro do Android
  • 58.
    • Futuro – Númerosde crescimento • Cerca de 75% dos smartphones mundiais rodam o Android; • Mais de 1 milhão de novas ativações ocorrendo diariamente; • 1 bilhão de usuários ativos mensalmente nos serviços do Google; Presente e futuro do Android
  • 59.
    • Previsão devendas de smartphones (IDC) Presente e futuro do Android
  • 60.
  • 61.
    • PS Gamers –App Android de consulta a dados da Playstation Network; – Possibilita ao usuário visualizar diversas informações, como: • Perfil; • Level, progresso e escada de troféus; • Lista de games; • Troféus conquistados por game; • Detalhes de troféu; • Amigos online; • Consulta de games e troféus de cada amigo; Projeto Prático
  • 62.
    • Login eHome Projeto Prático
  • 63.
    • Trophy laddere Game list Projeto Prático
  • 64.
    • Game trophiese Trophy details Projeto Prático
  • 65.
    • Online friendse Offline friends Projeto Prático
  • 66.
    • Friend profilee Friend game list Projeto Prático
  • 67.
  • 68.
    • Referências utilizadas http://developer.android.com/reference/  http://oglobo.globo.com/tecnologia/eric-schmidt-preve-um- futuro-com-android-para-todos-4097588  http://www.idc.com/prodserv/smartphone-os-market- share.jsp  http://www.linuxforu.com/2011/06/virtual-machines-for- abstraction-dalvik-vm/  http://developer.android.com/about/versions/lollipop.html;  http://www.google.com/design/spec/material- design/introduction.html Referências
  • 69.
    • Referências utilizadas(cont.)  http://android.stackexchange.com/questions/7802/why- does-dalvik-virtual-machine-need-to-run-in-every-process  http://developer.android.com/distribute/tools/launch- checklist.html  http://www.electronicsweekly.com/eyes-on-android/what- is/what-is-the-dalvik-virtual-machine-2011-10/  https://software.intel.com/en-us/blogs/2014/06/18/art-vs- dalvik-introducing-the-new-android-x86-runtime  http://pocketnow.com/2014/05/06/q1-2014-shipment- numbers Referências
  • 70.
  • 71.