\documentclass[]{beamer}
% Class options include: notes, notesonly, handout, trans,
%                        hidesubsections, shadesubsections,
%                        inrow, blue, red, grey, brown

% Theme for beamer presentation.
\usepackage{beamerthemesplit} 
% Other themes include: beamerthemebars, beamerthemelined, 
%                       beamerthemetree, beamerthemetreebars  

\usepackage[brazil]{babel}     % nomes e hifenação em português
\usepackage[latin1]{inputenc}  % aceitar texto acentuado em ISO-Latin1
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}

\title{Sistemas Embarcados Android}    % Enter your title between curly braces
\author{Carlos Marcelo Pedroso}                 % Enter your name between curly braces
\institute{Engenharia Elétrica UFPR}      % Enter your institute name between curly braces
\date{\today}                    % Enter the date or \today between curly braces

\begin{document}

% Creates title page of slide show using above information
\begin{frame}
  \titlepage
\end{frame}
%\note{Talk for 30 minutes} % Add notes to yourself that will be displayed when
                           % typeset with the notes or notesonly class options

\section[Outline]{}

% Creates table of contents slide incorporating
% all \section and \subsection commands
\begin{frame}
  \tableofcontents
\end{frame}


\section{Sistema Android}



\subsection{Introdução}

\begin{frame}
 \frametitle{Introdução}   

  \begin{columns}[c]
  \column{7cm}  % slides are 3in high by 5in wide
  \begin{itemize}
  
  \item Desenvolvido para sistemas  móveis pelo Google: Android Open
