Hello Android

download Hello Android

of 175

Transcript of Hello Android

GARCIA JIM

GARCIA JIM

Qu lectores le ponen alrededor de Hola, Androide ste es un libro excelentsimo: Muy bien escrito, fcil para leer, y la diversin. Adems, cualquier de rarezas del Androide es dado aclaraciones simplemente lo Enderece cantidad de detalle para asegurar calidad programando principios es Seguido.

Anthony Stevens El fundador y CTO, PocketJourney y Parte Superior 20 el Ganador de Haga Bsquedas En La Internet Usando Google Competencia del Androide Ed Burnette cubre una cantidad impresionante de tierra en un amablemente pacto El libro al retener el estilo Pragmtico popular. Para el material En 2D y grficos 3D a solas, esto es digno de un lugar en cualquier La biblioteca del desarrollador del androide.

Mark Murphy El Fundador, CommonsWare Recuerdo cundo yo primero comenc a trabajar con Androide; Estaba como uno El laberinto enorme. Con este libro, la introduccin habra sido mucha Menos doloroso. Estoy convencido de que leyendo este libro Androide nuevo Los programadores tendrn un principio ms fcil.

Gabor Paller El arquitecto mayor del Software, OnRelay, Ltd.

GARCIA JIM

La plataforma mvil de Desarrollo, la Edicin 2

El hola, el Androide Introduciendo de GoogleEd Burnette

El Estante de Libros Pragmtico

GARCIA JIMMuchas de las designaciones usadas por fabricantes y suplidores para distinguir sus productos Es reclamado como marcas registradas. Donde esas designaciones aparecen en este libro, y Lo Los programadores pragmticos, LLC se dio cuenta de un reclamo de marca registrada, las designaciones tienen Sido impreso en letras maysculas iniciales o en todos los capitales. El Juego Pragmtico del Arrancador, Lo El programador pragmtico, Pragmatic Programando, Estante de Libros Pragmtico y la g de eslabonamiento El dispositivo son marcas registradas de Los Programadores Pragmticos, LLC. Las porciones de la cobertera del libro son reproducidas de trabajo creado y compartidas por Google y Usado segn los trminos descritos en los Creative Commons 2.5 la Licencia de Atribucin. Vea Http://code.google.com/policies.html #restrictions para los detalles. Cada precaucin fue llevada en la preparacin de este libro. Sin embargo, el editor publicista No carga con la responsabilidad para los errores o las omisiones, o para daos que pueden resultar de El uso de informacin (incluyendo listados de programa) contenida en este punto. Nuestros cursos Pragmticos, talleres, y otros productos pueden ayudar a usted y su equipo Cree mejor software y tenga ms diversin. Para ms informacin, as como tambin lo ltimo Los ttulos pragmticos, por favor nos visitan en Http://www.pragprog.com

Derecho De Autor 2009 Ed Burnette. Todos los derechos reservados. Ninguna parte de esta publicacin puede ser reproducida, almacenada en un sistema de recuperacin, o puede ser transmitido, En cualquier forma, o por cualquier medio, electrnico, mecnico, fotocopiando, la grabacin, o De otra manera, sin el anterior consentimiento del editor publicista. Impreso en los Estados Unidos de Norte Amrica. ISBN-10: El 1-934356-49-2 ISBN-13: El 978-1-934356-49-4 Impreso en peridico libre de cido. P1.0 escribiendo en letras de imprenta, octubre del 2009 La versin: El 2009-10-6

GARCIA JIMEL CONTENIDO Las aceptaciones 9 Prlogo 10 Qu Hace Al Androide Especial? . . . . . . . . . . . . . . . . . . 10 Quin Debera Leer Este Libro? . . . . . . . . . . . . . . . . . . . 11 Qu hay en Este Book? . . . . . . . . . . . . . . . . . . . . . . . . 12 Qu es New para Cupcake? . . . . . . . . . . . . . . . . . . . . . 12 Qu es New para Dona? . . . . . . . . . . . . . . . . . . . . . . . 13 Los Recursos en Lnea. . . . . . . . . . . . . . . . . . . . . . . . . . 13 Que Se Ayuna Adelante. . . . . . . . . . . . . . . . . . . . . . . . . . 14 Yo Introduciendo Al Androide 15 1 Ponen en Marcha 16 1.1 Instalando las Herramientas. . . . . . . . . . . . . . . . . . . . . 16 1.2 Creando Su Programa de Primera Parte. . . . . . . . . . . . . . . . 20 1.3 Corriendo en el Emulador. . . . . . . . . . . . . . . . . 20 1.4 Funcionando con un Telfono Verdadero. . . . . . . . . . . . . . . . . 23 1.5 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 24 2 Teclean Conceptos 27 2.1 el Cuadro Grande. . . . . . . . . . . . . . . . . . . . . . . 27 2.2 que es Vivo! . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.3 Bloques Constructivos. . . . . . . . . . . . . . . . . . . . . . . 36 2.4 Recursos Utilizadores. . . . . . . . . . . . . . . . . . . . . . 37 2.5 Seguro y Seguro. . . . . . . . . . . . . . . . . . . . . . . 38 2.6 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 39 Los fundamentos II Android 40 3 Diseando la Interfaz del Usuario 41 3.1 Introduciendo Al Sudoku Example. . . . . . . . . . . . . 41 3.2 Diseando por Declaracin. . . . . . . . . . . . . . . . . 42 3.3 Creando Al Opening Filtran. . . . . . . . . . . . . . . 43 3.4 Recursos Alternos Utilizadores. . . . . . . . . . . . . . . . . 51 3.5 Implementando Uno Acerca de Caja. . . . . . . . . . . . . . . . 54 3.6 Aplicndole Un Tema. . . . . . . . . . . . . . . . . . . . . . 59 3.7 Sumando Un Men. . . . . . . . . . . . . . . . . . . . . . . 60 3.8 Trasfondos de Adicin. . . . . . . . . . . . . . . . . . . . . . . 63 3.9 Iniciando Un Juego New. . . . . . . . . . . . . . . . . . . . 65 3.10 Depurando con Mensajes del Leo. . . . . . . . . . . . . . . 67 3.11 Depurando con el Debugger. . . . . . . . . . . . . . . 68 3.12 Egresando el Juego. . . . . . . . . . . . . . . . . . . . . . 68 3.13 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 69 4 Grficos del 2D Exploring 70 4.1 Aprendiendo los Fundamentos. . . . . . . . . . . . . . . . . . . . . 70 4.2 Adicin Graphics para Sudoku. . . . . . . . . . . . . . . . 75 4.3 Manejando Aporte. . . . . . . . . . . . . . . . . . . . . . . 84 4.4 El Resto de Historia. . . . . . . . . . . . . . . . . . . . 90 4.5 Haciendo Ms Mejoras. . . . . . . . . . . . . . . . 99 4.6 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 100

GARCIA JIM5 Multimedia 101 5.1 Jugando contra Audio. . . . . . . . . . . . . . . . . . . . . . . . 101 5.2 Jugando Video. . . . . . . . . . . . . . . . . . . . . . . . 107 5.3 Adicin Sounds para Sudoku. . . . . . . . . . . . . . . . . 112 5.4 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 115 6 Datos Locales Storing 116 6.1 Adicin Options para Sudoku. . . . . . . . . . . . . . . . . 116 6.2 Continuando Un Juego Old. . . . . . . . . . . . . . . . . 118 6.3 Recordando la Posicin Actual. . . . . . . . . . . . 120 6.4 Accediendo al Internal Archivan Sistema. . . . . . . . . . . . 122 6.5 Accessing Dakota del Sur Cards. . . . . . . . . . . . . . . . . . . . 123 6.6 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 124 III Ms All de los Fundamentos 125 7 el Mundo Conectado 126 7.1 Haciendo Una Lectura Ligera por el Intento. . . . . . . . . . . . . . . . . . . . . 127 7.2 Tejen con una Vista. . . . . . . . . . . . . . . . . . . . . . . 131 7.3 From JavaScript para Java y la Parte Trasera. . . . . . . . . . . . 136 7.4 Web Utilizadora Services. . . . . . . . . . . . . . . . . . . . . 143 7.5 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 154 8 Localizando y Sintiendo 155 8.1 la Posicin, la Posicin, la Posicin. . . . . . . . . . . . . . . . 155 8.2 Colocan A Sensors para Maximum. . . . . . . . . . . . . . . . . 161 8.3 la Vista Panormica. . . . . . . . . . . . . . . . . . . . . . . 164 8.4 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 170 9 Ponindole SQL a Work 171 9.1 Introduciendo SQLite. . . . . . . . . . . . . . . . . . . . . 171 9.2 SQL 101. . . . . . . . . . . . . . . . . . . . . . . . . . . 172 9.3 el Hola, la Base de Datos. . . . . . . . . . . . . . . . . . . . . . . 174 Atadura de 9.4 Datos. . . . . . . . . . . . . . . . . . . . . . . . . 182 9.5 Utilizando A Un ContentProvider. . . . . . . . . . . . . . . . . . 185 9.6 Implementando A Un ContentProvider. . . . . . . . . . . . . 188 9.7 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 189 10 3D Graphics en OpenGL 191 10.1 Grficos Comprensivos del 3D. . . . . . . . . . . . . . . . 191 10.2 Introducing OpenGL. . . . . . . . . . . . . . . . . . . . 192 10.3 Creando A Un OpenGL Program. . . . . . . . . . . . . . . 193 10.4 Dando la Escena. . . . . . . . . . . . . . . . . . . . 195 10.5 Construyendo Un Modelo. . . . . . . . . . . . . . . . . . . . . . 199 10.6 Luces, la Cmara, .... . . . . . . . . . . . . . . . . . . . . 202 10.7 Ponen en Marcha! . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 10.8 Aplicndole Textura. . . . . . . . . . . . . . . . . . . . . . 205 10.9 el Cuc. . . . . . . . . . . . . . . . . . . . . . . . . . . 209 10.10 Midiendo Suavidad. . . . . . . . . . . . . . . . . . 210 10.11 Que Se Ayunan Adelante. . . . . . . . . . . . . . . . . . . . . . . 211

GARCIA JIMIV Apendices 212 Una Java vs. el Lenguaje del Androide y APIs 213 El Subconjunto de Lenguaje del A.1. . . . . . . . . . . . . . . . . . . . . . 213 El Subconjunto de la Biblioteca del Estndar del A.2. . . . . . . . . . . . . . . . . . 215 Las Bibliotecas de Tercero del A.3. . . . . . . . . . . . . . . . . . . . 216 La B Hello, Dispositivo 217 B.1 Creando Su Primer Dispositivo. . . . . . . . . . . . . . . . . 217 B.2 Llamando Todos los Dispositivos! . . . . . . . . . . . . . . . . . . . . . 219 B.3 Stretch a Satisfacer. . . . . . . . . . . . . . . . . . . . . . . . . 220 B.4 El Resto de Historia. . . . . . . . . . . . . . . . . . . . 221 B.5 Running el Dispositivo. . . . . . . . . . . . . . . . . . . . . 222 B.6 Keeping Arriba de hasta la Fecha. . . . . . . . . . . . . . . . . . . . . 224 El Chaparral de Empuje del B.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 La C Publicando para el Mercado del Androide 227 C.1 Preparing. . . . . . . . . . . . . . . . . . . . . . . . . . . 227 C.2 Signing. . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 C.3 Publishing. . . . . . . . . . . . . . . . . . . . . . . . . . 231 C.4 Updating. . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Los pensamientos C.5 Closing. . . . . . . . . . . . . . . . . . . . . . 233 D Bibliography 235 ndice 236

