desenvolvimento android braga_geek_nights (1)

Post on 29-Nov-2014

1.420 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Apresentaçao Braga Geek Nights

TRANSCRIPT

Desenvolvimento AndroidMiguel Fernandes

& Pedro Araújo

Braga Geek Nights11-01-2011

Miguel Fernandes

miguelferna@gmail.comtwitter.com/muldyjob@eurotux.com

Htc Magic Phone @ Froyo 2.2 Cyanogen

Pedro Araújopedromcaraujo@gmail.comtwitter.com/pedromcaraujo

Samsung Galaxy S @ Froyo 2.2 Darky's Rom

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

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

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

Open Handset Alliance

Latecomers: Asus, Sony, Acer, Huawei

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

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

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

Fragmentação

HardwareButõesCapacidades gráficasTamanhos de ecrâ

Várias versõesUpdates muito frequentesLatê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 DriversServiçosLibrariasAplicações

Arquitectura

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

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

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

Segurança no MarketO 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 Darky's Rom

Miguel Fernandes

miguelferna@gmail.comtwitter.com/muldyjob@eurotux.com

Htc Magic Phone @ Froyo 2.2 Cyanogen

Getting Started

Google: Android Developers -> SDK

SDK Multiplataforma:

LinuxMacWindows

Precisa de Java JDK 5 ou 6

IDE Opcional ADT Plugin for Eclipse

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

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

Estrutura da app

ActivitiesViewsIntentsBroadcastReceiversWidgets

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>

DEMO!!

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/

Perguntas

Android is all about choice!!

top related