dispositivos móveis Distribuição Linux mais bem sucedida da história Vendas na casa de bilhões de dispositivos Bilhões de downloads de aplicações via Google Play Avanços realmente significativos no campo de IoT
software : Subsistemas desenvolvidos pelo próprio Google para o Android Diversos projetos de código-aberto amplamente adotados pela indústria Componentes proprietários, dependendo da combinação de versão do sistema e aparelho-alvo / fabricantes Aplicações pré-embarcadas, de código aberto (AOSP) ou fechado (GMS)
aplicações não tem conhecimento ou acesso aos seus dados (a menos que compartilhados) Aplicações precisam de permissão do usuário para interagir com recursos específicos do sistema, acessar recursos de outras aplicações ou do hardware, dentre outros
uma JVM à risca Dalvik/ART foram desenhados com vistas à boa interoperabilidade com o SO e necessidades dos apps Dalvik/ART executa um bytecode específico, gerado a partir do bytecode Java tradicional A partir do Android Lollipop, o ART é o ambiente de execução padrão
pelo Google em 2013 (Google IO) Aposenta o paradigma anterior de desenvolvimento, baseado em Eclipse, ADT Plugin e ANT Combina as capacidades de uma IDE já consolidada (IntellijIDEA) com uma novo sistema para construir as aplicações (Gradle)
do desenvolvedor Primeira instalação do Android Studio irá oferecer assistente para fazer download e/ou configurar o SDK Ferramentas mais importantes estão integradas com o Android Studio É interessante deixar diretórios no path do seu shell preferido!
como padrão para o Android desde 2013 Oferece recursos avançados e soluções poderosas para problemas comuns enfrentados em grandes projetos É integrado como ferramenta externa ao Android Studio
de interesse, como o próprio sistema operacional, lojas e outros Declarações sobre a estrutura da aplicação e seus componentes, permissões pedidas em tempo de instalação, funcionalidades exigidas, dentre outros
aplicação (estáticos) e o código em execução (dinâmico) Pré-processador cria uma classe Java, formada por referências categorizadas para os recursos da aplicação Cada recurso é mapeado por uma constante inteira No código Java, recursos são acessados por suas referências!
interface de usuário e os eventos passíveis originados do SO aos quais a tela está sujeita Pode ser entendida como um CONTROLLER para a VIEWS com as quais o usuário interage, segundo o padrão MVC
runtime Possui um ciclo de vida bem definido, de acordo com os eventos da tela Como programador, você não possui controle sobre qual estado uma Activity se encontra; mas você pode ser avisado das transições de interesse https://developer.android.com/reference/android/app/Activity.html
sistema gerenciador de recursos do Android Extremamente poderoso e flexível, baseado em qualificadores e convenções Android determina em o recurso correto a ser utilizado em tempo de execução
UI : estática e dinâmica A abordagem estática usa templates previamente construídos em arquivos XML, que serão convertidos em views em tempo de execução Na abordagem dinâmica, os parâmetros de uma view são fornecidos programaticamente
disponíveis na API do Android Definem a View de interesse em relação aos seus atributos e comportamentos Exemplos de ViewGroup : LinearLayout, RelativeLayout, ListView, e outros Exemplos de View simples : Button, TextView, ImageView e outros
necessariamente na mesma aplicação Podem ser explícitos ou implícitos Para um Intent Explícito, a própria mensagem contém a informação de qual componente é o alvo Para um Intent Implícito, Android irá determinar em tempo de execução quais componentes estão aptos a responder a mensagem
trocar de tela, pedindo para o Android iniciar uma nova Activity,através de um Intent Explícito Utilizamos os recursos de outra aplicação para compartilhar algum conteúdo de interesse, como uma URL ou arquivo, através de um Intent Implícito