desenvolvimento android braga_geek_nights (1)

27
Desenvolvimento Android Miguel Fernandes & Pedro Araújo Braga Geek Nights 11-01-2011

Upload: muldy

Post on 29-Nov-2014

1.422 views

Category:

Technology


0 download

DESCRIPTION

Apresentaçao Braga Geek Nights

TRANSCRIPT

Page 1: Desenvolvimento android braga_geek_nights (1)

Desenvolvimento AndroidMiguel Fernandes

& Pedro Araújo

Braga Geek Nights11-01-2011

Page 2: Desenvolvimento android braga_geek_nights (1)

Miguel Fernandes

[email protected]/[email protected]

Htc Magic Phone @ Froyo 2.2 Cyanogen

Pedro Araú[email protected]/pedromcaraujo

Samsung Galaxy S @ Froyo 2.2 Darky's Rom

Page 3: Desenvolvimento android braga_geek_nights (1)

ScheduleHistóriaO que é o Android?

Open Handset AlliencePrincipais Características

Being openNot so good

FragmentaçãoFragmanetação de versões

DesenvolvimentoArquitecturaDesenvolvimento de "Apps"Web Apps Versus Native AppsSegurançaSegurança no Market

Page 4: Desenvolvimento android braga_geek_nights (1)

História

Inicialmente era propriedade de Android, IncComprada pela Google em 2005Desenvolvido 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 SPróxima versão? 3.0 (Honeycomb) - Tablets2.4 (Ice Cream) este verão - por confirmar

Page 5: Desenvolvimento android braga_geek_nights (1)

O que é o Android?1º sistema operativo móvel aberto e grátisdesenvolvido pelo Open Handset Alliance (http://www.openhandsetalliance.com/)Não é GNU/Linux

não implementa glibcnão tem os utilitários GNU

Kernel Linux 2.6 com alguns melhoramentos especificosalarmashmempower management low memory killer (no swap)logging

Pilha de software composta por: SO, Middleware, core applications

Page 6: Desenvolvimento android braga_geek_nights (1)

Open Handset Alliance

Latecomers: Asus, Sony, Acer, Huawei

Page 7: Desenvolvimento android braga_geek_nights (1)

Principais característicasIndependência de fabricante:

Htc, Samsung, Motorola, ... (Nokia?)Google só faz recomendações sobre o HW

Teclado virtual inteligenteHome screen WidgetsGoogle service integration - Google Ecosystem

GmailContactsMapsPicasa

Standard Compliant Browser - WebkitVoice searchMarketSwappable core AppsCloud BasedMulti-tasking

Page 8: Desenvolvimento android braga_geek_nights (1)

Being OpenSteve Jobs: "Google loves to characterize Android as open and iPhone as closed. We see this disingenuous and clouding the difference(...)"

Page 9: Desenvolvimento android braga_geek_nights (1)

Not so Good :(

Operadoras Mal comportadasCrapware (uninstalable)MidleMan: Fabricante - Operadora - End UserLatência nos updatesOTA bloatware

Fabricantes Diferênciação de produto - InterfaceHardware de performance/qualidade duvidosa - TabletsCustomização das ROMsLatência nos updates

FragmentaçãoNexus

Page 10: Desenvolvimento android braga_geek_nights (1)

Fragmentação

HardwareButõesCapacidades gráficasTamanhos de ecrâ

Várias versõesUpdates muito frequentesLatência nos updates

Custom Roms To the Rescue!(?)

Page 11: Desenvolvimento android braga_geek_nights (1)

Fragmentação de versões

Data collected during two weeks ending on January 4, 2011

Page 12: Desenvolvimento android braga_geek_nights (1)

Desenvolvimento

HW DriversServiçosLibrariasAplicações

Page 13: Desenvolvimento android braga_geek_nights (1)

Arquitectura

Page 14: Desenvolvimento android braga_geek_nights (1)

Desenvolvimento de AppsManaged 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 HardwareSempre que possível fazer processamento server-sideConectividade nem sempre disponívelConectividade Limitada: 3G Vs Wifi

Page 15: Desenvolvimento android braga_geek_nights (1)

Web Apps Versus Native AppsNative apps

Prós:Apps tem mais acesso ao dispositivo (ex: sensores)Preferência dos utilizadoresBookmark útilFunções offline

Contras:Se conteúdo igual, é como usar o site...Tem de acrescentar funcionalidade

Web AppsPrós:

Um bom site Mobile serve outros plataformas móveisDesnecessário criação de várias apps para cada telemóvel

Contras:Browser Hell

Page 16: Desenvolvimento android braga_geek_nights (1)

Segurança

Aplicações assinadasAo Instalar uma aplicação esta fica com um unique Linux User Id (UID)Dados de uma aplicação só estão visíveis à mesmaUtilização de recursos declarativa: AndroidManifest.xml

Aplicação tem de declarar quais os recursos que vai usar em runtimeEsta informação é publicada com a aplicação no Market

Page 17: Desenvolvimento android braga_geek_nights (1)

Segurança no MarketO utilizador é que verifica as permissões que a aplicação vai usar depois de instalada:

Page 18: Desenvolvimento android braga_geek_nights (1)

Talker change

Page 19: Desenvolvimento android braga_geek_nights (1)

Pedro Araú[email protected]/pedromcaraujo

Samsung Galaxy S @ Froyo 2.2 Darky's Rom

Miguel Fernandes

[email protected]/[email protected]

Htc Magic Phone @ Froyo 2.2 Cyanogen

Page 20: Desenvolvimento android braga_geek_nights (1)

Getting Started

Google: Android Developers -> SDK

SDK Multiplataforma:

LinuxMacWindows

Precisa de Java JDK 5 ou 6

IDE Opcional ADT Plugin for Eclipse

Page 21: Desenvolvimento android braga_geek_nights (1)

ExtrasProguard

http://proguard.sourceforge.net/Java class file shrinker, optimizer, obfuscator, and preverifier.Otimização do código

Anthttp://ant.apache.org/Apache Ant is a Java library and command-line tool who's mission is to drive processes described in build files as targets and extension points dependent upon each other.Release/Debug buildsCLI compileContinuous integration

Page 22: Desenvolvimento android braga_geek_nights (1)

Android Multitasking

Presente desde a primeira versãoCada aplicação tem o seu próprio processoExemplo de utilização

aplicação de mailescolher um email para lerclicar link para browserclicar em link para o Google Maps

Page 23: Desenvolvimento android braga_geek_nights (1)

Estrutura da app

ActivitiesViewsIntentsBroadcastReceiversWidgets

Page 24: Desenvolvimento android braga_geek_nights (1)

Views

LinearLayoutTableLayoutTextViewButtonCheckBoxEditText GLSurfaceViewScrollView

Layouts

<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /></LinearLayout>

Page 25: Desenvolvimento android braga_geek_nights (1)

DEMO!!

Page 26: Desenvolvimento android braga_geek_nights (1)

Curiosidades

Language 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/

Page 27: Desenvolvimento android braga_geek_nights (1)

Perguntas

Android is all about choice!!