Source Project (AOSP) 
  \item Grande sucesso, devido a combinação de:
  \begin{itemize}
      \item open source licensing
      \item aggressive go-to-market
      \item interface altamente amigável
  \end{itemize}
 \item O Android também está atraindo a atenção de desenvolvedores de sistemas embarcados.
 \item Documentação: \href{http://source.android.com}{http://source.android.com} 
  \end{itemize}
  \column{3cm}   \framebox{\includegraphics[width=3cm]{Imagens/android-logo.jpg} }
  \end{columns}
\end{frame}

\begin{frame}
 \frametitle{Histórico}   
    \begin{itemize}
      \item Em 2002 a empresa Danger Inc. desenvolve o sistema operacional Sidekick, para telefones
      \item O sistema não obteve sucesso. No entanto, o buscador padrão era o Google.
      \item Com o insucesso, o CEO Andy Rubin  sai da empresa e cria a Android Inc. em 2003 e inicia o desenvolvimento de sistemas operacionais para telefones celulares.
      \item Em 2005, o Google compra a Android Inc.
  \end{itemize}
  
\end{frame}


\begin{frame}
 \frametitle{Versões}   

  \begin{center}
      \includegraphics[width=10cm]{Imagens/android-versions.png} 
  \end{center}
  \tiny{Fonte: Embedded Android, Karim Yaghmour, O'Reilly 2012}
\end{frame}

\begin{frame}
 \frametitle{Versões}   

  \begin{center}
     \begin{table}
       \begin{tabular}{l l l}
       \hline
	  Versão		&Codename	&Uso estimado\\
	 \hline
	 \hline
	  2.2            &Froyo            & 0.6\%\\
	  2.3.3-2.3.7    &Gingerbread      & 9.8\%\\
	  4.0.3-4.0.4    &Ice Cream        & 8.5\%\\
	  4.1.x          &Jelly Bean       & 22.8\%\\
	  4.2.x          &Jelly Bean       & 20.8\%\\
	  4.3            &Jelly Bean       & 7.3\%\\   
	  4.4            & Kitkat          & 30.2\%\\
  
	  \hline
         \end{tabular}
     \end{table}

     Nova versão: 5.0 (Android Lollipop, http://developer.android.com/about/versions/lollipop.html)
     
  \end{center}
  \tiny{Fonte: http://developer.android.com/about/dashboards/index.html (novembro/2014)}
\end{frame}




\subsection{Principais Características}

\begin{frame}
  \frametitle{Principais Características}
  \begin{itemize}
   \item  Application framework: disponível para desenvolvedores em \href{http://developer.android.com}{http://developer.android.com}
   \item Dalvik Virtual Machine: versão do Google para máquina virtual Java, com simplificações para melhorar o desempenho
   \item WebKit-based browser, pode ser usado e integrado pelas aplicações
   \item Interface gráfica: o Android possui sua biblioteca gráfica 2D, para 3d é usado o OpenGL ES
 \end{itemize}
\end{frame}

 \begin{frame}
  \frametitle{Principais Características}
  \begin{itemize}
 \item SQLite: parte do sistema, disponível aos aplicativos
   \item Media support: implementado pelo próprio sistema
  \item GSM telephony support: o fabricante deve fornecer os drivers
  \item Bluetooth, 3G, e WiFi: suporta a grande maioria dos dispositivos
  \item Camera, GPS, bússola, e acelerômetro: API para os aplicativos, fabricantes fornecem drivers
  \item Facilidades para desenvolvedores: SDK disponível gratuitamente, bem  como emulador, plugin Eclipse e ferramentas de debug
\end{itemize}
\end{frame}

 \begin{frame}
  \frametitle{Principais Características}
  \begin{itemize}
 \item SQLite: parte do sistema, disponível aos aplicativos
   \item Media support: implementado pelo próprio sistema
  \item GSM telephony support: o fabricante deve fornecer os drivers
  \item Bluetooth, 3G, e WiFi: suporta a grande maioria dos dispositivos
  \item Camera, GPS, bússola, e acelerômetro: API para os aplicativos, fabricantes fornecem drivers
  \item Facilidades para desenvolvedores: SDK disponível gratuitamente, bem  como emulador, plugin Eclipse e ferramentas de debug
\end{itemize}
\end{frame}


 \begin{frame}
  \frametitle{Principais Características}
  \begin{itemize}
 \item Multitasking
   \item Multi-touch
  \item Reconhecimento de comandos de voz
  \item VoIP / SIP
\end{itemize}
\end{frame}

 \begin{frame}
  \frametitle{Principais Características}
  \begin{itemize}
 \item Ecosistema para divulgação de aplicativos: Android Market / Google Play; em novembro de 2014: 1.300.000 aplicativos (estimado).
   \item Consistent app APIs: garantia de compatibilidade da API de desenvolvimento com APIs antigas. O SO em si não tem garantias.
   \item Customizável (código fonte aberto); no entanto, o desenvolvimento é feito a portas fechadas pelo Google, sem participação da comunidade (como ocorre normalmente em sistemas open source). No entanto, a versão 3.0 não foi disponibilizada.
\end{itemize}
 \tiny{\emph{Isto torna a plataforma muito interessante para desenvolvedores de sistemas embarcados, que buscam uma GUI que seja intuitiva e familiar ao usuário.}}
\end{frame}

 \begin{frame}
  \frametitle{Requisitos de Hardware}
  \begin{itemize}
   \item Android deve funcionar em qualquer plataforma que suporte o Linux.
   \item Principais plataformas: ARM, x86, MIPS, SuperH, e PowerPC.
   \item Ver pag. 16 do livro Embedded Android
\end{itemize}
\end{frame}

\subsection{Linux Kernel}
\begin{frame}
  \frametitle{Linux Kernel}   % Insert frame title between curly braces
  \begin{columns}[c]
  \column{7cm}  % slides are 3in high by 5in wide
  \begin{itemize}
  \item O Android roda sobre um núcleo Linux.
  \item Alterações realizadas no kernel: \href{http://www.forbes.com/sites/quora/2013/05/13/what-are-the-major-changes-that-android-made-to-the-linux-kernel/}{http://www.forbes.com/sites/quora/2013/05/13/what-are-the-major-changes-that-android-made-to-the-linux-kernel/}
  \item O Linux provê:
       \begin{itemize}
           \item Camada de abstração de hardware.
           \item Gerência de memória.
           \item Gerência de processos.
           \item Suporte à rede.       
       \end{itemize}
  \item O usuário nunca tem contato com o Linux
 \end{itemize}
  \column{3cm}   \framebox{\includegraphics[width=3cm]{Imagens/android-linux.png} }
  \end{columns}
\end{frame}

\subsection{Principais Módulos}
 \begin{frame}
  \frametitle{Principais Módulos}
    \begin{columns}[c]
  \column{6cm}  % slides are 3in high by 5in wide
  \begin{itemize}
     \item Bionic, pequena e veloz libc (biblioteca), otimizada para uso em sistemas embarcados
     \item Surface Manager: window manager
     \item 2D and 3D graphics hardware support or software simulation
     \item Media codecs: support for major audio/video codecs
     \item SQLite database
     \item WebKit library: HTML rendering
  \end{itemize}

  \column{5cm}   \framebox{\includegraphics[width=5cm]{Imagens/android-modules.png} }
  \end{columns}
  \tiny{ Fonte:  marakana.com/training/android/}

\end{frame}

 \begin{frame}
  \frametitle{Principais Módulos}
  \begin{center}
      \includegraphics[width=8cm]{Imagens/android-modules1.png} 
  \end{center}
  \tiny{Fonte: Embedded Android, Karim Yaghmour, O'Reilly 2012}
\end{frame}

 \begin{frame}
  \frametitle{Android e Java}
  \begin{center}
      \includegraphics[width=4cm]{Imagens/android-java.png} 
  \end{center}
  \tiny{Fonte: Embedded Android, Karim Yaghmour, O'Reilly 2012}
\end{frame}

\begin{frame}
 \frametitle{Sistema de Arquivos}

 \begin{itemize}
  \item O sistema de aquivos possui três principais mount points:
  \begin{enumerate}
   \item um para o sistema
   \item um para aplicações
   \item um para outros
  \end{enumerate}
  \item Cada aplicação possui uma área acessível para ela; nenhum outro aplicativo pode acessar
  \item Teoricamente, podem ser utilizados todos os sistemas de arquivos implementados no Linux
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Sistema de Arquivos}
 \begin{itemize}
  \item Podem ser utilizados vários sistemas de arquivos. No entanto, parece estar sendo utilizado como padrão:
  \begin{enumerate}
   \item /system: yaffs2
   \item /data: yaffs2
   \item  /sdcard: vfat
  \end{enumerate}
  \item No entanto, o fabricante pode alterar:   Samsung Galaxy S usa Samsung RFS (proprietário). Nexus S (Samsung) com Android 2.3 usa Ext4. Existem relatos do uso até da FAT16  para o /system.
  
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Implementação de processos}
 \begin{itemize}
  \item Cada aplicação possui um processo no sistema. 
  \item Cada aplicação possui seus arquivos de configuração com conjunto de preferências.
  \item Cada aplicação possui sua própria base de dados.
  \item Aplicações não podem acessar dados de outras aplicações, a não ser que que seja explicitamente compartilhado.
  \item Cada aplicação possui uma área acessível para ela; nenhum outro aplicativo pode acessar
  \item É esperada a existência de SDCard, com acesso permitido para todos os aplicativos
 \end{itemize}
\end{frame}


\note{The end} 
\end{document}
