Seminario Android (Parte 2) - movilforum
Upcoming SlideShare
Loading in...5
×
 

Seminario Android (Parte 2) - movilforum

on

  • 914 views

El seminario tiene dos partes bien diferenciadas. En la primera parte se introduce ANDROID: las herramientas de desarrollo más utilizadas, cómo subir una aplicación al market y finalmente se ...

El seminario tiene dos partes bien diferenciadas. En la primera parte se introduce ANDROID: las herramientas de desarrollo más utilizadas, cómo subir una aplicación al market y finalmente se desarrolla una aplicación de ejemplo paso a paso.

En la segunda parte se abordan los distintos kernels de ANDORID, las posibilidades de modificar un kernel existente o desarrollar uno a medida.

Los asistentes al seminario traen sus portátiles y terminales ANDORID para participar y desarrollar los ejemplos. El formato del curso es abierto, resolviendo el profesor las dudas que surjan sobre la marcha, así como las que planteen los alumnos.

Statistics

Views

Total Views
914
Views on SlideShare
903
Embed Views
11

Actions

Likes
0
Downloads
84
Comments
0

2 Embeds 11

http://movilforum.posterous.com 10
https://p.yammer.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

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

Seminario Android (Parte 2) - movilforum Seminario Android (Parte 2) - movilforum Document Transcript

  • 1. LOS KERNELS Y ANDROID ES LINUX ? La batalla aclarada... Un Kernel de manera sencilla. ¿Qué hace bien Google y que no hace ?¿ Es opensource o no ? La cosa no esta clara, para los puristas. Pero al final la letrapequeña da a google la razón, fuera del kernel de linux que siempre está abierto. Noestán obligados a liberar el resto. Cuota de Platforma Nivel de API mercadoAndroid 2.2 (Froyo) 8 43,4%Android 2.1 (Eclair) 7 39,6% Android 1.6 4 10,6% (Donut) Android 1.5 3 6,3% (Cupcake) Diferencias entre Kernels de una misma familia y terminales Android 2.2 - Kernel Linux 2.6.32 • Integración de los V8 de Chrome motor de JavaScript en el navegador de aplicación (local e internet)
  • • Microsoft Exchange • Wi-Fi acess point • Marcación por voz y uso compartido de contactos a través de Bluetooth • Carga de archivos en la aplicación de Navegador • GIF animados apoyada en el navegador. Adobe Flash 10.1 Soporte para pantallas AMOLED, SUPER AMOLED, XVGA, • HDMI out Branch Android 2.3 - Kernel Linux 2.6.35 Android 2.1 y 2.1 pre-1 (oems) y 2.2 Android 2.3, 2.3.1 (Nexus), 2.3.2 y 2.3.3 (developers) Android 2.3 y 2.4 (developer) Android 2.3 además de todas las funciones existentes, soportes para NFC ( NearField Communication ) que es un mecanismo de comunicación de alta velocidad de datos funciona de alta frecuencia en un rango corto (10 cm). Kernels de Android antes del tema de honeycomb.. http://rodrigocalvo.com/roms.android/
  • 2. COMPILANDO TU KERNEL Has decidido probar a hacer un kernel distinto.. Haciendo una imagen para utilizar en el SDK Imágenes, terminales y el mundo de las ciento y un cpus. El script de arranque Lo más importante en un Kernel para que pueda funcionar al igual que en linux es este esto. Yo recomiendo que reviséis la documentación de Linux al respecto, hay mucho ejemplos.--(CODE )--ui_print("Welcome to Tu Custom Kernel !");assert(getprop("ro.product.device") == "trout" || getprop("ro.build.product") == "trout" || getprop("ro.product.board") == "trout" || getprop("ro.product.device") == "sapphire" || getprop("ro.build.product") == "sapphire" || getprop("ro.product.board") == "sapphire");ui_print("Backing up proprietary files...");
  • package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");set_perm(0, 0, 0777, "/tmp/backuptool.sh");run_program("/tmp/backuptool.sh", "backup");show_progress(0.200000, 10);ui_print("Installing Awesomeness...");format("MTD", "system");mount("MTD", "system", "/system");show_progress(0.500000, 40);package_extract_dir("recovery", "/system");package_extract_dir("system", "/system");symlink("../xbin/su", "/system/bin/su");symlink("busybox", "/system/xbin/[", "/system/xbin/[[", "/system/xbin/arp", "/system/xbin/ash", "/system/xbin/awk", "/system/xbin/basename", "/system/xbin/bbconfig", "/system/xbin/brctl", "/system/xbin/bunzip2", "/system/xbin/bzcat", "/system/xbin/bzip2", "/system/xbin/cal", "/system/xbin/cat", "/system/xbin/catv", "/system/xbin/chgrp", "/system/xbin/chmod", "/system/xbin/chown", "/system/xbin/chroot", "/system/xbin/cksum", "/system/xbin/clear", "/system/xbin/cmp", "/system/xbin/cp", "/system/xbin/cpio", "/system/xbin/cut", "/system/xbin/date", "/system/xbin/dc", "/system/xbin/dd", "/system/xbin/depmod", "/system/xbin/devmem", "/system/xbin/df", "/system/xbin/diff", "/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd", "/system/xbin/dos2unix", "/system/xbin/du", "/system/xbin/echo", "/system/xbin/ed", "/system/xbin/egrep", "/system/xbin/env", "/system/xbin/expr", "/system/xbin/false", "/system/xbin/fdisk", "/system/xbin/fgrep", "/system/xbin/find", "/system/xbin/fold", "/system/xbin/free", "/system/xbin/freeramdisk", "/system/xbin/fuser", "/system/xbin/getopt", "/system/xbin/grep", "/system/xbin/gunzip", "/system/xbin/gzip", "/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id", "/system/xbin/ifconfig", "/system/xbin/insmod", "/system/xbin/install", "/system/xbin/ip", "/system/xbin/kill", "/system/xbin/killall",Esto pertenece a mi arranque de 2.1 sobre el HTC Dream (G1) Disponible para vuestras pruebas en : http://rodrigocalvo.com/roms.android/ 2.1 HTC Dream firmado.zip Los permisos de AndroidLa cosa es actualices el Kernel nada más, cambies drivers dentro de una terminal, lodesbloquees o uses una goldcard. Los permisos tienen que volver a su sitio, si no elterminal fallara.
  • set_perm_recursive(0, 0, 0755, 0644, "/system");set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");set_perm(0, 3003, 02755, "/system/bin/netcfg");set_perm(0, 3004, 02755, "/system/bin/ping");set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluez");set_perm(0, 0, 0755, "/system/etc/bluez");set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");set_perm_recursive(0, 2000, 0755, 0750, "/system/etc/init.d");set_perm(0, 0, 0755, "/system/etc/init.d");set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");set_perm(0, 0, 0544, "/system/etc/install-recovery.sh");set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");set_perm(0, 0, 06755, "/system/xbin/librank");set_perm(0, 0, 06755, "/system/xbin/procmem");set_perm(0, 0, 06755, "/system/xbin/procrank");set_perm(0, 0, 06755, "/system/xbin/su");set_perm(0, 0, 06755, "/system/xbin/tcpdump"y finalmenteunmount("/system"); 3. PROBANDO LA IMAGEN EN UN TERMINAL Ejemplos específicos. Terminales clásicos en los que funciona todo. G2 (Magic) , G3 (Hero) y Nexus.La experiencia me dice que la Magic (G2) siendo la 32B la mejor por tener más ram y el Hero ambos de HTC que fueron de los primeros terminales que fueron disponibles para los cocineros de roms. Por otro lado el Nexus One, ejecuta todo.Para empezar y no tener problemas con las nuevas cpus, que los scripts que hagáis no se ejecuten. Recomiendo una Magic, para la que hay cientos de roms, la dream es mucho más complicada para desarrollar y no es un tema para los principiantes. Por su falta de ram y que no
  • tiene 3D de ningún tipo. Teniendo que quitar mucho código de google para hacer funcionar un kernel actual. Para probar la rom, no hay más que hacerse con un recovery, en los terminales antiguos Amon RA un desarrollador americano, usando las fuentes de google y htc creo un recovery que carga roms desde la micro sd. Todos los recoveries que han salido después están basado en su trabajo.A media que la familia Android crece asi las distintas cpus. Normalmente lo que para el que haya roms para un terminal, suele ser que o bien la empresa usar unos drivers privativos o bien no se sabe como arrancar un recovery. También puede ser que no se tenga las roms oficiales u actualizaciones disponibles.Al final siempre se puede sacar la rom del terminal, caso del Movistar Ivy en el que no había nada por parte de Huawei. Todo pasa por el root. Que hoy en día no tiene ninguna ciencia.A fecha de hoy están saliendo unas cpu muy interesantes por Sony, los Arc que nuevos en android. Habrá que ver su kernel 2.2 y 2.1 cómo vienen de seguros. Linux en un terminal de estos sería capaz de bastantes cosas.Me gustaria que revisarias alguna de mis roms. Sobre Magic y Nexus.http://rodrigocalvo.com/roms.android/ 4. KERNELS PROPIETARIOS QUE NO PARECEN ANDROID Modficando Kernel para Tabletas. Kernels de modificados por el operador Kernels incompletos por el fabricante Ejemplos de tabletas con arranques distintos.Las tabletas que veis hoy ya tiene todas las teclas pero aun les faltan cosas que las versiones desarrolladas en Asia ya tenían. Muchas tabletas tiene que cambiar el Kernel por no tener todas las APIs, esto hace que sean Android capados. Un cambio es el menú que les pones. Para poder acceder a todo. Algunos montan pantallas resistivas otro normales. Tu rom tiene que “sufrir” todo y tener soporte de entrada de chino e inglés. Que en las versiones 1.5 a 1.7.1 google no lo daba nativo.Otro tema es que una tableta puede arrancar en modo linux y arrancar el espacio de Android. En muchos casos el Android que arrancas es la
  • imagen oficial de google que corre en los teléfonos, por que no había ninguna diferencia. Hasta la historia sin acabar de Honeycomb.Veremos un par de ejemplos. Hay incluso kernels que no tienen soporte de android market, por un tema de no pedir el permiso a google. Que por regla general te lo da.Veamos sobre los Kernels oem, muy tipico es que al operador le den un kernel a medio hacer. Que si terminal es barato ni se preocupan. Si el operador es grande, se preocupan ellos en hacer una actualización para terminal. (Huawei y T-mobile Pulse) Ya el tema de que Motorola no tiene nombre. No solo, en Europa y America del sur, deciden no actualizar el terminal de 1.5/1.6 si no que encima te bloquean para que ni puedas usar tu terminal para desarrollar con el. Los Sony Ericsson, con ese UI raro sobre Android, no lo ralentiza mucho. Pero en los terminales de gama baja, que no te dicen por que todos parecen igual. Parece que poco a poco se van actualizando. Y llegamos al caso de Samsung. Los androids que parecen iphones. Bueno el problema no son los iconos, es que para flashear o actualizar fuera de sus actualizaciones inexistentes sólo exige una aplicación de windows (odin). Todos estos terminales les suele faltar algo. Cuando ejecutas una aplicación con todo los derechos y las apis de su versión de android suele ocurrir el force close (FC) 5. LINUX Y SUS SCRIPTS DENTO DE ANDROID Llamando aplicaciones de android (apk) desde el kernel.. Formas de arrancar una imagen en un Android Guardando los datos de usuario system/framework
  • (lo más importante a respetar)Lo que seguro que habeis visto es que las roms, tiene aplicaciones ya metidas en el primer arrancan con ellas. Se pueden colocar en varios sitios. Lo vamos a ver ahora.Veremos un par de ejemplos. Hay incluso kernels que no tienen soporte de android market, por un tema de no pedir el permiso a google. Que por regla general te lo da.Vamos a ver cómo se salvan los datos de usuario en un terminal, al poner un Kernel nuevo, nuestro ejemplo va a ser un port de eclair completo a un Huawei u8110 (Ivy). Vamos a ver dónde se meten las aplicaciones y el resto. Los nuevos Kernel y Roms van siempre así. system/app ¿ Qué es un fichero ODEX ?Los apks .apk contienen datos odex, se supone que salvan espacio. Los ficheros odex son parte de las aplicaciones. Vamos a ver cómo se salvan los datos de usuario en un terminal. Se supone que que se pre-cargan. La realidad es bien distinta..HTC y su sense tiene la manía de llenar el sistema de odex que no hacen nada.el tamaño e sel mismo en todos. ¿ Qué es un fichero DEODEX ? Es básicamente re-empaquetar un odex y su apk. Sin esto no se puede luego modificar el .apk por otro más nuevo. Se vuelven a poner todas las aplicaciones en su sitio. Y se mantiene la integridad. Es
  • imprescindible.El formato del audio ha cambiado al ogg que los “cocineros” empezaron a usar. Las melodías, tonos de aviso y demás ruidos del sistema son configura bles desde aquí. También con permisos de root se pueden cambiar.Por defecto si no sobre escribes /apps los ficheros del usuario se guardaran. Se pueden perder los sms. Pero en general nada más. 6. ¿QUÉ TIENE MI TERMINAL DE ANDROIDE ? El "su" el root y toda la historia… Kernels y el OpenGL, Los 2D .. La “aceleracion” y el 3D en Android. • El GPS y el Market. Esto es un fallo a medias entre en quien fabrica el terminal y entre otras el operador por no preocuparse por sus clientes. • ¿ Que pasa cuando el GPS pierde señal o no funciona bien ? • La compañía es consciente desde el momento 1, no les interesa comunicárselo a los operadores por quedar mal. Pero bueno el gps no se usa todo el rato. No es un tecnología al centímetro. La gente no se queja mucho. • Pero y el Android Market, cuando con el mismo operador con la misma sim y dos terminales android salen resultados distintos y hay aplicaciones que no “están” esto es un poco más grave. Pero sobre mi experiencia, los operadores no pueden hacer mucho. Lo sufren los desarrolladores...
  • OpenGL : La historia del Pseudo 3D y el 2DSe suponía que android venia con soporte OpenGL, el tema es que no estabapor ningún lado en los repositorios. Ninguna rom oficial levaba nada aparte deunos ficheros. Pero no había aplicaciones con soporte de verdad, aparte de losejemplos de google. Todos los juegos eran 2D o pseudo 3D. Parece que eso vacambiando poco a poco. Los Samsung, los SonyErisson y algún Dell. Ya vienencon cpus de aceleración.Se supone que con los móviles dual-core tecra el tema mejora. Nada de nada.El sdk no esta preparado. Veremos en las próximas versiones. Root, Recovery, Unlock.Desde el principio, los Android se han rooteado, más fácilmente, hoy en día escosa de segundos. El superuser es la evolución. Para evitar fallos de seguridadde root en los terminales o versiones del kernel.Los recoveries se compilan igual pero son algo mucho más complicado por quese hacen con ingería inversa sobre el terminal exacto.El tema del unlock, no tienen ninguna ciencia, se supone que cada compañíaha de liberar la parte privativa de su terminal, vamos las fuentes del arranquey hboot. Con esto el unlock es coser y cantar, HTC no ha cambiado el sistemadesde sus inicios, por que da igual un Windows Mobile, un Android o unWindows Phone 7. Ante todo quiero dar las gracias a Moviforum, por toda la ayuda a mis desarrollos.