GARCIA JIM

Las aceptacionesMe gustara agradecer a las muchas personas que hicieron posible este libro, incluyendo Mis revisores Anthony Stevens, Gabor Paller, Fred Burke, Dianne Hackborn, y Laurent Pontier para su atencin detallar; Al Sutton Para crear a un Donut antiguo SDK para desarrolladores; Mi editor Susannah Pfalzer para sus grandes sugerencias y su alegra haciendo frente a imposible Las fechas topes; Y especialmente mi familia para su paciencia en invertir Con todas las largas horas.

GARCIA JIMQuin Debera Leer Este Libro? El nico requisito es una comprensin bsica de programar en Java O un lenguaje orientado en objeto similar (C # har en caso necesario). Usted no hace Necesito cualquier anterior experiencia desarrollando software para dispositivos mviles. Adentro El hecho, si usted lo hace, es probablemente mejor si usted intenta olvidar esa experiencia. El androide es tan diferente que es buena para empezar una mente abierta.

Qu hay en Este Libro? El hola, el Androide est dividido en tres partes. Hablando en trminos generales, el libro Los progresos de menos adelantado para los temas ms adelantados, o de ms Comn para los aspectos menos comunes de Androide. Varios captulos comparten un ejemplo comn: Un juego Android Sudoku. Por gradualmente aadirle las caractersticas al juego, usted se enterar de muchos Los aspectos de interfaces inclusivas programadoras Android del usuario, multimedios, Y el ciclo biolgico del Androide. En parte yo, comenzaremos con una introduccin para Android. Esto est donde usted lo har Aprenda a instalar el emulador del Androide y cmo usar uno integrado El ambiente de desarrollo (IDE) para escribir su primer programa. Luego lo haremos Introduzca algunos conceptos cruciales como el ciclo biolgico del Androide. La programacin En Androide es un poco diferente lo que usted es probablemente usado, as Asegrese de que usted ponga estos conceptos adelante a seguir adelante. La parte II habla de la interfaz del usuario de Androide, los grficos de dos dimensiones, Los componentes multimedia, y el acceso simple de datos. Estas caractersticas sern Usado en la mayora de programas usted escribe. La parte III cava ms profundo en la plataforma del Androide. Aqu usted aprender acerca de Conectndose a los exteriores servicios mundiales, basados en posiciones, lo incorporado La base de datos del SQLite, y los grficos tridimensionales. Al final del libro, usted encontrar appendices que cubren las diferencias Entre Androide y Java Standard Edition (SE), cmo crear un dispositivo Y publicando su aplicacin. Qu es New para Cupcake? El androide 1.5 (Cupcake) introdujo un nmero de realces a lo La plataforma del androide incluyendo soporte para teclados suaves (sobre la pantalla) La videograbacin, y los dispositivos aplicativos. Bajo las coberteras, hubo Ms que 1,000 cambios para el Android API entre 1.1 y 1.5.1 Para acomodar la nueva versin, cada pgina y ejemplo en este libro Ha estado revisado y actualizado as es que surtir efecto con 1.5. Si usted ha ledo La primera edicin de este libro, luego vaya de seguro a revisar estos captulos En particular: " Captulo 1, Ayuda Rpida para Iniciar, en pgina 16 incluye instrucciones en acostumbrar Los SDKs del blanco y los Dispositivos del Androide Virtual (AVDs). " Captulo 8, Localizando y Sentir, en pgina 155 ahora usa lo nuevo SensorManager APIs y el mtodo nuevo setBuiltInZoomControls (). " Captulo 10, 3D Graphics en OpenGL, en pgina 191 ha sido grandemente Simplificado gracias a la clase nueva del GLSurfaceView. Adems, por la demanda popular hemos sumado dos apndices nuevas: " La apndice B, en pgina 217 le muestra cmo crear un Dispositivo para lo La pantalla anfitriona. sta es una caracterstica nueva de Cupcake.

GARCIA JIM" La apndice C, en pgina 227 le gua a travs de los pasos de hacer Su aplicacin disponible en venta o gratis en el Androide El mercado. El androide 1.5 ( ahora o ms tarde) est disponible para todos los dispositivos navieros del Androide. Todos los dispositivos nuevos lo tienen instalados, y Google dice tan casi todo mayor Los dispositivos han mejorado. Esta edicin del libro no cubre versin 1.1 o ms temprano. Qu es New para Dona? El androide 1.6 (la Dona) sum soporte para los despliegues - la densidad baja alta y Ms un nmero de menor de edad cambia eso no afecta la mayora de developers.2 l Puede ser un rato antes de que todos los dispositivos sean mejorados a 1.6, entonces Section C.1, Construyendo para 1.5, 1.6, y Ms All, en pgina 228 cubre cmo crear uno Singularice programa que soporta versiones mltiples. Todos los ejemplos en esto El libro ha sido probado en ambos 1.5 y 1.6. Los Recursos en Lnea En el sitio Web para este libro, http://pragprog.com/titles/eband2, usted encontrar Lo siguiente: " El cdigo lleno de la fuente para todos los programas de muestra us en este libro " Una pgina de fe de erratas, listando cualquier errores en la edicin actual (el alquiler Espere que eso estar vaco!) " Un foro de debate donde usted pueda comunicarse directamente con lo El autor y otros desarrolladores Android (esperemos que eso estar lleno!) Usted tiene libertad de usar el cdigo de la fuente en sus aplicaciones como usted ve Equipe. Nota: Si usted lee la versin PDF de este libro, usted lo puede hacer tambin D un clic sobre el rectngulo gris pequeo antes de los listados de cdigo para hacer un download de eso El archivo de la fuente en seguida. Que Se Ayuna Adelante Aunque la mayora de autores esperan que usted lea cada palabra en sus libros, yo S que usted no va a hacer eso. Usted quiere leer justo la adecuada cantidad a dejar Usted logra terminar algo, y entonces tal vez usted regresar ms tarde y Lea alguna otra cosa para dejarle lograr terminar otro pedazo. Entonces, he intentado Provale de un poco de ayuda as es que usted no se perder. Cada captulo en este libro llega al final con una seccin "que se ayuna adelante". Estos Las secciones proveern alguna gua para dnde a usted debera ir despus cuando Usted necesita leer en voz alta el libro de orden. Usted tambin encontrar punteros para otro Los recursos como libros y documentacin en lnea aqu en el caso usted Quiera aprender ms acerca del tema. Entonces, a qu est usted esperando? El siguiente _ Captulo de captulo 1, Ayuda Rpida para Iniciar, En pgina 16 _ se cae usted bien en el fin profundo con su primer Androide El programa. Divida en captulos 2, Conceptos Cruciales, en pgina 27 tomas un paso atrs y Le inicia en la filosofa y conceptos bsicos de Androide, y Captulo 3, Diseando la Interfaz del Usuario, en pgina 41 cava en el usuario La interfaz, cul ser la parte ms importante de la mayora de Androide Los programas.

GARCIA JIM

Parte I Introduciendo al Androide

GARCIA JIM

Captulo 1 La Ayuda Rpida Para IniciarEl androide combina la ubicuidad de telfonos celulares, la excitacin de claro El software de la fuente, y el apoyo corporativo de Google y otro Open A los miembros de la Alianza del microtelfono les gusta Intel, TI, mvil a T, y NTT DoCoMo. El resultado es una plataforma mvil que usted no puede permitirse no aprender. Afortunadamente, comenzar que revelado con Androide es fcil. Usted no se empareja Necesito acceso para un telfono del Androide _ simplemente una computadora donde usted pueda Instale al Android SDK y el emulador telefnico. En este captulo, le mostrar cmo obtener todas las herramientas de desarrollo Instalado, y luego entraremos directamente de un salto y crearemos una aplicacin en funciones: La versin de "hola, Mundo" del androide. 1.1 Instalando las Herramientas El juego de desarrollo del software del Androide (SDK) trabaja en Ventanas, Linux Y la Macintosh OS X. Las aplicaciones que usted crea, claro est, puede ser destacado En cualquier dispositivos del Androide. Antes de que usted inicia codificacin, usted necesita instalar a Java, un IDE, y lo El androide SDK. Java 5.0 + Primero usted necesita una copia de Java. Todas las herramientas de desarrollo del Androide requieren Eso, y los programas que usted escribe estarn usando el lenguaje Java. JDK 5 o 6 Es requerido. Es lo suficientemente no para justamente tener un ambiente del runtime (JRE); Usted necesita El juego lleno de desarrollo. Recomiendo a traer al ltimo JDK 6.0 Sun La actualizacin de los usuarios Solares de la Macintosh del site.1 de descarga OS X debera llegar lo La ltima versin de Macintosh OS X y el JDK del sitio Web de la Manzana. Para asegurarse usted tiene la versin correcta, corra esta orden de su concha La ventana. Aqu hay lo que comprendo cundo lo corro: C: java - la versin La versin del java "1.6.0_14" Java SE Runtime (TM) Environment (construya 1.6.0_14-b08) Java HotSpot Client (TM) VM (cree a 14.0-b16, modo mixto, uso compartido) Usted debera ver algo semejante, con versin "1.6.something" o ms tarde. El eclipse Despus, usted debera instalar un ambiente de desarrollo Java si usted no hace Tenga uno ya. Recomiendo Eclipse, porque sea gratis y porque Es usado y soportado por los desarrolladores Google que crearon Androide. Si usted no quiere usar Eclipse (all es siempre nico en cada gento) El soporte para otro idus como la IDEA NetBeans y JetBrains est disponible De sus comunidades respectivas. O si usted es escuela realmente vieja, Usted puede preceder a un IDE enteramente y justamente puede usar el tools.2 de lnea de comando La versin mnima de Eclipse es 3.3.1, pero usted siempre debera acostumbrar Cualquier cosa que sea la versin de produccin ms actual. Reparo en que usted necesita Ms que simplemente la plataforma estndar del "clsico" Eclipse SDK. Vaya a lo

GARCIA JIMEl eclipse que las descargas paginan, 3 y escogen "eclipse IDE para Java Developers". Siga las direcciones all para hacer un download, desempacando, e instalar El eclipse en una posicin adecuada (guste a C:\Eclipse en Ventanas). El androide Despus, haga un download del ltimo Android SDK de Google. La descarga del Androide El page4 tiene paquetes para Ventanas, Macintosh OS X, y Linux. Despus Haciendo un download del paquete as mismo para usted, desempaca el archivo del .zip para Un directorio conveniente (por ejemplo, C:\Google). Por defecto, el SDK ser expandido en un subdirectorio como androidsdk Windows-1.6 _ r1. ste es su SDK instala directorio; Haga una nota de lo Abatane camino as es que usted puede referirse a l ms tarde.

Figura 1.1: Instalando Al Android Development Toolkit Ningn especial instala programa es necesario pero yo le recomiendo sume lo El directorio del tarro para depsito de SDK para su CAMINO. El siguiente paso es iniciar Eclipse y Configrelo. El Plug-In del Eclipse Para simplificar desarrollo, Google ha escrito un plug-in para Eclipse Designado el Android Development Toolkit (ADT). Para instalar el plug-in, Siga estos pasos (note estas direcciones son para Eclipse 3.4 _ diferente Las versiones pueden tener mens ligeramente diferentes y opciones): 1. El eclipse de principio, y las Actualizaciones del > Software de Ayuda de primera calidad.... 2. D un clic sobre la etiqueta Disponible del Software si no es ya seleccionada. 3. D un clic sobre el Sitio Add ... el botn. 4. Entre en la posicin del sitio de actualizacin del Androide: Https://dl-ssl.google. / el androide /eclipse del com. Si usted tiene dificultad con esta direccin, intente Usando http en la posicin en lugar de https. Una vez que usted lo ha llenado, la ventana de dilogo debera parecerse a la Figura 1.1. D un clic sobre Oklahoma. 5. El sitio del Androide ahora debera aparecer en el Software Disponible La vista. Seleccione el checkbox al lado de eso, y luego d un clic sobre Install.... Si Usted obtiene un mensaje de error, luego usted no puede tener la versin correcta De Eclipse. Fuertemente recomiendo a usar ya sea el Eclipse preconstruido IDE para Java o el Eclipse IDE para paquetes de Desarrollo del ingeniero elctrico Java, La versin 3.4 o ms nuevo.

GARCIA JIM Dice "error de Conexin," Tan Ahora Qu? Si usted obtiene un error de conexin, la causa ms probable es un poco amable De cortina de fuego erigida por sus administradores de sistema. Para salirse La cortina de fuego, usted necesitar configurar Eclipse con la direccin De su servidor del apoderado. ste es el mismo servidor del apoderado para el que usted usa Su navegador de Internet, pero desafortunadamente su Eclipse no es lo suficientemente listo Para recoger el trasfondo de all. Para contarle a Eclipse sobre el apoderado, seleccione > Red de Preferencias Las conexiones, la vuelta en la opcin para la configuracin Manual del apoderado, Introduzca el nombre del servidor y nmero portuario, y d un clic sobre Oklahoma. Si Usted no ve la opcin, usted puede estar corriendo una versin mayor De Eclipse. Pruebe mirar bajo las Preferencias

Si usted hace una costumbre instalar de Eclipse, luego a utilizar al Androide Los editores que usted tambin necesitar instalar las Herramientas de Web Standard (WST) El plug-in y todos sus prerrequisitos. Veo plataforma del theWeb Tools a casa page5 para ms detalles y hago un download Los enlaces. Estos son ya incorporados en los paquetes recomendables Mencionado anterior. 6. Haga clic Despus, aceptan los acuerdos de licencia, y luego dan un clic sobre Acabado Para iniciar la descarga e instalar proceso. 7. Una vez lo instala se hace, vuelve a arrancar Eclipse. 8. Cuando Eclipse regresa arriba, usted puede ver algunos mensajes de error Porque usted necesita decirle donde el Android SDK est ubicado. Seleccione > Androide de > Preferencias de la Ventana (> las Preferencias del Eclipse Adelante La Macintosh OS X), y entra en el SDK instala directorio que usted not ms temprano. D un clic sobre Oklahoma. Uf! Afortunadamente, usted tiene que hacer eso solo una vez (o al menos una vez cada Cronometre una nueva versin de ADT o el Eclipse sale afuera). Ahora que todo Es instalado, es hora de escribir su primer programa. 1.2 Creando Su Programa de Primera Parte ADT viene con un programa de ejemplo incorporado, o la plantilla, que somos Yendo para soler crear un programa de "hola" simple ", del Androide" en simplemente algunos Los segundos. Prepare su cronmetro. Alista? El set? Vaya! Seleccione > Proyecto del Archivo > New ... para abrir la ventana de dilogo Nueva de Proyecto. Luego Seleccione Proyecto del > Androide del Androide, y haga clic Despus. Entre en la siguiente informacin: El nombre de proyecto: HelloAndroid Construya Blanco: El androide 1.6 El nombre aplicativo: El hola, el Androide El nombre del paquete: Org.example.hello Cree Actividad: Hola Cuando usted termina, debera verse algo as como Figura 1.2, adelante lo Despus de pgina. El Final de Chasquido. El plug-in del Androide crear el proyecto y lo suplir Con algunos archivos predeterminados. El eclipse lo construir y lo empaquetar arriba as es que lo har Est listo a ejecutar. Si usted pone un error alrededor a perder carpetas de la fuente, Seleccione Proyecto > Por Completo para centrarlo.

GARCIA JIMEst bien, eso se encarga de escribir el programa; Ahora todo lo que queda debe intentar Corrindolo. Primero lo correremos bajo el Emulador del Androide. 1.3 Corriendo en el Emulador Para correr su programa Android, vaya a la ventana del Explorador del Paquete, El clic derecho el proyecto HelloAndroid, y la Carrera de primera calidad Como la Aplicacin del > Androide. Si usted lleva el mismo paso en Eclipse usted puede ver un dilogo de error Guste el mismo en Figura 1.3, en pgina 22. Esto indica que no hemos dicho todo El Emulator la clase de telfono a emular. Creando a un AVD Para hacer esto, usted necesita crear un Dispositivo del Androide Virtual (AVD), acostumbrando Ya sea el Eclipse o el androide avd command.6 que es ms fcil de utilizar Eclipse, As es que haga una seleccin S en el dilogo AVD Error para abrir al AVD Manager. Usted Puede reabrirse al gerente ms tarde seleccionando a Window Android AVD El gerente.

GARCIA JIM

Manteniendo el mismo paso que el Plug-In El plug-in del Eclipse del Androide es un trabajo en marcha eso cambia Bastante ms a menudo que el Android SDK. La versin de la que usted hace un download Puede ser diferente al mismo que utilic cundo escribindole a esto Haga una reservacin, y puede contener uno pocos, lo har que decimos, idiosincrasias. yo Recomindele jaque el sitio con enchufe mensualmente para recoger a cualquier Los apuros y caractersticas nuevas.

Figura 1.3: Perdiendo Dispositivo del Androide Virtual (AVD) En el dilogo AVD Manager, llene los campos para el AVD nuevo como sigue: El nombre: El em16 El blanco: El androide 1.6 - API Derribe 4 El SDCard: El 128M La piel: Falle (HVGA) Esto le dice a Eclipse que se establece un dispositivo genrico llamase a "em16," lo cual lo ha hecho lo El androide 1.6 (la Dona) que firmware instal. Un 128MB Digital Seguro virtual (Dakota del Sur) la Tarjeta ser ubicada, junto con un despliegue de half-VGA (320480). Cuando usted termina usted debera ver algo as como Figura 1.4, en pgina 24. Debido a las actualizaciones en el plug-in desde esto estaba escrito su pantalla puede Vase ligeramente diferente. El chasquido Create AVD para crear el dispositivo virtual. Algunos segundos ms tarde usted Debera ver un mensaje que el dispositivo ha sido creado. D un clic sobre Oklahoma, y Luego seleccione al AVD y clic Principio ... para subirlo. Cierre al AVD La ventana del gerente cuando usted termina. La Dona Vs. Cupcake La versin de Androide corriendo en su emulador (o realmente el telfono) Debe ser compatible con el Blanco de la Constitucin de su programa. Por ejemplo, Si usted intenta correr a un Androide 1.6 (la Dona) programe adelante uno El androide 1.5 (Cupcake) el telfono, no surtir efecto porque Androide 1.5 telfonos slo pueden correr 1.5 o anteriores programas. El androide 1.6 Los telfonos, por otra parte, pueden correr programas construidos para 1.6, 1.5, Y ms temprano. Pero puede ser un rato antes de la mayora de telfonos tenga Sido mejorado. Tan por qu no simplemente el Androide del blanco 1.5? Desafortunadamente las aplicaciones Construidos pues 1.5 no siempre exhiben correctamente en lo ms grande y Las pantallas ms pequeas encontraron en 1.6 telfonos. Afortunadamente hay uno fcil La forma para hacer sus programas compatible con ambos 1.5 y 1.6. Vea a Section C.1, Construyendo para 1.5, 1.6, y Ms All, en pgina 228 Para las instrucciones.

GARCIA JIMProbemos Eso Otra Vez Una vez que usted tiene a un AVD vlido, la ventana del emulador del Androide se iniciar Y la bota el Androide dirigiendo sistema. La primera vez que usted haga esto, a eso Pueden tomar un minuto o dos, as es que pueden tener paciencia. Usted puede necesitar para el clic derecho adelante El proyecto y la Carrera de primera calidad Como la Aplicacin del > Androide otra vez. Si usted ve Un mensaje de error diciendo que la aplicacin no responde, hace una seleccin La opcin para continuar esperando. El eclipse le enviar una copia de su programa al emulador ejecutar. La pantalla aplicativa sube, y su "hola, Androide" programa Est ahora corriendo (vea Figura 1.5, en pgina 25). No hay vuelta de hoja! Felicitaciones En su primer programa del Androide. 1.4 Funcionando con un Telfono Verdadero Corriendo un programa del Androide en un dispositivo fsico como lo mvil G1 durante el desarrollo es casi idntico para correrlo en el emulador. Todo lo que usted necesita hacer es conectar su telfono para la computadora con uno USB cablegrafe e instale un driver.7 especial del dispositivo

Figura 1.4: Creando a un AVD en proceso de desaparicin Cierre la ventana del emulador si est ya abierta. Con tal de que el telfono sea Bloqueado de adentro, las aplicaciones sern cargadas y corridas all en lugar de eso. Cuando usted est listo a publicar su aplicacin para otros para usar, all Son algunos pasos ms que usted necesitar tomar. La apndice C, en pgina 227 lo har

GARCIA JIMCubra eso de ms detalle. 1.5 Que Se Ayunan Adelante Gracias al plug-in del Eclipse, creando un programa esqueltico del Androide Toma slo algunos segundos. En el Captulo 3, Diseando la Interfaz del Usuario, Adelante Pgina 41, comenzaremos a rellenarnos de msculo fuera tan mnimo con una aplicacin verdadera _ uno Sudoku juegue. Esta prueba ser usada en varios captulos a demostrar API. del androide

Figura 1.5: Corriendo el "hola, Androide" programa Acortando la Vuelta en U Iniciar al emulador es caro. Piense acerca de eso as Cuando usted primero enciende su telfono, necesita por aadidura arriba algo as como Cualquier sistema de la computadora. Cerrar al emulador est algo as como irse El telfono o arrancando las bateras. As es que, no lo apague! Deje la ventana del emulador corriendo con tal de que Eclipse est corriendo. La prxima vez que usted inicie una voluntad del Androide de programa, del Eclipse Me fijo que el emulador est ya all y justamente le enviar lo nuevo Programe correr.

GARCIA JIMPero antes de ahondar en eso, usted deberan tardar algunos minutos en rezar Divida en captulos 2, Conceptos Cruciales, adelante lo en la otra pgina. Una vez que usted ase lo bsico Los conceptos como las actividades y los ciclos biolgicos, el resto sern mucho ms fciles Para entender. Aunque el uso de Eclipse para desarrollar programas del Androide es optativo, yo Altamente recomindelo. Si usted nunca ha usado Eclipse antes, usted puede querer Para invertir dinero en una referencia rpida como el Gua Eclipse IDE Pocket

GARCIA JIMCaptulo 2 Teclee Conceptos Ahora que usted tiene una idea de lo que Android es, echemleos un vistazo cmo eso Las obras. Algunas partes de Androide pueden ser familiares, como la semilla Linux, OpenGL, y la base de datos SQL. Los otros sern completamente extranjeros, Como la idea del ciclo biolgico aplicativo de Androide. Usted necesitar que una buena comprensin de estos conceptos cruciales para escriba Las aplicaciones del Androide bien portado, as que si usted lee slo un captulo adentro Este libro, lectura este. 2.1 el Cuadro Grande Comencemos por echarle un vistazo a la arquitectura global de sistema _ la llave Los estratos y los componentes que hace al Androide abre software de la fuente La pila. En Figura 2.1, en la siguiente pgina, usted puede ver lo " 20,000 El pie " la vista de Androide. Estdielo estrechamente habr una prueba maana. Cada estrato usa los servicios provistos por los estratos debajo de l. Empezando Del fondo, las siguientes secciones resaltan los estratos siempre y cuando por ah El androide. Linux Kernel El androide es creado encima de una fundacin slida y a la que se result ser: El Linux La semilla. Creado por Linus Torvalds en 1991 mientras l fue un estudiante La Universidad de Helsinki, Linux puede ser encontrado hoy adentro todo de Los relojes de pulsera para supercomputadoras. Linux provee la abstraccin del hardware El estrato para Androide, dejando a Android ser puesto a babor para una variedad ancha De plataformas en el futuro.

Figura 2.1: La arquitectura de sistema del androide

GARCIA JIMInternamente, el Androide usa a Linux para su administracin de memoria, el proceso La gerencia, el sistema de redes, y otros servicios operativos de sistema. Lo El usuario del telfono del androide nunca ver que Linux y sus programas no lo harn La marca Linux llama por telfono directamente. Como un desarrollador, sin embargo, usted necesitar ser Consciente est all. Algunos servicios pblicos que usted necesita durante el desarrollo le interactan a Linux. Para El ejemplo, el command1 de la concha del adb abrir una concha Linux en la cual usted Pueden introducir otras rdenes para funcionar con el dispositivo. De all usted puede Examine el sistema del archivo Linux, los procesos de voz activa de vista, y as sucesivamente, subordinan Para las restricciones de seguridad. Las Bibliotecas Natales El siguiente estrato por encima de la semilla contiene las bibliotecas nativas Android. Estas bibliotecas compartidas se escriben todo con ustedstedso o C + +, compiladas para lo La arquitectura del hardware particular usada por el telfono, y preinstalado Por el vendedor telefnico. Algunos de las bibliotecas natales ms importantes incluyen lo siguiente: " Surface Manager:: El androide utiliza un gerente de la ventana del compositing Parecido a Vista o Compiz, pero es mucho ms simple. En lugar de dibujar En seguida para el amortiguador de la pantalla, sus comandos del dibujo van en Offscreen bitmaps que est entonces combinado con otros bitmaps para Forme el despliegue que el usuario ve. Esto deja el sistema crear todo Ordena de efectos interesantes como antojo y ventanas transparentes Las transiciones. " Los grficos 2D y 3D: Dos elementos tridimensionales pueden ser Combinado en una interfaz sola del usuario con Androide. La voluntad de la biblioteca El hardware del 3D de uso si el dispositivo lo tuviera a eso o un dador rpido del software si No hace. Vea Captulo 4, Explorando Grficos del 2D, en pgina 70 y Captulo 10, 3D Graphics en OpenGL, en pgina 191. " Los codecs de los medios de comunicacin: El androide puede jugar video y puede registrar y puede escuchar una cinta Audio en una coleccin variada de formatos incluyendo a AAC, AVC (H.264), H.263 MP3, y MPEG-4. Vea Captulo 5, Multimedia, en pgina 101 para uno El ejemplo. " La base de datos SQL: El androide incluye la base de datos ligera del SQLite El motor, 2 que la misma base de datos us en Firefox y el iPhone Apple. Usted puede destinar esto para almacenamiento persistente en su aplicacin. Vea Captulo 9, Dndole Ocupacin a SQL, en pgina 171 para un ejemplo. " El motor del navegador: Para el despliegue acelerado de contenido de HTML, el Androide Utiliza al WebKit Library.3 ste es el mismo motor usado en lo Haga Bsquedas En La Internet Usando Google navegador de Cromo, el navegador de Safari de Manzana, el Apple IPhone, Y la plataforma S60 de Nokia. Vea Captulo 7, el Mundo Conectado, En pgina 126 para un ejemplo. Estas bibliotecas no son aplicaciones que se permanecen fiel ellos mismos. Ellos Exista slo para ser designado por los programas superiores del nivel. Empezando en Androide 1.5, usted puede escribir y puede destacar sus bibliotecas natales utilizando al Nativo El desarrollo Toolkit (NDK). El desarrollo nativo trasciende el alcance de Este libro, excepto si usted est interesado usted puede leer todo acerca de l en lnea.

GARCIA JIMEl Runtime del Androide Tambin la sentada encima de la semilla es el Android Runtime, incluyendo lo La mquina virtual Dalvik y las bibliotecas Java de fondo. El Dalvik VM es la implementacin de Google de Java, optimizada para mvil Los dispositivos. Todo el cdigo que usted escribe para Androide estar escrito en Java y Corra dentro del VM. Dalvik difiere de Java tradicional en dos formas importantes: " El Dalvik VM corre archivos del .dex, cules se convierten en compila cronometra De .class estndar y archivos del .dex de archivos. .jar es ms compacto y Eficiente que la clase archiva, una consideracin importante para lo limitado La memoria y los dispositivos energizados en batera que los blancos Android. " Las bibliotecas Java de fondo que vienen con Androide son diferentes de Ambos las bibliotecas Java Standard Edition (Java SE) y la Java Las bibliotecas mviles de la Edicin (Java Maine). Hay una cantidad sustancial De traslapo, sin embargo. En A de la Apndice, en pgina 213, usted encontrar una comparacin De Androide y bibliotecas estndar Java. El Armazn Aplicativo Sentndose por encima del runtime y bibliotecas natales, usted encontrar la Aplicacin El estrato del armazn. Este estrato provee los bloques constructivos de alto nivel Usted soler crear sus aplicaciones. El framework viene preinstalado Con Androide, pero usted tambin lo puede extender con sus componentes Segn se necesite. Las partes ms importantes del framework son como sigue: " El gerente de actividad: Esto controla el ciclo biolgico de aplicaciones (vea Seccin 2.2, est vivo!, En la siguiente pgina) y mantiene uno comn "Backstack" para la navegacin del usuario. " Contente a los proveedores: Estos objetos encapsulan datos que las necesidades para ser Compartido entre aplicaciones, como los contactos. Vea Seccin 2.3, Contente a los Proveedores, en pgina 37. " El gerente del recurso: Los recursos son cualquier cosa que va con su El programa que no es cdigo. Vea Seccin 2.4, Usando Recursos, Adelante Pgina 37. " El gerente de la posicin: Un telfono del Androide siempre sabe dnde l is. Vea Captulo 8, Localizando y Sintiendo, en pgina 155. " El gerente de notificacin: Los Eventos como mensajes que acaba de llegar, las citas, La proximidad alerta, invasiones ajenas, y ms pueden replantearse En una moda discreta para el usuario. Las Aplicaciones y los Dispositivos El estrato ms alto en el diagrama de arquitectura del Androide es los Applications Y el estrato de Dispositivos. Piense acerca de este como el consejo del iceberg del Androide. Los usuarios finales vern slo estos programas, dichosamente ignorante de todo el Ponga en marcha seguir debajo de la lnea de flotacin. Como un desarrollador del Androide, sin embargo, Usted tiene mejor criterio. Las aplicaciones son programas que pueden asumir el control de la pantalla entera y Interactele al usuario. Por otra parte, los Dispositivos (algunas veces designado Las cosas), slo funciona en un rectngulo pequeo de la aplicacin de la pantalla de la pgina principal del sitio Web. La mayor parte de este libro cubrir desarrollo aplicativo, porque Ese es lo que la mayor parte de ti escribir. El desarrollo del dispositivo es inconspicuo En Appendix B, en pgina 217. Cuando alguien compra un Androide llame por telfono, vendr preempacado

GARCIA JIMUn nmero de aplicaciones estndar de sistema, incluyendo lo siguiente: " Llame por telfono marcador " El correo electrnico " Los contactos " El navegador de Internet " El Mercado del Androide Usando el Mercado del Androide, el usuario podr hacer un download de programas nuevos Para funcionar con su telfono. Es ah donde usted entra. En el momento Usted termina este libro, usted podr escribir sus aplicaciones del asesino Para Androide. Ahora tomemos una apariencia ms cercana en el ciclo biolgico de una aplicacin del Androide. Es un poco diferente lo que usted est acostumbrado a ver. 2.2 que es Vivo! En su Linux estndar o parte superior de un escritorio de Ventanas, usted puede tener muchas aplicaciones Corriendo y visible de inmediato en ventanas diferentes. Uno de lo Las ventanas tiene foco del teclado, pero de otra manera todos los programas son iguales. Usted fcilmente puede cambiar de decisin entre ellos, pero es su responsabilidad como lo El usuario para mover de un lado para otro las ventanas as es que usted puede ver lo que usted est haciendo y El final programa que usted no necesita ms ya. El androide no trabaja de ese modo. En Androide, hay una aplicacin del primer plano, lo cual tpicamente toma Sobre el despliegue entero excepto por la lnea de estatus. Cuando el usuario cambia de direccin En su telfono, la primera aplicacin que ven es la aplicacin de la pgina principal del sitio Web (Vea Figura 2.2, en la siguiente pgina). Este programa tpicamente sale a la vista Una imagen de fondo, una bsqueda o dispositivo del reloj, y una lista con barra de desplazamiento de Otras aplicaciones que el usuario puede conjurar. Cundo el usuario corre una aplicacin, el Androide la inicia y lo pone al pairo lo El primer plano. De esa aplicacin, el usuario podra invocar otra aplicacin, u otra pantalla en la misma aplicacin, y luego otro y Otro. Todos estos programas y pantallas se graban en la aplicacin La pila por el Gerente de Actividad del sistema. En cualquier momento, el usuario puede Presione el botn De Atrs para regresar a la pantalla previa en la pila. De punto de vista del usuario, surte efecto muchsimo como la historia en una trama El navegador. Parte trasera que presiona les devuelve a la pgina previa. Figura 2.2: La aplicacin de la pgina principal del sitio Web

GARCIA JIM

El proceso!= La aplicacin Internamente, cada pantalla de la interfaz del usuario es representada por una clase de Actividad (Vea Seccin 2.3, Actividades, en pgina 36). Cada actividad tiene su vida El ciclo. Una aplicacin es una o ms actividades y un proceso Linux para Tngalos. Eso suena bastante franco, no lo hace eso? Pero no haga Acomdese an; Estoy a punto de tirarle un lanzamiento curvo. En Androide, una hoja de solicitud puede estar viva aun si su proceso ha sido Matado. Ponga de cualquier otro modo, el ciclo biolgico de actividad no est atareado con el proceso El ciclo biolgico. Los procesos son simplemente envases desechables para actividades. Esto es

Probablemente desemejante del cada otro sistema usted est familiarizado, as deja Tome una apariencia ms cercana antes de seguir adelante. Los ciclos biolgicos de los ricos y Famous Durante su duracin de una vida, cada actividad de un programa del Androide puede ser adentro una de Varios estados, como se muestra en Figura 2.3. Usted, el desarrollador, no tiene El control sobre qu estado su programa est. Eso es todo bajo la direccin de lo El sistema. Sin embargo, usted queda notificado cuando el estado est a punto de cambiar A travs del onXX () las llamadas de mtodo. Usted pasa sobre la disposicin de estos mtodos en su clase Activity, y el Androide llamar por telfono Ellos en el tiempo apropiado: " OnCreate (Bundle): Esto es designado cuando la primera parte de actividad se inicia. Usted lo puede usar realizar antigua inicializacin como crear La interfaz. del usuario onCreate () toma un parmetro que es ya sea Nulo o alguna informacin estatal previamente salvada por el onSaveInstanceState ( ) El mtodo.

GARCIA JIMOnStart (): Esto indica que la actividad est a punto de ser exhibida lo El usuario. " OnResume (): Esto es designado cuando su actividad puede comenzar a interactuar Con el usuario. ste es un buen lugar para iniciar animaciones y msica. " OnPause (): Esto corre cuando la actividad est a punto de entrar en el trasfondo, Usualmente porque otra actividad ha sido en la que se lanz La parte delantera de eso. Esto est donde usted debera ahorrar su programa persistente El estado, como un registro de la base de datos siendo editado. " OnStop (): Esto es designado cuando su actividad es ya no visible a El usuario y eso no sern necesarios por algn rato. Si la memoria es apremiante, OnStop (el sistema simplemente puede terminarse () nunca puede ser designado Su proceso). " OnRestart (): Si este mtodo es designado, indica su actividad es Siendo reexhibido para el usuario de un estado bloqueado. " OnDestroy (): ste es derecho designado antes de que su actividad se destruya. Si La memoria es apremiante, onDestroy (el sistema puede () nunca puede ser designado Simplemente termine su proceso). " OnSaveInstanceState (el Manojo): El androide llamar este mtodo a permitirle La actividad para ahorrar por estado de instancia, como una posicin del cursor Dentro de un campo del texto. Usualmente usted no necesitar pasar sobre la disposicin de eso porque La implementacin predeterminada le ahorra al estado para toda su interfaz del usuario Controla automticamente. " OnRestoreInstanceState (el Manojo): Esto es designado cuando la actividad es Siendo reinicializado de un estado previamente salvado por el onSave El mtodo InstanceState (). La implementacin predeterminada restaura lo El estado de su interfaz del usuario. Las actividades que no corren en primer plano pueden estar bloqueadas o El proceso Linux que los aloja puede ser echado a perder en cualquier momento en orden Para dejar campo para actividades nuevas. sta ser una ocurrencia comn, As es que es importante que su aplicacin sea diseada desde el principio Con esto en mente. En algunos casos, el mtodo onPause () puede ser lo ltimo El mtodo procedi al cobro inmediato de su actividad, tan es ah donde usted debera ahorrar cualquier datos Usted quiere mantener aproximadamente para la prxima vez. Adems de manejar el ciclo biolgico de su programa, el armazn del Androide Dispone que un nmero de bloques constructivos usted el uso a crear su Las aplicaciones. Echemleos un vistazo a esos despus. 2.3 Bloques Constructivos Algunos objetos estn definidos en el Android SDK que cada desarrollador necesita Para ser familiar. Los ms importantes son actividades, intentos, Los servicios, y los proveedores contentos. Usted ver varios ejemplos de ellos adentro Al resto de libro, as es que me gustara brevemente introducirlos ora. Las actividades Una actividad es una pantalla de la interfaz del usuario. Las aplicaciones pueden definir uno o Ms actividades para manejar fases diferentes del programa. Como discutido En la Seccin 2.2, est vivo!, En pgina 32, cada actividad es responsable para Salvo su estado a fin de que puede ser restaurada ms tarde como parte de lo El ciclo biolgico aplicativo. Vea Seccin 3.3, Creando la Pantalla Abridora, Adelante Pgina 43 para un ejemplo.

GARCIA JIMLos intentos Un intento es un mecanismo para describir una accin especfica, tan " la eleccin Una foto, una casa telefnica, "o" un claro la vaina alla puertas ". En Androide, simplemente Acerca de todo experimenta intentos, as es que a usted le sobran las oportunidades Para reemplazar o reusar componentes. Vea Seccin 3.5, Implementando Uno Aproximadamente Caja, en pgina 54 para un ejemplo de un intento. Por ejemplo, hay un intento para "enva un correo electrnico". Si su aplicacin Necesita enviar correo, usted puede conjurar ese intento. O si usted escribe uno La aplicacin nueva del correo electrnico, usted puede registrar una actividad para manejar tan atento Y reemplaza el programa de correo estndar. La siguiente persona de influencia de tiempo intenta Para enviar un email, obtendrn la opcin para usar su programa en lugar de Lo estndar. Los servicios Un servicio es una tarea que corre en el trasfondo sin el usuario directo La interaccin, parecido a un demonio Unix. Por ejemplo, considere una msica El jugador. La msica puede comenzar por una actividad, pero usted la quiere para Mantngase jugando an cuando el usuario ha seguido adelante hacia un programa diferente. Entonces, el cdigo que hace el modo de tocar real debera estar en un servicio. Ms tarde, Otra actividad puede tener fuerza obligatoria para ese servicio y la puede decir para cambiar huellas O el alto jugando. El androide viene con muchos servicios incorporados, junto con Los APIs convenientes para acceder a ellos. Contente A los Proveedores Un proveedor contento es un set de informacin absorto en un API aduanero para leer Y lo escribe. sta es la mejor forma para compartir informacin global entre aplicaciones. Por ejemplo, Google provee a un proveedor contento para los contactos. Toda la informacin all _ le nombra, le dirige la palabra, enve por telfono nmeros, y bien En adelante _ puede ser compartido por cualquier aplicacin que quiere para usarlo. Vea Seccin 9.5, Destinando a un ContentProvider, en pgina 185 para un ejemplo. 2.4 Recursos Utilizadores Un recurso es una cuerda del texto localizada, bitmap, u otro pedacito de Poco codifique informacin que su programa necesita. En constitucin cronometre todo su Los recursos se compilan en su aplicacin. Usted crear y almacenar sus recursos en el directorio de res adentro su Proyctese. El compilador del recurso del Androide (aapt) 5 procesa recursos Segn cul subcarpeta estn dentro y el formato del archivo. Para El ejemplo, PNG y bitmaps del formato JPG deberan irse en el res/drawable El directorio, y los archivos XML que describe le oculta los layouts lo deberan entrar lo El directorio del / layout de res. El compilador del recurso comprime y empaca sus recursos y luego Genera que una clase nombr R que contiene identificadores que usted suele establecer referencias para Esos recursos en su programa. Esto es un poco diferente de estndar Los recursos Java, cules son a los que se puso notas por cuerdas cruciales. Hacindolo as Deja a Android hacer seguro todas sus referencias es vlido y economiza No espacie por ah no teniendo que almacenar todas esas llaves del recurso. Eclipse usos uno El mtodo similar a almacenar y establecer referencias para los recursos en plug-ines del Eclipse. Veremos un ejemplo del cdigo para acceder a un recurso en el Captulo 3, Diseando la Interfaz del Usuario, en pgina 41.

GARCIA JIM2.5 Seguro y Seguro Como mencionada anterior, cada aplicacin corre en su propio proceso Linux. El hardware prohbe un proceso de acceder a otro proceso La memoria. Adems, cada aplicacin es asignada una identificacin de usuario especfica. Cualquier archivos que crea no pueden ser ledos o escritos por otras aplicaciones. Adems, acceda a para ciertas operaciones crticas est restringido, y usted Especficamente debe pedir permiso para usarles en un archivo nombrado Androide Manifest.xml. Cuando la aplicacin es instalada, el Gerente del Paquete Uno u otro concede o no concede los permisos basados en certificados Y, si es necesario, el usuario apremia. Aqu hay una cierta cantidad de lo ms comn Los permisos que usted necesitar: " La INTERNET: Acceda A la Internet. " LEA _ LOS CONTACTOS: Lea (pero no escriba) los datos de contactos del usuario. " ESCRIBA _ CONTACTOS: Escriba (pero no lea) los datos de contactos del usuario. " RECIBA A _ SMS: Monitoree mensajes entrantes SMS (el texto). " ACCEDA A _ LA POSICIN _ GRUESA: Utilice un proveedor tosco de la posicin tan La celda se encumbra o wifi. " _ LA POSICIN DE _ MULTA DE ACCESO: Use un proveedor de la posicin ms preciso tan Como GPS. Por ejemplo, para monitorear mensajes entrantes SMS Usted especificara Esto en el archivo manifiesto:

El androide aun puede restringir acceso a partes enteras del sistema. Acostumbrando Las etiquetas XML en AndroidManifest.xml, usted puede restringir quin puede iniciar una actividad, El principio o tiene fuerza obligatoria para un servicio, intentos emitidos por radio para un aparato receptor, o el acceso Los datos en un proveedor contento. Esta clase de control trasciende el alcance De este libro, pero si usted quiere aprender que se repita, lea la ayuda en lnea para lo Model.6 de seguridad del androide 2.6 Fast-Forward >> El resto de este libro usar todos los conceptos introducidos en este captulo. En el Captulo 3, Diseando la Interfaz del Usuario, en pgina 41, acostumbraremos Las actividades y los mtodos de ciclo biolgico para definir una aplicacin de muestra. El captulo 4, Explorando Grficos del 2D, en pgina 70 usar una cierta cantidad de los grficos Las clases en las bibliotecas nativas Android. Los codecs de los medios de comunicacin sern explorados En el Captulo 5, Multimedia, adelante mande a llamar 101, y los proveedores contentos sern Cubierto de adentro Captulo 9, Dndole Ocupacin a SQL, en pgina 171.

GARCIA JIM

Parte II Los Fundamentos del Androide

GARCIA JIM

Captulo 3 Diseando la Interfaz del UsuarioEn el Captulo 1, la Ayuda Rpida para Iniciar, en pgina 16, us el Eclipse del Androide El plug-in para atar cabos sobre un programa de "hola" simple ", del Androide" en pocos minutos. En Parte II, crearemos un ejemplo ms sustancial: Un Sudoku El juego. Por gradualmente aadirle las caractersticas al juego, usted aprender acerca de Muchos aspectos de Androide programando. Iniciaremos con la interfaz del usuario. Usted puede encontrar todo el cdigo de muestra usado en este libro en http://pragprog. El com / titula / eband2. Si usted lee la versin PDF de este libro, usted Puede dar un clic sobre el rectngulo gris pequeo antes de los listados de cdigo de los que hacer un download Eso archiva directamente. 3.1 Introduciendo Al Sudoku Example Sudoku hace un gran programa de muestra para Androide porque el juego S mismo es tan simple. Usted tiene una cuadrcula de ochenta y una tejas (nueve a travs y Nueve derriban), y usted intenta rellenarlos con nmeros tan tan cada columna, Cada uno rema, y cada uno del tres por tres cajas contiene los nmeros 1 a travs de 9 solo una vez. Cuando el juego empieza, algunos de los nmeros (Los givens) es ya rellenado. Todo lo que el jugador tiene que hacer es dar abasto lo El descanso. Un acertijo verdadero Sudoku tiene slo una solucin nica. Sudoku es usualmente jugado con lpiz y peridico, pero las versiones informatizadas Es muy popular tambin. Con la versin del peridico, es fcil de hacer Un error pronto, y cuando eso ocurre, usted tiene que regresar y Borre la mayor parte de su trabajo. En la versin del Androide, usted puede cambiar lo Enlosa siempre que a usted le gusta sin tener que remover con el cepillo todo esos molestoso Los rapamientos del borrador. El androide Sudoku (vea Figura 3.1, en la siguiente pgina) tambin ofrecer uno Pocos indicios a tomar algunos del gruido resultan de acertijo solucionando. A las un El extremo, justamente podra solucionar el acertijo para usted, pero eso no sera cualquier La diversin, lo hara ella? Entonces, tenemos que sopesar los indicios contra el reto Y no la marca eso demasiado fcil. 3.2 Diseando por Declaracin El usuario interacta puede ser diseado usando uno de dos mtodos: Procesal Y declarativo. Procesal simplemente la manera en cdigo secreto. Por ejemplo, cuando Usted programa una aplicacin Giratoria, usted escribe cdigo Java para crear Y manipula todos los objetos de la interfaz del usuario como JFrame y El JButton. As, el Columpio es procesal. El diseo declarativo, por otra parte, no requiere cualquier cdigo. Cuando Usted disea una pgina simple de trama, usted usa HTML, un lenguaje de sobreprecio Basado en XML que describe lo que usted quiere ver en la pgina, no cmo Usted quiere hacerlo. El HTML es declarativo. El androide intenta montar a horcajadas la abertura entre lo procesal y declarativo Los mundos dejndole crear interfaces del usuario en ya sea el estilo. Usted Puede casi enteramente permanecer en cdigo Java, o usted puede quedarse casi enteramente

GARCIA JIMEn los descriptores XML. Si usted busca en la documentacin para cualquier Androide El componente de la interfaz del usuario, usted ver ambos las Java APIs y lo correspondiente Los atributos declarativos XML que hacen lo mismo. Cul debera usar usted? Cualquier cara de la moneda es vlida, pero el consejo de Google es acostumbrar XML declarativo lo ms posible. El cdigo XML es a menudo ms corto Y ms fcil para entender que el cdigo correspondiente Java, y eso es Menos probablemente para cambiar en versiones futuras.

Figura 3.1: El programa de ejemplo Sudoku para Androide Ahora veamos cmo podemos usar esta informacin para crear al Sudoku Abriendo pantalla. 3.3 Creando Al Opening Filtran Iniciaremos con un programa del Androide mnimo creado por el plugin Eclipse. Tal como usted hizo en la Seccin 1.2, Creando Su Primer Programa, adelante Pgina 20, crea un proyecto de "hola" nuevo ", del Androide", pero esta vez acostumbra lo Despus de los valores:Project name: Sudoku Build Target: Android 1.6 Application name: Sudoku Package name: org.example.sudoku Create Activity: Sudoku

En un programa verdadero, claro est, usted usara sus nombres aqu. Lo El nombre del paquete es en particular importante. Cada aplicacin en el sistema Debe tener un nombre nico del paquete. Una vez que usted escoge un nombre del paquete, Tiene un poco su truco a cambiarlo porque es usado en tantos lugares. Me gusta mantener la ventana del emulador del Androide arriba de todo el tiempo y correr lo Programe despus de cada cambio, desde que toma slo algunos segundos. Si usted Haga eso y corra el programa ahora, usted ver una pantalla en blanco que simplemente Contiene las palabras "mundo de hola, Sudoku". La primera orden de negocio es Para cambiar eso en una pantalla abridora para que el juego, con botones alquiler

GARCIA JIMEl principio del jugador un juego nuevo, contine a uno previo, infrmese Acerca del juego, o salida. Entonces, en qu tenemos que convertirnos hace eso? Como discutidos en el Captulo 2, los Conceptos Cruciales, adelante paginan 27, hojas de solicitud del Androide Es una coleccin suelta de actividades, cada uno del cual define a un usuario La pantalla de la interfaz. Cuando usted le crea al Sudoku proyecto, el Androide El plug-in hace una actividad sola para usted en Sudoku.java:Download Sudokuv0/src/org/example/sudoku/Sudoku.java

package org.example.sudoku;

import android.app.Activity; import android.os.Bundle;

public class Sudoku extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }

