Desenvolvimento android braga_geek_nights (1)
Upcoming SlideShare
Loading in...5
×
 

Desenvolvimento android braga_geek_nights (1)

on

  • 1,367 views

Apresentaçao Braga Geek Nights

Apresentaçao Braga Geek Nights

Statistics

Views

Total Views
1,367
Views on SlideShare
1,367
Embed Views
0

Actions

Likes
0
Downloads
54
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Desenvolvimento android braga_geek_nights (1) Desenvolvimento android braga_geek_nights (1) Presentation Transcript

  • Desenvolvimento Android Miguel Fernandes & Pedro Araújo Braga Geek Nights 11-01-2011
  • Miguel Fernandesmiguelferna@gmail.comtwitter.com/muldyjob@eurotux.com Htc Magic Phone @ Froyo 2.2 CyanogenPedro Araújopedromcaraujo@gmail.comtwitter.com/pedromcaraujo Samsung Galaxy S @ Froyo 2.2 Darkys Rom
  • Schedule História O que é o Android? Open Handset Allience Principais Características Being open Not so good Fragmentação Fragmanetação de versões Desenvolvimento Arquitectura Desenvolvimento de "Apps" Web Apps Versus Native Apps Segurança Segurança no Market
  • História Inicialmente era propriedade de Android, Inc Comprada pela Google em 2005 Desenvolvido pela Google e por membros da Open Handset Alliance (Novembro 2007), para competir com plataformas da Apple, Nokia, Microsoft, etç... Primeira versão pública 1.5 (cupcake) em Abril 2009 1.6 (donut), 2.0/2.1(eclair), 2.2 (froyo) Versão actual 2.3 (Gingerbread) - Nexus S Próxima versão? 3.0 (Honeycomb) - Tablets 2.4 (Ice Cream) este verão - por confirmar
  • O que é o Android? 1º sistema operativo móvel aberto e grátis desenvolvido pelo Open Handset Alliance (http://www. openhandsetalliance.com/) Não é GNU/Linux não implementa glibc não tem os utilitários GNU Kernel Linux 2.6 com alguns melhoramentos especificos alarm ashmem power management low memory killer (no swap) logging Pilha de software composta por: SO, Middleware, core applications
  • Open Handset AllianceLatecomers: Asus, Sony, Acer, Huawei
  • Principais características Independência de fabricante: Htc, Samsung, Motorola, ... (Nokia?) Google só faz recomendações sobre o HW Teclado virtual inteligente Home screen Widgets Google service integration - Google Ecosystem Gmail Contacts Maps Picasa Standard Compliant Browser - Webkit Voice search Market Swappable core Apps Cloud Based Multi-tasking
  • Being OpenSteve Jobs: "Google loves to characterize Android as open andiPhone as closed. We see this disingenuous and clouding thedifference(...)"
  • Not so Good :( Operadoras Mal comportadas Crapware (uninstalable) MidleMan: Fabricante - Operadora - End User Latência nos updates OTA bloatware Fabricantes Diferênciação de produto - Interface Hardware de performance/qualidade duvidosa - Tablets Customização das ROMs Latência nos updates Nexus Fragmentação
  • Fragmentação Hardware Butões Capacidades gráficas Tamanhos de ecrâ Várias versões Updates muito frequentes Latência nos updates Custom Roms To the Rescue!(?)
  • Fragmentação de versões Data collected during two weeks ending on January 4, 2011
  • Desenvolvimento HW Drivers Serviços Librarias Aplicações
  • Arquitectura
  • Desenvolvimento de Apps Managed code: Java Android NDK - companion tool to the Android SDK that lets you build performance-critical portions of your apps in native C/C++ code. Before execution, Android applications are converted into the compact Dalvik Executable (.dex) format, which is designed to be suitable for systems that are constrained in terms of memory and processor speed. Limitações de Mobile Hardware Sempre que possível fazer processamento server-side Conectividade nem sempre disponível Conectividade Limitada: 3G Vs Wifi
  • Web Apps Versus Native Apps Native apps Prós: Apps tem mais acesso ao dispositivo (ex: sensores) Preferência dos utilizadores Bookmark útil Funções offline Contras: Se conteúdo igual, é como usar o site... Tem de acrescentar funcionalidade Web Apps Prós: Um bom site Mobile serve outros plataformas móveis Desnecessário criação de várias apps para cada telemóvel Contras: Browser Hell
  • Segurança Aplicações assinadas Ao Instalar uma aplicação esta fica com um unique Linux User Id (UID) Dados de uma aplicação só estão visíveis à mesma Utilização de recursos declarativa: AndroidManifest.xml Aplicação tem de declarar quais os recursos que vai usar em runtime Esta informação é publicada com a aplicação no Market
  • Segurança no Market O utilizador é que verifica as permissões que a aplicação vai usar depois de instalada:
  • Talker change
  • Pedro Araújopedromcaraujo@gmail.comtwitter.com/pedromcaraujo Samsung Galaxy S @ Froyo 2.2 Darkys RomMiguel Fernandesmiguelferna@gmail.comtwitter.com/muldyjob@eurotux.com Htc Magic Phone @ Froyo 2.2 Cyanogen
  • Getting StartedGoogle: Android Developers -> SDK SDK Multiplataforma: Linux Mac Windows Precisa de Java JDK 5 ou 6 IDE Opcional ADT Plugin for Eclipse
  • Extras Proguard http://proguard.sourceforge.net/ Java class file shrinker, optimizer, obfuscator, and preverifier. Otimização do código Ant http://ant.apache.org/ Apache Ant is a Java library and command-line tool whos mission is to drive processes described in build files as targets and extension points dependent upon each other. Release/Debug builds CLI compile Continuous integration
  • Android Multitasking Presente desde a primeira versão Cada aplicação tem o seu próprio processo Exemplo de utilização aplicação de mail escolher um email para ler clicar link para browser clicar em link para o Google Maps
  • Estrutura da app Activities Views Intents BroadcastReceivers Widgets
  • Views Layouts <LinearLayout android:layout_width="fill_parent" LinearLayout android:layout_height="fill_parent" TableLayout android:orientation="vertical" > <TextView android:id="@+id/text" TextView android:layout_width="wrap_content" android:layout_height="wrap_content" Button android:text="Hello, I am a TextView" /> CheckBox <Button android:id="@+id/button" android:layout_width="wrap_content" EditText android:layout_height="wrap_content" android:text="Hello, I am a Button" /> GLSurfaceView </LinearLayout> ScrollView
  • DEMO!!
  • CuriosidadesLanguage files blank comment code--------------------------------------------------------------------------------XML 4130 26919 62996 3044624C 7191 494387 685731 2826741Java 16473 423278 986294 2084883C++ 5623 349754 385625 1754053C/C++ Header 12278 300773 653608 1153456HTML 2325 13539 14681 348935Bourne Shell 501 45684 46947 317410Javascript 1717 41901 76306 208012Assembly 1704 18732 51392 96700D 2181 16936 24 59142m4 116 6026 1813 49502Perl 221 8189 8246 40058Python 236 9805 14225 38852make 381 6844 3837 37059IDL 421 3128 0 24181Objective C 93 2804 3371 10032--------------------------------------------------------------------------------SUM: 56048 1776761 3001984 12141638--------------------------------------------------------------------------------http://www.gubatron.com/blog/2010/05/23/how-many-lines-of-code-does-it-take-to-create-the-android-os/
  • PerguntasAndroid is all about choice!!