Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais Abertos e Mobile Aula 01 – Sistema Operacional Android Prof. Me. Hebert Silva 1Sistemas Operacionais Abertos e Mobile - 2021 O que é o Android? • O Android é um sistema operacional baseado no núcleo Linux com uma interface de usuário (UI) baseada na manipulação direta. • Projetado principalmente para dispositivos móveis com tela sensível ao toque como smartphones e tablets; atualmente também oferece interface específica para TVs, carros e relógios de pulso (wearables). • Foi desenvolvido pela Open Handset Alliance, composta por várias companhias de telecomunicações e liderada pela empresa de tecnologia Google. Sistemas Operacionais Abertos e Mobile - 2021 2 O que é o Android? •A plataforma ofereceu uma abordagem unificada para o desenvolvimento de aplicativos mobile. •Grande diferencial na ocasião de seu lançamento e continua até hoje •Os projetistas precisam criar para Android e suas aplicações estão prontas para ser portadas a diferentes dispositivos que são suportados pela plataforma Sistemas Operacionais Abertos e Mobile - 2021 3 Por que o Android UI agradável • O SO provê uma interface básica bela e intuitiva com o usuário. Conectividade • GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi Fi, LTE, NFC e WiMAX. Armazenamento • SQLite: banco de dados leve e relacional. Suporte multimídia • H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF e BMP Mensagens • SMS e MMS Sistemas Operacionais Abertos e Mobile - 2021 4 Por que o Android? Navegador • Baseado no Webkit, com suporte para HTML5, CSS3 e V8 JavaScript. Wi-Fi Direct • Permite aos apps a descoberta e pareamento direto, através da uma conexão ponto-a-ponto de banda larga. • GCM – Google Cloud Messaging • Serviço que permite aos desenvolvedores enviar mensagens de dados curtas diretamente aos seus usuários. Sistemas Operacionais Abertos e Mobile - 2021 5 Por que o Android? Multitarefa • Várias aplicações executando ao mesmo tempo • (simultaneamente). Multitoque • Suporte nativo para multitoque, introduzido no HTC Hero. Widgets redimensionáveis • Android Beam • Uma tecnologia baseada em NFC que permite o compartilhamento instantaneo através do toque entre dois dispositivos habilitados. Sistemas Operacionais Abertos e Mobile - 2021 6 Versões Sistemas Operacionais Abertos e Mobile - 2021 7 Versões Sistemas Operacionais Abertos e Mobile - 2021 8 Versões Sistemas Operacionais Abertos e Mobile - 2021 9 Versões Sistemas Operacionais Abertos e Mobile - 2021 10 Versões Sistemas Operacionais Abertos e Mobile - 2021 11 Versões Sistemas Operacionais Abertos e Mobile - 2021 12 Versões Sistemas Operacionais Abertos e Mobile - 2021 13 Versões Sistemas Operacionais Abertos e Mobile - 2021 14 Versões Sistemas Operacionais Abertos e Mobile - 2021 15 Versões Sistemas Operacionais Abertos e Mobile - 2021 16 Versões Sistemas Operacionais Abertos e Mobile - 2021 17 Versões Sistemas Operacionais Abertos e Mobile - 2021 18 Algumas Interfaces... Sistemas Operacionais Abertos e Mobile - 2021 19 KitKat Lollipop Marshmallow Nougat 10 11 Market share entre versões Sistemas Operacionais Abertos e Mobile - 2021 20 Market Share up 2018 Sistemas Operacionais Abertos e Mobile - 2021 21 Market Share Dispositivos Sistemas Operacionais Abertos e Mobile - 2021 22 Market Share SO Sistemas Operacionais Abertos e Mobile - 2021 23 Sistemas Operacionais Abertos e Mobile - 2021 24 Distribuição de Apps Sistemas Operacionais Abertos e Mobile - 2021 25 Distribuição de Apps Sistemas Operacionais Abertos e Mobile - 2021 26 Distribuição de Apps Sistemas Operacionais Abertos e Mobile - 2021 27 Máquina Virtual Dalvik •Dalvik é uma máquina virtual de propósito específico projetada especificamente para Android, desenvolvida por Dan Bornstein e seu time no Google”. •Uma vez que o hardware dos dispositivos Android pode e geralmente é bem limitado quanto aos recursos disponíveis, a máquina virtual Java não atenderia às necessidades da plataforma, tendo de ser construída uma nova. •O nome Dalvik remete a um vilarejo da Islândia e foi escolhido por Bornstein (LINSTAEDT, 2012). Sistemas Operacionais Abertos e Mobile - 2021 28 Máquina Virtual Dalvik • A JVM tradicional e a Dalvik VM diferem em muitos aspectos, principalmente no que tange à portabilidade e suporte à bibliotecas de terceiros. • Outros recursos como gerenciamento de memória e compilação JIT também foram profundamente alterados, tornando-a muito mais econômica em termos de consumo de memória e mais performática quanto ao uso de CPU. • Além disso, outras propostas de máquinas virtuais em substituição à Dalvik estão sendo projetadas e desenvolvidas, buscando obter um ajuste ainda mais fino com relação às necessidades da plataforma que evoluiu bastante desde sua criação. Sistemas Operacionais Abertos e Mobile - 2021 29 Arquitetura da plataforma • O Android é uma pilha de software com base em Linux de código aberto criada para diversos dispositivos e fatores de forma. • O diagrama a seguir mostra a maioria dos componentes da plataforma Android. Sistemas Operacionais Abertos e Mobile - 2021 30 Kernel do Linux • A fundação da plataforma Android é o kernel do linux. Por exemplo: o Android Runtime (ART) confia no kernel do Linux para cobrir funcionalidades como encadeamento e gerenciamento de memória de baixo nível. • Usar um kernel do Linux permite que o Android aproveite os recursos de segurança principais e que os fabricantes dos dispositivos desenvolvam drivers de hardware para um kernel conhecido. Sistemas Operacionais Abertos e Mobile - 2021 31 Camada de abstração de hardware (HAL) • A camada de abstração de hardware (HAL) fornece interfaces padrão que expõem as capacidades de hardware do dispositivo para a estrutura da Java API de maior nível. • A HAL consiste em módulos de biblioteca, que implementam uma interface para um tipo específico de componente de hardware, como o módulo de câmera ou Bluetooth. • Quando uma Framework API faz uma chamada para acessar o hardware do dispositivo, o sistema Android carrega o módulo da biblioteca para este componente de hardware. Sistemas Operacionais Abertos e Mobile - 2021 32 Android Runtime • Para dispositivos com Android versão 5.0 (API nível 21) ou mais recente, cada aplicativo executa o próprio processo com uma instância própria do Android Runtime (ART). • O ART é projetado para executar várias máquinas virtuais em dispositivos de baixa memória executando arquivos DEX, um formato de bytecode projetado especialmente para Android, otimizado para oferecer consumo mínimo de memória. • Construa cadeias de ferramentas, como Jack, e compile fontes Java em bytecodes DEX, que podem ser executadas na plataforma Android. Sistemas Operacionais Abertos e Mobile - 2021 33 Principais Recursos ART • Compilação "ahead-of-time" (AOT) e "just-in-time" (JIT) • Coleta de lixo (GC) otimizada • No Android 9 (nível de API 28) ou superior, a conversão dos arquivos de formato Dalvik Executable (DEX) de um pacote de aplicativos usa um código de máquina mais compacto. • Melhor compatibilidade de depuração, inclusive um criador de perfil de exemplo, exceções de diagnóstico detalhadas e geração de relatórios de erros, além da capacidade de definir pontos de controle para monitorar campos específicos • Antes do Android versão 5.0 (API nível 21), o Dalvik era o tempo de execução do Android. Se o seu aplicativo executa o ART bem, deve funcionar no Dalvik também, mas talvez não vice-versa. • O Android também contém um conjunto das principais bibliotecas de tempo de execução que fornecem a maioria da funcionalidade da linguagem de programação Java, inclusive alguns recursos de linguagem Java 8 que a biblioteca da API Java usa. Sistemas Operacionais Abertos e Mobile- 2021 34 Bibliotecas C/C++ nativas • Vários componentes e serviços principais do sistema Android, como ART e HAL, são implementados por código nativo que exige bibliotecas nativas programadas em C e C++. • A plataforma Android fornece as Java Framework APIs para expor a funcionalidade de algumas dessas bibliotecas nativas aos aplicativos. Por exemplo, é possível acessar OpenGL ES pela Java OpenGL API da estrutura do Android para adicionar a capacidade de desenhar e manipular gráficos 2D e 3D no seu aplicativo. • Se estiver desenvolvendo um aplicativo que exige código C ou C++, você pode usar o Android NDK para acessar algumas dessas bibliotecas de plataforma nativa diretamente do seu código nativo. Sistemas Operacionais Abertos e Mobile - 2021 35 Estrutura da Java API • O conjunto completo de recursos do SO Android está disponível pelas APIs programadas na linguagem Java. Essas APIs formam os blocos de programação que você precisa para criar os aplicativos Android simplificando a reutilização de componentes e serviços de sistema modulares e principais, inclusive: • Um sistema de visualização rico e extensivo útil para programar a IU de um aplicativo, com listas, grades, caixas de texto, botões e até mesmo um navegador da web incorporado • Um gerenciador de recursos, fornecendo acesso a recursos sem código como strings localizadas, gráficos e arquivos de layout • Um gerenciador de notificação que permite que todos os aplicativos exibam alertas personalizados na barra de status • Um gerenciador de atividade que gerencia o ciclo de vida dos aplicativos e fornece uma pilha de navegação inversa • Provedores de conteúdo que permite que aplicativos acessem dados de outros aplicativos, como o aplicativo Contatos, ou compartilhem os próprios dados • Os desenvolvedores têm acesso completo às mesmas Framework APIs que os aplicativos do sistema Android usam. Sistemas Operacionais Abertos e Mobile - 2021 36 Aplicativos do sistema • O Android vem com um conjunto de aplicativos principais para e-mail, envio de SMS, calendários, navegador de internet, contatos etc. Os aplicativos inclusos na plataforma não têm status especial entre os aplicativos que o usuário opta por instalar. Portanto, um aplicativo terceirizado pode se tornar o navegador da Web, o aplicativo de envio de SMS ou até mesmo o teclado padrão do usuário (existem algumas exceções, como o aplicativo Configurações do sistema). • Os aplicativos do sistema funcionam como aplicativos para os usuários e fornecem capacidades principais que os desenvolvedores podem acessar pelos próprios aplicativos. Por exemplo: se o seu aplicativo quiser enviar uma mensagem SMS, não é necessário programar essa funcionalidade — é possível invocar o aplicativo de SMS que já está instalado para enviar uma mensagem ao destinatário que você especificar. Sistemas Operacionais Abertos e Mobile - 2021 37 A hierarquia do ciclo de vida do processo Um processo no Android pode estar em um dos cinco estados diferentes a qualquer momento, do mais importante ao menos importante: 1. Processo em primeiro plano : o aplicativo que você está usando é considerado o processo de primeiro plano. Outros processos também podem ser considerados processos de primeiro plano - por exemplo, se estiverem interagindo com o processo que está atualmente em primeiro plano. Existem apenas alguns processos em primeiro plano a qualquer momento. 2. Processo visível : um processo visível não está em primeiro plano, mas ainda está afetando o que você vê na tela. Por exemplo, o processo em primeiro plano pode ser uma caixa de diálogo que permite que você veja um aplicativo por trás dele - o aplicativo visível em segundo plano seria um processo visível. Sistemas Operacionais Abertos e Mobile - 2021 38 A hierarquia do ciclo de vida do processo 3. Processo de serviço : um processo de serviço não está vinculado a nenhum aplicativo visível na sua tela. No entanto, está fazendo algo em segundo plano, como tocar música ou fazer o download de dados em segundo plano. Por exemplo, se você começar a tocar música e mudar para outro aplicativo, a reprodução de música em segundo plano será tratada por um processo de serviço. 4. Processo de plano de fundo : Processos em segundo plano não estão visíveis no momento para o usuário. Eles não têm impacto sobre a experiência de usar o telefone. A qualquer momento, muitos processos em segundo plano estão em execução no momento. Você pode pensar nesses processos em segundo plano como aplicativos "pausados". Eles são mantidos na memória para que você possa rapidamente voltar a usá-los quando voltar para eles, mas eles não estão usando o tempo valioso da CPU ou outros recursos que não sejam de memória. Sistemas Operacionais Abertos e Mobile - 2021 39 A hierarquia do ciclo de vida do processo • 5. Processo vazio : um processo vazio não contém mais dados do aplicativo. Ele pode ser mantido para fins de armazenamento em cache para acelerar o lançamento de aplicativos mais tarde, ou o sistema pode matá-lo conforme necessário. • Suponha que você ligue o telefone e abra um aplicativo de música. • Enquanto você o usa, o aplicativo de música será um processo em primeiro plano. • Quando você começar a tocar música e sair do aplicativo de música, a música continuará tocando como um processo de serviço. Sistemas Operacionais Abertos e Mobile - 2021 40 Gerencia automática de processos • O Android faz um bom trabalho gerenciando automaticamente esses processos, e é por isso que você não precisa de um assassino de tarefas no Android. • Quando o Android precisar de mais recursos do sistema, ele começará a matar os processos menos importantes primeiro. O Android começará a matar os processos vazios e em segundo plano para liberar memória se você estiver com pouca carga. Se você precisar de mais memória - por exemplo, se estiver jogando um jogo particularmente exigente em um dispositivo sem muita RAM, o Android começará a matar os processos de serviço, para que seu streaming de músicas e downloads de arquivos parem. Sistemas Operacionais Abertos e Mobile - 2021 41 Gerencia automática de processos • Na maioria dos casos , O Android faz tudo isso sem precisar se preocupar com isso. O Android inteligentemente usa a memória RAM do seu dispositivo para armazenar aplicativos e outros dados em cache, porque não faz sentido deixar sua memória RAM vazia. • Obviamente, o Android fornece aos aplicativos muita flexibilidade que eles têm espaço para se comportarem mal. Por exemplo, um aplicativo mal codificado pode iniciar um processo de serviço que permanece em execução em segundo plano o tempo todo, consumindo todo o tempo da CPU e diminuindo drasticamente a vida útil da bateria. Sistemas Operacionais Abertos e Mobile - 2021 42 Gerencia de processos • Aplicativos Android podem começar em resposta a eventos • um desenvolvedor pode programar seu aplicativo para ser executado automaticamente na inicialização e executar um serviço em segundo plano. • Os aplicativos podem ser iniciados em resposta a uma variedade de outros eventos, como quando você tira uma foto, quando a conexão de dados muda e assim por diante. • Isso permite que os aplicativos executem ações em resposta a eventos sem executar constantemente em segundo plano. Sistemas Operacionais Abertos e Mobile - 2021 43 Gerenciando Processos Sistemas Operacionais Abertos e Mobile - 2021 44 Podemos usar o menu multitarefa no Android 4.0 e posterior para fazer um gerenciamento básico de processos. Para acessá-lo, toque no botão multitarefa dedicado em dispositivos Você também pode ir para a tela Configurações, tocar em Aplicativos, tocar em um aplicativo e usar o botão Forçar para matar um aplicativo que se comporta mal. Mão na Massa Sistemas Operacionais Abertos e Mobile - 2021 45 Referências •https://gs.statcounter.com/android-version-market- share/mobile-tablet/worldwide/#monthly-201812- 202107-bar•https://developer.android.com/about •https://www.luiztools.com.br/post/tudo-sobre- maquina-virtual-dalvik-do-android/ •https://pt.phhsnews.com/how-android-manages- processes2561 •https://www.youtube.com/watch?v=QTVz1oH_heU&a b_channel=NewbieAulas Sistemas Operacionais Abertos e Mobile - 2021 46 https://gs.statcounter.com/android-version-market-share/mobile-tablet/worldwide/#monthly-201812-202107-bar https://developer.android.com/about https://www.luiztools.com.br/post/tudo-sobre-maquina-virtual-dalvik-do-android/ https://pt.phhsnews.com/how-android-manages-processes2561 https://www.youtube.com/watch?v=QTVz1oH_heU&ab_channel=NewbieAulas
Compartilhar