El androide llama el mtodo onCreate () de su actividad a inicializarlo. Lo Llame a setContentView () rellena el contenido de la pantalla de la actividad con Un dispositivo de vista del Androide. Pudimos haber usado varias lneas de cdigo Java, y posiblemente otro La clase o dos, a definir al usuario interconectan procesalmente. Pero en lugar de eso, El plug-in escogi la ruta declarativa, y continuaremos a lo largo de esos Las lneas. En el cdigo previo, R.layout.main es un identificador del recurso que Se refiere al archivo del main.xml en el directorio del / layout de res (vea Figura 3.2, adelante lo Despus de pgina). Main.xml declara la interfaz del usuario en XML, as es que eso es El archivo que necesitamos modificar. En runtime, el Androide analiza gramaticalmente e instantiates (Infla) el recurso definido all y los sets eso como la vista para lo La actividad actual.

Figura 3.2: Los recursos iniciales en el Sudoku se proyectan

GARCIA JIMEs importante para reparar en que la clase de la R es manejada automticamente por ah lo El plug-in del Eclipse del androide. Cuando usted pone un archivo en cualquier parte del directorio de res, El plug-in nota el cambio y suma IDs del recurso en R. java En el directorio del gen para usted. Si usted quita o cambia un archivo del recurso, R. java es guardada en sync. Si usted sube el archivo en el editor, mirar Algo as como esto:/* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ package org.example.sudoku; public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x7f040001; public static final int hello=0x7f040000; } }

Los nmeros del hex son simplemente enteros que el gerente del recurso del Androide Suele cargar los datos verdaderos, las cuerdas, y los otros activos que son Compilado en su paquete. Usted no necesita preocuparse por sus valores. Simplemente recuerde que son agarraderas que se refieren a los datos, no lo Los objetos que contienen los datos. Esos objetos no estarn soplados hasta ellos Es necesario. Note eso casi cada programa del Androide, incluyendo la base El framework del androide mismo, tiene una clase de la R. Vea la documentacin en lnea En android.R para todos los recursos incorporados usted enlata use.1 Entonces, ahora sabemos que tenemos que modificar main.xml. Estudiemos en sus partes el original La definicin para ver lo que tenemos que cambiar. D doble clic sobre main.xml adentro El eclipse para abrirlo. A merced de cmo tiene usted que el Eclipse estableci, usted puede Vea ya sea un editor visual del layout o un editor XML. En versiones actuales De ADT, el editor visual del layout no es tan til, tan main.xml de chasquido o La etiqueta de la fuente al fondo a ver al XML. La primera lnea de main.xml est como Entiende: ?La versin del xml "1.0" codificando a "utf-8"?> Todos los archivos Android XML inician con esta lnea. Justamente dice al compilador que El archivo es formato XML, en la codificacin UTF-8. UTF-8 es casi exactamente como El texto normal de ASCII, pero tenga cdigos de escapada para personajes ASCII Como glifos japoneses. Next we see a reference to :

GARCIA JIMUn layout es un envase en primer lugar o ms nio objeta y un comportamiento para Sitelos en la pantalla dentro del rectngulo del objeto del padre. Aqu hay una lista de los layouts ms comunes provistas por Androide: " FrameLayout: Los classArranges sus nios as es que todos ellos empiecen en lo Corone izquierda de la pantalla. Esto sirve para imagen y puntos de vista tabulados Los cambiadores. " LinearLayout: Arregla a sus nios en una fila o columna sola. Esto Es el layout ms comn que usted usar. " RelativeLayout: Arregla a sus nios en relacin a cada otro o para El padre. Esto es a menudo usado en formas. " TableLayout: Ordena en filas a sus nios y columnas, parecido a Una mesa de HTML. Algunos parmetros son comunes para todos los layouts: Los xmlns:El androide "http://schemas.android.com/apk/res/android" Define al XML namespace para Androide. Usted debera definir esto Una vez, en la primera etiqueta XML en el archivo. El androide:_ la anchura del layout "llena _ padre", androide:_ la altura del layout "llena _ padre" Toma la altura y anchura entera del padre (en este caso, La ventana). Los valores posibles son llenan _ contenido del _ padre y de la envoltura. Dentro de la > etiqueta < LinearLayout usted encontrar un dispositivo de nio:

Esto define una etiqueta del texto simple. Reemplacemos eso con una cierta cantidad diferente El texto y algunos botones. Aqu hay nuestro primer intento:

Si usted ve advertencias en el editor acerca de perder restricciones de gramtica (El esquema DTD o XML), simplemente los ignora. En lugar de ingls duro que codifica El texto en el archivo del layout, usamos la sintaxis del resid de la @ cuerda para referirnos a cuerdas En el archivo res/values strings.xml. Usted puede tener versiones diferentes de esto Y otros archivos del recurso basaron en la localidad u otros parmetros tan Como la resolucin de la pantalla y la orientacin. Abra ese archivo ahora, ese interruptor para lo La etiqueta del strings.xml al fondo si es necesario, y entra en esto: Sudoku Android Sudoku Continue New Game About Exit

Figura 3.3: La primera versin de la pantalla abridora

GARCIA JIMAhorre strings.xml as es que el Eclipse reconstruir el proyecto. Cuando usted corre lo Programe ahora, usted debera ver algo as como Figura 3.3. Es legible, Pero se pudo uso un poco de cambios cosmticos. Hagamos el ttulo texto ms grande y centrados, la marca los botones ms pequeo, Y el uso un color de fondo diferente. Aqu est la definicin de color, cul Usted debera echar res/values/colors.xml: #3500ffff

Y aqu est el layout nuevo:Download Sudokuv1/res/layout/main.xml

En esta versin, introducimos una sintaxis nueva, @ +id/resid. En lugar de referir Para un recurso Idaho defini cualquier otra parte, ste es cmo crea usted Un recurso nuevo Idaho para el cual los otros pueden referir. Por ejemplo, @ +id / aproximadamente El botn define el Idaho para lo Acerca de botn, cul acostumbraremos posteriormente a hacer Algo ocurre cuando el usuario presiona ese botn.

Figura 3.4: Abriendo la pantalla con el Layout nuevo

Al resultado le son mostrados en Figura 3.4. A esta pantalla nueva le queda bien el retrato El modo (cuando la pantalla es ms alta es ancha), excepto cmo aproximadamente El modo del paisaje (la pantalla ancha)? El usuario puede cambiar modos en cualquier momento, Por ejemplo, enloqueciendo expulse el teclado o encendiendo el telfono su Tome partido, as es que usted necesita manipular eso. 3.4 Recursos Alternos Utilizadores Como una prueba, pruebe cambiar al emulador para ajardinar modo (Ctrl +F11 o Lo 7 o 9 teclea en el teclado pequeo). Uy! El botn de la Salida se rebalsa lo El fondo de la pantalla (vea Figura 3.5, en pgina 53). Cmo arreglamos eso? Usted podra intentar ajustar el layout a fin de que surta efecto con todas las orientaciones. Desafortunadamente, eso no es a menudo posible o gua a de aspecto extrao Las pantallas. Cuando eso ocurre, usted necesitar crear un layout diferente para El modo del paisaje. Ese es el acercamiento que tomaremos aqu

GARCIA JIM

Figura 3.5: En el modo del paisaje, no podemos ver el botn de la Salida. Cree un archivo designado res / main.xml / terrestre en layout (la nota lo - el sufijo terrestre) que Contiene el siguiente layout:Download Sudokuv1/res/layout-land/main.xml

GARCIA JIM

Esto utiliza a un TableLayout para crear dos columnas de botones. Ahora corra lo Programe otra vez (vea Figura 3.6, en la siguiente pgina). Aun en paisaje El modo, todos los botones es visible. Usted puede usar sufijos del recurso para especificar versiones alternas de cualquier recursos, No simplemente el layout. Por ejemplo, usted los puede usar proveer El texto localizado forma una serie en los lenguajes diferentes. Cada archivo alterno del recurso Debe definir set exactamente igual de IDs. El androide soporta sufijos para la densidad de lenguaje actual, de la regin, pixel, Ocltele mtodo de tamao, de resolucin, de aporte, y ms. Vea Al Androide La documentacin de recursos para una lista actual de sufijos y la herencia Las reglas 3.5 Implementando Uno Acerca de Caja Cuando el usuario hace una seleccin lo Acerca de botn, queriendo decir eso ya sea ellos se tocan Eso (si tienen un toque pantalla) o ellos le navegan a eso con la D-Pad (El cojincillo direccional) o trackball y prensa la seleccin abotonan, queremos Para fortalecer una ventana con alguna informacin acerca de Sudoku.

Figura 3.6: Utilizar un layout Especfico en paisaje nos deja Ver todos los botones.

GARCIA JIMDespus de enrollar a travs del texto, el usuario puede presionar el botn De Atrs para Descarte la ventana. Podemos lograr esto en diferentes formas: " Defina una Actividad nueva e inciela. " Use la clase AlertDialog y mustrela. " La clase de Dilogo del Androide de subclase, y la funcin que. Para este ejemplo, definamos una actividad nueva. Guste la actividad principal Sudoku, Lo Acerca de la actividad necesitar un archivo del layout. Le nombraremos / layout de res About.xml:Download Sudokuv1/res/layout/about.xml

Necesitamos slo una versin de este layout porque se ver fina en ambos Los modos de retrato y del paisaje. Ahora sume cuerdas para el ttulo de lo Acerca de ventana de dilogo y el texto eso Contiene para res/values strings.xml:Download Sudokuv1/res/values/strings.xml

About Android Sudoku \ Sudoku is a logic-based number placement puzzle. Starting with a partially completed 9x9 grid, the objective is to fill the grid so that each row, each column, and each of the 3x3 boxes (also called blocks) contains the digits 1 to 9 exactly once.

Note cmo puede contener un recurso de la cuerda HTML simple formateando y Pueden extenderse a lo largo de lneas mltiples. En caso usted se pregunte, el carcter de la barra inversa (\ ) En cuestin de _ texto impide un espacio vaco adicional de aparecer antes La primera palabra. Lo Acerca de la actividad debera estar definido en About.java. Todo lo que necesita hacer es Pase sobre la disposicin de setContentView () onCreate () y de llamada:

GARCIA JIMDownload Sudokuv1/src/org/example/sudoku/About.java

package org.example.sudoku; import android.app.Activity; import android.os.Bundle; public class About extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.about); } }

Despus necesitamos alambrar todo este hasta lo Acerca de botn en la clase Sudoku. Comience por sumar algunas importaciones que necesitaremos para Sudoku.java:Download Sudokuv1/src/org/example/sudoku/Sudoku.java

import android.content.Intent; import android.view.View; import android.view.View.OnClickListener;

En el mtodo onCreate (), sume cdigo para llamar a findViewById () a mirar hacia arriba uno La vista del androide dado su recurso Idaho y setOnClickListener () para decirle a Androide Cul desaprueba cosquilleo cuando el usuario toca o da un clic sobre la vista:Download Sudokuv1/src/org/example/sudoku/Sudoku.java

/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Set up click listeners for all the buttons View continueButton = findViewById(R.id.continue_button); continueButton.setOnClickListener(this); View newButton = findViewById(R.id.new_button); newButton.setOnClickListener(this); View aboutButton = findViewById(R.id.about_button); aboutButton.setOnClickListener(this); View exitButton = findViewById(R.id.exit_button); exitButton.setOnClickListener(this); }

Mientras estamos aqu dentro, correspondemos para todos los botones. Recuerde eso A las constantes les gusta _ el botn R.id.about sea creado por el Eclipse con enchufe adentro R. java cuando vea @ +id / acerca de _ botn en / main.xml del / layout de res. El cdigo usa esto como el aparato receptor, as es que la clase Sudoku necesita implementar La interfaz OnClickListener y define un mtodo onClick designadoDownload Sudokuv1/src/org/example/sudoku/Sudoku.java

public class Sudoku extends Activity implements OnClickListener { // ... public void onClick(View v) { switch (v.getId()) { case R.id.about_button: Intent i = new Intent(this, About.class);

GARCIA JIMstartActivity(i); break; // More buttons go here (if any) ... } } }

Para iniciar una actividad en Androide, primero necesitamos crear una instancia de La clase Atenta. Hay dos clases de intentos: Los intentos pblicos (denominado)

Figura 3.7: La vista de la montaa, nosotros tenemos un problema Eso est registrado con el sistema y puede ser designado de cualquier aplicacin Y los intentos privados (annimo) que son usados dentro de un soltero La aplicacin. Para este ejemplo, justamente necesitamos la clase ms reciente. Si usted corre El programa y selecto lo Acerca de botn ahora, que usted obtendr un error (vea Figura 3.7). Qu pas? Olvidamos un paso importante: Cada actividad necesita ser declarada adentro AndroidManifest.xml. Para hacer eso, dar doble clic sobre el archivo para abrir eso, interruptor Para el modo XML si es necesario seleccionando la etiqueta AndroidManifest.xml en lo Llegue al fondo, y sume una > etiqueta nueva de < actividad despus de la etiqueta de cierre de la primera parte Uno:Download Sudokuv1/AndroidManifest.first.xml

Ahora si usted salva el manifiesto, corra el programa otra vez, y haga una seleccin lo Acerca de botn, usted debera ver algo as como Figura 3.8, en lo siguiente La pgina. Presione el botn De Atrs (Esc en el emulador) cuando usted termina. Eso aspecto general Oklahoma, excepto no hara que sea simptico si podramos ver la pantalla inicial Atrs lo Acerca de texto? Figura 3.8: La primera versin de lo Acerca de pantalla

GARCIA JIM3.6 Aplicndole Un Tema Un tema es una coleccin de estilos que pasan sobre la disposicin de la apariencia y sienten de Androide Los dispositivos. Los temas estaban inspirados por Hojas de Estilo Cascading (CSS) usadas Para pginas de trama _ separan el contenido de una pantalla y su presentacin O el estilo. El androide est empacado con varios temas que usted puede La referencia por el nombre, 4 o usted puede hacer su tema subclasificando Existiendo unos y pasando sobre la disposicin de sus valores predeterminados. Podramos definir nuestro tema aduanero en res/values/styles.xml, sino por Este ejemplo nos aprovecharemos justamente de uno predefinido. Para usarlo, Rebrase al editor AndroidManifest.xml, y cambie la definicin de Lo Acerca de la actividad as es que tenga una propiedad de tema.

Download Sudokuv1/AndroidManifest.xml

El @ androide: El prefijo delante del nombre de estilo quiere decir que sta es una referencia Para un recurso definido por Androide, no uno que se defini en su El programa. Corriendo el programa otra vez, lo Acerca de caja ahora se parece a la Figura 3.9. Muchos programas necesitan mens y opciones, as es que las siguientes dos secciones lo harn Mustrele cmo definirlos.

GARCIA JIM3.7 Sumando Un Men El androide soporta dos clases de mens. Primer, all est el men que usted obtiene Cuando usted presiona el botn fsico del Men. En segundo lugar, hay un contexto El men que aparece de pronto cuando usted presiona y sujeta su dedo en la pantalla (O la prensa y el agarre el trackball o el botn del centro de D-Pad). Hagmoslos a la primera clase tan tan cuando las prensas del usuario la llave del Men, Abrirn un men como el mismo en Figura 3.10, en la siguiente pgina. Primero necesitamos definir algunas cuerdas que usaremos ms tarde:Download Sudokuv1/res/values/strings.xml

Settings... Sudoku settings s Music Play background music Hints Show hints during play

Luego definimos el men utilizando a XML in res/menu/menu.xml:Download Sudokuv1/res/menu/menu.xml

Figura 3.10: Presione el botn del Men para abrir el men. Despus necesitamos modificar la clase Sudoku para subir el men simplemente Definido. Para hacer eso, necesitaremos algunas importaciones ms:Download Sudokuv1/src/org/example/sudoku/Sudoku.java

import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem;

GARCIA JIMLuego pasamos sobre la disposicin del mtodo Sudoku.onCreateOptionsMenu ():Download Sudokuv1/src/org/example/sudoku/Sudoku.java

@Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; }

GetMenuInflater () devuelve una instancia de MenuInflater que solemos leer La definicin del men de XML y las vueltas eso en una vista verdadera. Cuando el usuario selecciona cualquier men tem, onOptionsItemSelected () ser Designado. Aqu est la definicin para ese mtodo:Download Sudokuv1/src/org/example/sudoku/Sudoku.java

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.settings: startActivity(new Intent(this, Prefs.class)); return true; // More items go here (if any) ... } return false; }

Prefs es una clase que vamos a definir eso exhibe todas nuestras preferencias Y deja al usuario cambiarlos. 3.8 Trasfondos de Adicin El androide provee una facilidad agradable para definir lo que todas sus preferencias de programa Es y cmo exhibirlos no usando casi cdigo. Usted define Las preferencias en un archivo del recurso llamaron a res/xml settings.xml:

GARCIA JIMEl programa Sudoku tiene dos trasfondos: Uno para la msica de fondo y Uno para exhibir indicios. Las llaves son cuerdas constantes que sern usadas Bajo las coberteras en base de datos de preferencias del Androide. Despus defina la clase Prefs, y hgala extender a PreferenceActivity:

package org.example.sudoku; import android.os.Bundle; import android.preference.PreferenceActivity; public class Prefs extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); } }

El mtodo addPreferencesFromResource () lee la definicin de trasfondos De XML y lo infla en los puntos de vista en la actividad actual. Toda la persona de mucha importancia Las tomas elevadoras colocan en la clase PreferenceActivity.

Figura 3.11: Es poco mirar en, pero lo obtuvimos gratis.

GARCIA JIMNo olvide registrar la actividad Prefs en AndroidManifest.xml:Download Sudokuv1/AndroidManifest.xml

Sudoku ahora reestrenado, prensa la llave del Men, selecto los Trasfondos ... tem, Y la vigilia con asombro como la pgina de trasfondos Sudoku aparece (vea Figura 3.11). Pruebe cambiar los valores all y egresando el programa, Y luego entra de nuevo y se asegura de que todos ellos estn todava listos. El cdigo que lee los trasfondos y hace algo con ellos ser Discutido en un captulo diferente (el Captulo 6, Almacenando Datos Locales, adelante Pgina 116). Por ahora sigamos adelante hacia el botn Nuevo de Juego. 3.9 Iniciando Un Juego New Si usted ha jugado cualquier juegos Sudoku, usted sabe que algunos son fciles y Algunos son enloquecedoramente duras. As es que cuando el usuario selecciona Juego Nuevo, nosotros Quiera fortalecer una ventana de dilogo pidindoles a ellos que haga una seleccin entre tres dificultad Los niveles. Hacer una seleccin de una lista de cosas cuesta poco esfuerzo en Androide. La primera parte Necesitaremos algunas cuerdas ms en res/values strings.xml:Download Sudokuv1/res/values/strings.xml

Difficulty Easy Medium Hard

Cree la lista de dificultades como un recurso de conjunto imponente en res/values/arrays.xml:Download Sudokuv1/res/values/arrays.xml

@string/easy_label @string/medium_label @string/hard_label

Necesitaremos algunas importaciones ms en la clase Sudoku:Download Sudokuv1/src/org/example/sudoku/Sudoku.java

import android.app.AlertDialog; import android.content.DialogInterface; import android.util.Log;

GARCIA JIMSume cdigo en la declaracin del interruptor del mtodo onClick () para manipular hacer clic El botn Nuevo de Juego:Download Sudokuv1/src/org/example/sudoku/Sudoku.java

case R.id.new_button: openNewGameDialog(); break;

Figura 3.12: La ventana de dilogo de seleccin de dificultad El mtodo openNewGameDialog () se encarga de crear la interfaz del usuario Para la lista de dificultad.Download Sudokuv1/src/org/example/sudoku/Sudoku.java

private static final String TAG = "Sudoku" ; /** Ask the user what difficulty level they want */ private void openNewGameDialog() { new AlertDialog.Builder(this) .setTitle(R.string.new_game_title) .setItems(R.array.difficulty, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i) { startGame(i); } }) .show(); } /** Start a new game with the given difficulty level */ private void startGame(int i) { Log.d(TAG, "clicked on " + i); // Start game here... }

GARCIA JIMEl mtodo setItems () toma dos parmetros: El recurso Idaho del artculo La lista y un oyente que ser designado cuando uno de los artculos es seleccionado. Cuando usted corre el programa ahora y apresura a New Juegue, usted llegar lo La ventana de dilogo en Figura 3.12, en la pgina previa. No vamos realmente a iniciar el juego an, as en lugar de eso cuando usted Seleccione un nivel de dificultad, justamente escribimos en letras de imprenta uno depura mensaje utilizando al Log.d () El mtodo, pasndolos a eso una cuerda de la etiqueta y un mensaje a imprimir. 3.10 Depurando con Mensajes del Leo La clase del Leo provee varios mtodos estticos para imprimir mensajes de diversos La severidad nivela para el leo de sistema del Androide: " Log.e (): Los errores " Log.w (): Las advertencias " Log.i (): La informacin " Log.d (): Depurando " Log.v (): Verboso Los usuarios nunca vern este leo, pero como un desarrollador en quien usted lo puede mirar Unas formas de la pareja de casados. En Eclipse, abra al pblico la vista LogCat seleccionando Ventana > la funcin > el Otro View ... Android LogCat (vea Figura 3.13, adelante lo Despus de pgina). La vista puede ser filtrada por la severidad o por la etiqueta por usted Especificado en la llamada de mtodo. Si usted no est usando Eclipse, usted puede ver la misma salida corriendo El adb logcat command.5 que recomiendo usted lo inicia esta orden en uno Ponga aparte ventana y djela correr todo el tiempo que el emulador es Corriendo. No interferir con algunos otros monitores. No puedo enfatizar bastante cmo til el leo del Androide estar durante el desarrollo. Recuerde ese error que vimos ms temprano con lo Acerca de caja (la Figura 3.7, adelante mandan a llamar 58)? Si usted haba abierto al pblico la vista LogCat en ese momento, Usted habra visto este mensaje: " ActivityNotFoundException: Incapaz Para encontrar clase explcita de actividad ... tenga que usted declar esta actividad adentro Su AndroidManifest.xml "? No llega un poco ms simple que eso.

Figura 3.13: Depurando salida en la vista LogCat

GARCIA JIM3.11 Depurando con el Debugger Adems de mensajes del leo, usted puede usar el debugger Eclipse para colocar Los puntos de ruptura, el soltero el paso, y la vista el estado de su programa. Primero, permita Su proyecto para depurar por sumar al androide:Debuggable "verdadero" La opcin en su archivo AndroidManifest.xml:6 Haga Un Download De Sudokuv1/AndroidManifest.xml < el androide aplicativo:El icono / "el icono @ dibujable" El androide:La etiqueta _ "el nombre de la @ cuerda /aplicacin" El androide:Debuggable "verdadero" Luego, el chasquido simplemente correcto el proyecto, y Debug selecto Como > Androide La aplicacin. 3.12 Egresando el Juego Este juego realmente no necesita un botn de la Salida, porque el usuario pueda simplemente Presione la llave De Atrs o la llave de la pgina principal del sitio Web para hacer algo si no. Pero quise Para agregar uno para mostrarle cmo terminar una actividad. Adale esto a la declaracin del interruptor en el mtodo onClick ():Download Sudokuv1/src/org/example/sudoku/Sudoku.java

case R.id.exit_button: finish(); break;

Cuando el botn de la Salida es seleccionado, llamamos el mtodo de final (). Esto cierra Derribe la actividad y control de regresos para la siguiente actividad en el Androide La pila aplicativa (usualmente la pantalla de la pgina principal del sitio Web). Instruido cmo usar archivos del layout para organizar su usuario interconectan y cmo Para destinar a recursos del Androide para texto, colores, y ms. Usted sum controles Como botones y campos del texto, le aplicaron temas para cambiar el programa La apariencia, y aun los mens aadidos y las preferencias por aadidura. El androide es un sistema complicado, pero usted no tiene que saber todo eso para Comience. Cuando usted necesita socorro, lo centenares de manda a llamar de referencia El empuje en lnea material en ms profundidad en todas las clases y los mtodos usados Here.7 Another gran fuente para los consejos y los trucos son Planet Android.8 Y Por supuesto, si usted se pega usted siempre puede caer de visita por el foro de debate Para este book.9 Los otros lectores y yo estaremos encantados de echarle una mano. En el Captulo 4, Explorando Grficos del 2D, en la siguiente pgina, acostumbraremos Grfico API del androide para dibujar las tejas para el juego Sudoku.

Fast-Forward >>Uf, eso fue bastante para cubrir en un captulo! A partir de rayn, usted

GARCIA JIMCaptulo 4 Explorando Grficos del 2D Hasta ahora, hemos cubierto la filosofa y conceptos bsicos de Androide y Cmo crear una interfaz de usuario simple con algunos botones y un dilogo Boxee. Usted realmente comienza a agarrar la onda de esta cosa Android. Sino Algo falta ... qu es eso? No me digas, la diversin! Los buenos grficos le pueden aadir un poquito de diversin y excitacin a cualquier aplicacin. El androide se pone una de las bibliotecas de grficos ms energticas disponibles uno El dispositivo mvil en sus puntas del dedo. Realmente, pone dos de ellos all: Uno Para grficos de dos dimensiones y uno para graphics.1 tridimensional En este captulo, cubriremos grficos del 2D y le aplicaremos ese conocimiento Para implementar la parte de juego de nuestro ejemplo Sudoku. Captulo 10, 3D Los grficos en OpenGL, adelante mandan a llamar 191 cubrirn grficos del 3D acostumbrando lo La biblioteca OpenGL ES. 4.1 Aprendiendo los Fundamentos El androide le provee a un nativo cabal biblioteca de grficos de dos dimensiones En su paquete de android.graphics. Con una comprensin bsica de clases Como Color y Lona, usted estar levantado y dibujando inmediatamente. El color Los colores del androide son representados con cuatro nmeros, uno para cada quien para alfa, Comunista, verdee, y azule (ARGB). Cada componente puede tener 256 posibles Los valores, o 8 pedacitos, as es que un color estn tpicamente apiados en un entero de 32 pedacitos. Para La eficiencia, los usos de cdigo del Androide un entero en lugar de una instancia de lo Distorsione clase. Comunista, verdee, y azule es obvio, pero el alfa no lo podra ser. El alfa es una medida de diapositiva. El valor mnimo, 0, indican lo El color es completamente transparente. Realmente no tiene importancia lo que los valores Para RGB es, si Uno son 0. El valor ms alto, 255, indican el color Es completamente opaco. Los valores se destin para en la mitad translcido, o Los colores semitransparentes. Le dejan ver algunos de cul es El objeto trazndose en primer plano. Para crear un color, usted puede usar una de las constantes estticas en el Color Clase, guste esto:int color = Color.BLUE; // solid blue

O si usted sabe el alfa, comunista, verdee, y azule nmeros, usted puede acostumbrar Uno de los mtodos estticos de la fbrica como lo siguiente:// Translucent purple color = Color.argb(127, 255, 0, 255);

Si es posible, sin embargo, usted est usualmente mejor definiendo todos sus colores adentro Un archivo del recurso XML. Esto le deja cambiarlos con holgura en un lugar Ms tarde: #7fff00ff

GARCIA JIMUsted puede establecer referencias para colores por el nombre en otros archivos XML, como lo hicimos en el Captulo 3, o usted los puede usar en cdigo Java como esto:color = getResources().getColor(R.color.mycolor);

El mtodo getResources () devuelve la clase ResourceManager para lo La actividad actual, y los precios de venta getColor () el gerente para buscar un color Dado un recurso Idaho. PAINT Una de clases ms importantes de la biblioteca nativa Android de grficos es the Paint class. Mantiene el estilo, color, y otra informacin necesitado Para dibujar cualquier grficos incluyendo a bitmaps, del texto, y las formas geomtricas. Normalmente cuando usted pinta algo en la pantalla, usted quiere dibujarla En un color entero. Usted coloca ese color con el mtodo Paint.setColor (). Por ejemplo:cPaint.setColor(Color.LTGRAY);

Esto destina el valor predefinido de color para gris ligero. Canvas La clase de Lona representa una superficie en la cual usted dibuja. Inicialmente las lonas Pngase en marcha falto de cualquier contenido, guste las diapositivas en blanco para uno El proyector areo. Los mtodos en la clase de Lona le dejan dibujar lneas, Los rectngulos, los crculos, u otros grficos arbitrarios en la superficie. En Androide, la pantalla de despliegue est ocupada por una Actividad, lo cual se desempea como maestro de ceremonias uno La vista, que a su vez patrocine una Lona. Usted obtiene una oportunidad para acercarse Esa lona pasando sobre la disposicin del mtodo View.onDraw (). El nico parmetro Para onDraw () est una lona en la cual usted puede dibujar. Aqu hay una actividad de ejemplo designada Graphics, lo cual contiene una vista llamada GraphicsView:public class Graphics extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new GraphicsView(this)); } static public class GraphicsView extends View { public GraphicsView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { // Drawing commands go here } }

GARCIA JIMVamos a meter algunos comandos del dibujo en el mtodo onDraw () En la siguiente seccin. Path The Path class tiene aplicacin un set de rdenes que extraen vector como lneas, Los rectngulos, y las curvas. Aqu hay un ejemplo que define un camino circular:circle = new Path(); circle.addCircle(150, 150, 100, Direction.CW);

Figura 4.1: Dibujando texto alrededor de un crculo Esto define un crculo en x de la posicin = 150, y = 150, con un radio de 100 Los pixeles. Ahora que hemos definido el PATH, usmoslo dibujar el crculo Esboce y algn texto alrededor del interior:privat