Sobre o Colméia: Grupo de pesquisa em Software e Hardware Livre. Software Livre não é só Linux! Assuntos que serão abordados ● Android é Software Livre? ● Arquitetura Android ● Maquina Virtual Dalvik ● Evolução do Android até os dias de hoje ● Novidades no ICS (Ice Cream Sandwich) ● Novidades recentes com o Android ● Como fazer um aplicativo de Sucesso ANDROID Plataforma para dispositivos movéis ● Baseado em Linux ● Ferramentas de desenvolvimento ● Linguagem mais usada: JAVA ● Maquina virtual Dalvik ● Recursos gráficos otimizados ● Principais fabricantes: - Samsung - HTC - Motorola ○ Rica interatividade Android é Linux - Muito otimizado para Smartphone . - Versão : 1.5 - Kernel : 2.6.27. - Versão : 1.6 - Kernel : 2.6.29. - Versão : 2.0 - Kernel : 2.6.29. - Versão : 2.2 - Kernel : 2.6.32. - Versão : 2.3 - Kernel : 2.6.35. - Versão : 3.0 - Kernel : 2.6.36. - Versão : 4.0 - Kernel : 3.0.1. Kernel 3.3 do Linux incorpora núcleo do Android Agora drivers escritos para o Linux poderão funcionar nativamente no Android, e vice-versa, tornando a vida de todos muito mais fácil e permitindo que os usuários tenham acesso a mais recursos. Software Livre Liberdade de executar, copiar, alterar e re-distribuir “Não é cerveja grátis” - Richard Stallman O que é Copyleft? Software Livre X Android O código fonte do android é publico! Licença predominante: GPL e Apache Software Livre X Android Entendendo ainda mais as camadas de licenças Arquitetura Android Funcionamento interno da plataforma. Aplicativos Framework Bibliotecas Kernel À grosso modo, o Android é uma máquina vir-tual Java rodando sobre o kernel do Linux (com pequenas mudanças) Maquina Virtual Dalvik - É uma maquina virtual criada por Dan Borntein e alguns engenheiros do Google. - Nome devido a uma vila de pescadores na Islândia. - Máquina Virtual Java (ou quase) Maquina Virtual Dalvik - O intuito de "Reinventar a Roda" era melhorar o gerenciamento de processos e o isolamento de threads. - Requer pouca memória. - Multiplas Instâncias (Isolamento de threads) Comparação .jar x .apk .apk -> .dex -> dey -> DVM -> ANDROID Comparação .jar x .apk Code Arquivo JAR descompactado Arquivo JAR compactado Arquivo APK descompactado Bibliotecas Comuns 21.445.320 (100%) 10.662.048 (50%) 10.311.972 (48%) App Web Browser 470,312 (100%) 232.065 (49%) 209.248 (44%) App Relógio Alarme 119.200 (100%) 61.658 (52%) 53.020 (44%) Evolução do Android Evolucao do Android Versão 1.5 - CupCake - Abre rapidamente aplicativo da camera e captura de imagem e filmagem. - Fazer upload de vídeos para o YouTube e Picasa. - Copiar e Colar. Evolucao do Android Versão 1.6 - Donut - Busca por voz. - Busca por gestos. - Grande melhoria no text-to-speech. - O novo Android Market para aplicativos. Evolucao do Android Versão 2.1 - Eclair - Velocidade de hardware otimizada. - Live wallpapers. - Teclados virtuais melhorados. - Mais opções de tamanhos e resolução de telas. Evolução do Android Versão 2.2 - Froyo - Suporte ao Flash 10.1 completo. - Processamento até 5x mais rápido. - Hotspot para até 8 aparelhos. - Possiblidade de salvar aplicativos no cartão SD. - Múltiplas linguagens para teclados. Evolucao do Android Versão 2.3 - Gingerbread - Suporte à NFC. - Teclado padrão multitouch. - Melhorias no controle de aplicações rodando em background. - Gerenciador de Downloads. Evolucao do Android Versão 2.3 - Gingerbread - Suporte a câmera frontal e vídeo conferência nativo. - Suporte a giroscópio. Android 4.0 ICS (Ice Cream Sandwich) Android 4.0 ICS (Ice Cream Sandwich) Video Evolucao do Android Versão 4.0 - Ice Cream Sandwich Tela Tecnologia: Super Amoled HD Resolução: 720 x 1280 Tamanho: 4.65" Ice Cream Sandwich Galaxy Nexus ou Galaxy X ● ● ● 4.65" Super Amoled HD 16 GB Dual Core de 1.2 GHz Ice Cream Sandwich - Foi lançado em 19 de Outubro de 2011. - Lançado com intuito de unificar tablets e smartphones, acabando com fragmentação. - Fortes modificações no visual. Ice Cream Sandwich APIs 15 - Notificações acessadas sem o desbloqueio de tela - Reconhecimento facial - Google+ com Messenger e Hangout - Gerenciador de dados nativo - Finalização de aplicativos mais fácil Ice Cream Sandwich APIs 15 - Navegação na Internet com até 16 abas - Android Beam - Busca offline no Gmail - Screenshot da tela - Ditado Notificações acessadas sem o desbloqueio de tela - Notificações em tempo real são mostradas sem a necessidade de o smatphone esta desbloqueado. Gerenciador de dados nativo Um ótimo recurso para internet 3G por exemplo. COMO CONSTRUIR UM APLICATIVO DE QUALIDADE? COMO CONSTRUIR UM APLICATIVO DE QUALIDADE? ➵ Foco no Usuário. "Usuário é uma ferramenta de Debug!" A cada 6,1 segundos surge um novo usuário! ● Google Play ja tem mais de 450 mil aplicativos ● 700 mil aparelhos Android são ativados Como fazer seu aplicativo ter sucesso? Como fazer seu aplicativo ter sucesso? ✔ Fazer algo que o usuário não tinha em mente que precisava. ✔ Fazer com que o usuário tenha uma experiência de qualidade. Como? ➵ Compatibilidade ➵ Economia ➵ Conveniência Compatibilidade: ● Telas ● Configurações Compatibilidade: ● Telas: ➵ Use <Supports-screens> ➵ Preste atenção no espaço ao invés de pixels. ➵ Não use Absolut-Layout Compatibilidade: ➵ Mobile = celular + tablet + ... Cuidado com as diferenças! Por exemplo: - rotação - tablets não têm telefonia - etc... Compatibilidade: ➵ Use o melhor de cada dispositivo, permita que o usuário configure a aplicação. ➵ Permita que o usuário use o seu aplicativo offline! Econômia ➵ Economize bateria, processador e rede. ➵ Delete o que você não precisa. ➵ Default razoável. Econômia ➵ Use BroadCast Receivers para saber sobre uma mudança de conectividade. Conveniência ➵ Permita que o usuário configure o seu aplicativo ( Settings ) Conveniência ➵ Torne seu aplicativo intuitivo: demonstre ao invés de explicar. ➵ Fácil de aprender x Prático de usar Conveniência ➵ Use ícones que transmitem ideias com clareza. Conveniência ➵ Use ícones que transmitem ideias com clareza. ➵ Mostre o tipo de teclado apropriado para o campo. ( android: imputType = " ... ") Conveniência ➵ Use ícones que transmitem ideias com clareza. ➵ Mostre o tipo de teclado apropriado para o campo. ( android: inputType = " ... ") ➵ Sempre permita que o usuário desfaça uma operação (inclusive de rede) Conveniência ➵ Não impeça o usuário de usar algo só porque outra coisa não funciona. Conveniência ➵ Não impeça o usuário de usar algo só porque outra coisa não funciona. ➵ Economize espaço na tela. (Todo componente que está na tela deve fazer algo importante) Conveniência ➵ Não impeça o usuário de usar algo só porque outra coisa não funciona. ➵ Economize espaço na tela. (Todo componente que está na tela deve fazer algo importante) ➵ Espaço é tudo para uma tela pequena. (No máximo acima na tela deve ter uma barra dizendo qual é a tela que o usuário se encontra) Conveniência ➵ Tenha sempre um layout para Portrait e LandScape. (PELO MENOS FICAR IGUAL AO VIRAR) * Exeção em games. Conveniência ➵ Usuário querem clareza. (Muita informação em uso eficiente do espaço) Conveniência ➵ Usuário querem clareza. (Muita informação em uso eficiente do espaço) ➵ Contrate um designer (Interface clara, bonita, intuitiva) Seja esperto! ➵ Colete dados da aplicação. Para verificar erros. Seja esperto! ➵ Colete dados da aplicação. Para verificar erros. ➵ Grave as compras feitas do usuário. Perguntas? Contato: ✔ Wellington Fuck Rutes: [email protected] ✔ Weskley Migliorini: [email protected] UDESC-CCT / Colméia Curiosidades! Hugo Barra - Brasileiro - Minas Gerais - Graduação de Engenharia Eletrica na UFMG. - Diretor de gerenciamento de projetos do Android. Sony smartWatch 1,3'. Compativel apenas com Xperia S e Arc S Asus Pad Phone Samsung Galaxy Beam Geladeira integrada com Android Microondas integrado com Android Contato: ✔ Wellington Fuck Rutes: [email protected] ✔ Weskley Migliorini: [email protected] UDESC-CCT / Colméia