Market é lançado • Diversidade no tamanho de telas • Caixa de pesquisa rápida • Android 2.1 – Eclair • Google Maps • Personalização de tela • Speech to Text • Android 2.2 – Froyo • Voice to Action • Tethering • Desempenho 5x melhor que o anterior • Introduziu o compilador JIT Dalvik • Trouxe o V8 JS melhorando em até 3x o desempenho do JS • Android 2.3 – Gingerbread • API para Games • NFC • Android 3.0 – HoneyComb • Design for Tablets • Barra de sistema / Configuraçao rápida • Android 4.0 – Ice Cream Sandwich • Android Beam (suporte para transferencia rápida entre dois Androids) • Introduziu pastas e bandejas na Home • Controle do Uso de dados • Android 4.1 - Jelly Bean • Google Now • Notificações acionáveis • Suporte a multiplas contas • Android 4.4 – KitKat • Introduziu o Ok Google • Design imersivo • Android 5.0 – Lollipop • Material Design • Suporte a várias telas • Android Tv, Wear • Android 6.0 – Marshmallow • Google now acessivel pelo botão home • Permissões de apps • Impressão digital • Android 7.0 – Nougat • Suporte a dois apps dividos na mesma tela • Modo VR
primeira versão comercial do Android. • Com suporte a algumas features • Android Market • Realizando download e atualização de aplicativos • Navegador Web • Com suporte a HTML e XHTML, multiiplas páginas abertas em várias janelas • Suporte a camera
novos recursos e foi a primeira versão a usar oficialmente o nome baseado em um doce • Alguns recursos: • Suporte a teclados virtuais • Autorrotação da tela • Gravação e reprodução de vídeos • Suporte a Widgets
Projetos podem ter vários módulos, sendo de alguns tipos • Modulos de Biblioteca • Modulos Android (TV, Glass, Wear, SmartPhone, Tablet) • Modulos do Google Cloud • Manifests • Contem o arquivo AndroidManifest.xml • Java • Contém os arquivos de código fonte, incluindo os de testes automatizados • Res • Contém os outros arquivos que não são código, como arquivos de layout, strings, imagens • Gradle Scripts • Define as configurações de compilação do módulo.
aplicativo requer, como acesso à Internet ou acesso de leitura aos contatos do usuário. • Declara o nível mínimo de API exigido pelo aplicativo, com base em quais APIs o aplicativo usa. • Declara os recursos de hardware e software usados ou exigidos pelo aplicativo, como uma câmera, serviços bluetooth ou uma tela multitouch.
• Inicialize recursos esseciais, exemplo: criação de views e bind de dados • onPause() • é ativado quando a Activity não está mais em focus, exemplo de quando isso acontece: usuário pressionou o botão Back • onDestroy() • Libere os recursos que você criou
uma Activity, como por exemplo: onCreate(), onStart(), onPause(), onStop() • Geralmente, implementamos os seguintes callbacks: • onCreate() • Chamado quando o sistema cria o fragment, • Assim como na Activity, inicialize os componentes necessários • onCreateView() • Chamado quando o sistema irá desenhar o fragment na tela, • Obrigatoriamente é necessário retornar uma View, que é o componente raiz de layout do fragment • onPause() • O sistema chama como a primeira indicação que o usuário está deixando o fragment
propósito geral para manter um aplicativo executado em segundo plano para todos os tipos de razões. • Usado principalmente para operações de longa duração ou execução de trabalhos para processos remotos. • Um serviço não fornece uma interface de usuário.
sistema envie eventos para o aplicativo fora de um fluxo regular de usuários, permitindo que o aplicativo responda esses eventos. • Pode rodar em segundo plano, mas não necessariamente • Não possuem interface de usuários, mas • Podem criar uma notificação na barra de status para alertar o usuário
aplicativo que podem ser armazenados no sistema de arquivos, em um banco de dados SQLite, na Web ou em qualquer outro local de armazenamento persistente ao qual seu aplicativo possa acessar. • Exemplo: o sistema Android fornece um content provider que gerencia as informações de contato do usuário. Como tal, qualquer aplicativo com as permissões adequadas pode consultar o content provider, para ler e escrever informações sobre uma determinada pessoa.
• Utiliza uma linguagem baseada em Groovy ao invés de XML • Projetado para multi-projetos que podem ter alto crescimento, e suporta compilações incrementais • Inteligente a ponto de determinar quais partes da árvore estão atualizadas, de modo que qualquer tarefa dependente dessas partes não precisa ser re-executada. Fonte: Wikipedia
C#, classes não possuem metodos estáticos. • O que pode ser feito, é criar um companion object que será chamado utilizando a mesma sintaxe de um metodo estático