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 Cyano...
Schedule História O que é o Android?     Open Handset Allience Principais Características     Being open Not so good     F...
História  Inicialmente era propriedade de Android, Inc  Comprada pela Google em 2005  Desenvolvido pela Google e por membr...
O que é o Android? 1º sistema operativo móvel aberto e grátis desenvolvido pelo Open Handset Alliance (http://www. openhan...
Open Handset AllianceLatecomers: Asus, Sony, Acer, Huawei
Principais características  Independência de fabricante:     Htc, Samsung, Motorola, ... (Nokia?)     Google só faz recome...
Being OpenSteve Jobs: "Google loves to characterize Android as open andiPhone as closed. We see this disingenuous and clou...
Not so Good :(  Operadoras Mal comportadas    Crapware (uninstalable)    MidleMan: Fabricante - Operadora - End User    La...
Fragmentação Hardware    Butões    Capacidades gráficas    Tamanhos de ecrâ Várias versões    Updates muito frequentes    ...
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 perform...
Web Apps Versus Native Apps Native apps    Prós:        Apps tem mais acesso ao dispositivo (ex: sensores)        Preferên...
Segurança Aplicações assinadas Ao Instalar uma aplicação esta fica com um unique Linux User Id (UID) Dados de uma aplicaçã...
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 RomMigue...
Getting StartedGoogle: Android Developers -> SDK  SDK    Multiplataforma:       Linux       Mac       Windows     Precisa ...
Extras Proguard    http://proguard.sourceforge.net/    Java class file shrinker, optimizer, obfuscator, and    preverifier...
Android Multitasking  Presente desde a primeira versão  Cada aplicação tem o seu próprio processo  Exemplo de utilização  ...
Estrutura da app  Activities  Views  Intents  BroadcastReceivers  Widgets
Views                    Layouts                 <LinearLayout                         android:layout_width="fill_parent" ...
DEMO!!
CuriosidadesLanguage                     files       blank        comment            code---------------------------------...
PerguntasAndroid is all about choice!!
Upcoming SlideShare
Loading in …5
×

Desenvolvimento android braga_geek_nights (1)

1,385 views

Published on

Apresentaçao Braga Geek Nights

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,385
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
58
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desenvolvimento android braga_geek_nights (1)

  1. 1. Desenvolvimento Android Miguel Fernandes & Pedro Araújo Braga Geek Nights 11-01-2011
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. Open Handset AllianceLatecomers: Asus, Sony, Acer, Huawei
  7. 7. 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
  8. 8. Being OpenSteve Jobs: "Google loves to characterize Android as open andiPhone as closed. We see this disingenuous and clouding thedifference(...)"
  9. 9. 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
  10. 10. 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!(?)
  11. 11. Fragmentação de versões Data collected during two weeks ending on January 4, 2011
  12. 12. Desenvolvimento HW Drivers Serviços Librarias Aplicações
  13. 13. Arquitectura
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. Segurança no Market O utilizador é que verifica as permissões que a aplicação vai usar depois de instalada:
  18. 18. Talker change
  19. 19. 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
  20. 20. Getting StartedGoogle: Android Developers -> SDK SDK Multiplataforma: Linux Mac Windows Precisa de Java JDK 5 ou 6 IDE Opcional ADT Plugin for Eclipse
  21. 21. 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
  22. 22. 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
  23. 23. Estrutura da app Activities Views Intents BroadcastReceivers Widgets
  24. 24. 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
  25. 25. DEMO!!
  26. 26. 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/
  27. 27. PerguntasAndroid is all about choice!!

×