SlideShare una empresa de Scribd logo
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-1
Desarrollo de Aplicaciones
para Android
Sesión 1: Introducción a
Android
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-2
Puntos a tratar
• Dispositivos móviles
• Historia de Android
• Desarrollo de aplicaciones
• Emulador
• AndroidManifest.xml
• Externalizar recursos
• Plug-in para Eclipse
• ¡Hola, Mundo!
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-3
Historia de los smartphones
• Primeros smartphones en los 90
• Nokia communicator en 1996
• Primer smartphone con
sistema operativo abierto en 2000:
• Ericsson R380 con Symbian OS
• Smartphone actuales:
• Pantalla táctil
• Opcionalmente teclado físico
• Sistema operativo con Market para aplicaciones
• Sensores (GPS, equilibrio)
• Cámaras y videoconferencia
• Capacidad de almacenamiento y conectividad
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-4
Dispositivos
b
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-5
Paradigmas de programación en móviles
 Documentos Web
Descarga documentos y los muestra en un navegador
Formato adecuado para móviles (WML, XHTML, ...)
Requiere conectar a red para descargar cada documento
Velocidad de descarga lenta
Documentos pobres (deben servir para todos los móviles)
 Aplicaciones locales
La aplicación se descarga en el móvil
Se ejecuta de forma local
Interfaz de usuario más flexible
Puede funcionar sin conexión (minimiza el tráfico)
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-6
Sistemas operativos
• Android (open source)
• BlackBerry OS de RIM (propietario)
• iOS de Apple (propietario)
• Symbian OS (open source)
• Windows Phone & Windows Mobile (propietario)
• Firefox OS (en desarrollo)
• webOS de HP (algunas partes abiertas)
• QNX de RIM (propietario)
• SHR (basado en linux)
• Bada de Samsung (propietario)
• Brew de Qualcomm
• Palm OS (propietario)
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-7
Sistemas operativos antes de 2010
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-8
Sistemas operativos en el mercado actual
• Estadísticas de uso según Gartner
2007 2008 2009 2010 2011 2012 2013
Android N/A 0.5% 3.9% 22.7% 36% 43% 75%
iOS 2.7% 8.2% 14.4% 15.7% 16.8% 18% 17.3%
Windows 12% 11.8% 8.7% 4.2% 3.6% 2% 3.2%
BlackBerry 9.6% 16.6% 19.9% 16.0% 12.9% 12% 2.9%
Linux y otros 12.1% 10.5% 6.1% 3.8% 3.3% 2% 1.0%
Symbian 63.5% 52.4% 46.9% 37.6% 27.4% 22% 0.6%
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-9
Android
• Sistema operativo para dispositivos móviles
• Núcleo basado en el de Linux
• Programación de aplicaciones en Java
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-10
Historia de Android
• Android 1.1 se publica en febrero de 2009
(coincide con la proliferación de smartphones
táctiles).
• Siguientes versiones:
• 1.5 Cupcake (basada en el núcleo de Linux 2.6.27)
• …
• 2.2 Froyo (basada en el núcleo de Linux 2.6.32)
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-11
Nombres basados en repostería
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-12
Nombres basados en repostería
• 2.3 Gingerbread
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-13
Nombres basados en repostería
• 3.0 / 3.1 Honeycomb (orientado a tablets)
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-14
Nombres basados en repostería
• 4.0 Ice Cream Sandwich (tablets / móviles)
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-15
Estadísticas de uso de versiones
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-16
Licencia
• Android
• Sistema operativo (Licencia Apache)
• Plataforma de desarrollo (Licencia Apache)
• Licencia Apache
• Open Source
• Permite a los fabricantes añadir extensiones
propietarias sin ponerlas en manos de la comunidad
del software libre
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-17
Open Source
• El open source hace posible:
• Una comunidad de desarrollo, gracias a sus completas APIs y documentación
ofrecida.
• Desarrollo desde cualquier plataforma (Linux, Mac, Windows, etc).
• Un sistema operativo para cualquier tipo de dispositivo móvil, al no estar
diseñado para un sólo tipo de móvil.
• Posibilidad para cualquier fabricante de diseñar un dispositivo que trabaje con
Android, y la posibilidad de abrir el sistema operativo y adaptarlo o extenderlo
para su dispositivo.
• Valor añadido para los fabricantes de dispositivos: las empresas se ahorran el
coste de desarrollar un sistema operativo completo para sus dispositivos.
• Valor añadido para los desarrolladores: los desarrolladores se ahorran tener
que programar APIs, entornos gráficos, aprender acceso a dispositivos
hardware particulares, etc.
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-18
Cuestiones éticas
• Aspectos positivos
• Código abierto
• Valor añadido para todos
• Mantenibilidad
• Seguridad informática
• Transparencia del uso de sensores
• Servicios gratuitos de Google
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-19
Cuestiones éticas
• Aspectos negativos
• Obligatorio log-in con el ID de Google (dependencia)
• Constante intercambio de datos con Google
• Envío de localización (desactivable)
• Los usuarios no están concienciados de la
dependencia de los servidores de Google y lo
aceptan sin más.
• Aunque el SO sea libre, gran parte de su valor está
en los servicios gratuitos de Google, que no son
libres ni conocemos el tratamiento que dan a
nuestra información privada.
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-20
Desarrollan Android:
• Open Handset Alliance
• Trata de definir estándares abiertos para
dispositivos móviles
• Consorcio de decenas de compañías (entre ellas
está Google):
• Operadores de telefonía móvil
• Fabricantes de dispositivos
• Fabricantes de procesadores y microelectrónica
• Compañías de software
• Compañías de comercialización
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-21
¿De qué está hecho?
• Núcleo (branch) basado en linux (memoria, procesos, hardware)
• Bibliotecas open source (SQLite, WebKit, OpenGL, manejador de
medios, etc).
• Entorno de ejecución Dalvik
• Framework de desarrollo: pone a disposición de las aplicaciones
los servicios del sistema
• SKD: herramientas, plug-in para Eclipse, emulador, ejemplos, doc.
• Interfaz de usuario para pantalla, dispositivos de entrada, etc.
• Aplicaciones preinstaladas (destacamos Flash Player)
• Android Market
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-22
Android SDK
• Licencias, distribución y desarrollo gratuitos. No diferencia entre aplicaciones
nativas y de terceros.
• Acceso al hardware de WiFi, GPS, Bluetooth y telefonía, permitiendo realizar y
recibir llamadas y SMS.
• Control completo de multimedia, incluyendo la cámara y el micrófono.
• APIs para los sensores: acelerómetros y brújula.
• Mensajes entre procesos (IPC).
• Almacenes de datos compartidos, proveedores de contenidos, SQLite, acceso a
SD Card.
• Aplicaciones y procesos en segundo plano.
• Widgets para la pantalla de inicio (escritorio).
• Integración de los resultados de búsqueda de la aplicación con los del sistema.
• Uso de mapas y sus controles desde las aplicaciones.
• Aceleración gráfica por hardware, incluyendo OpenGL ES 2.0 para 3D.
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-23
Capas
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-24
Consideraciones para el desarrollo
• Pequeña capacidad de procesamiento
• Memoria RAM limitada
• Memoria permanente de poca capacidad
• Pantallas pequeñas de poca resolución
• Transferencias de datos costosa y lenta
(en términos de energía y económicos)
• Inestabilidad de las conexiones de datos
• Batería muy limitada
• Necesidad de terminar la aplicación en cualquier momento
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-25
Consideraciones para el desarrollo
• Ser eficiente
• CPU
• Memoria
• Recursos y red
• Respetar al usuario
• No robar el foco
• Pocos avisos
• Interfaz intuitiva y coherente con Android
• Ver Guía de desarrollo de Android antes de
publicar
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-26
Tipos de aplicaciones
• Primer plano (activities)
• Segundo plano
• Servicios puros
• Servicios combinados con actividades
• Widgets de escritorio
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-27
AndroidManifest.xml
• Presente en todo proyecto Android.
• Declaración de metadatos de la aplicación
• Nombre del paquete y de la aplicación
• Actividades, actividad principal
• Servicios
• Receptores broadcast
• Proveedores de contenidos
• Permisos
• API mínima, librerías.
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-28
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<application>
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data />
</activity-alias>
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<provider>
<grant-uri-permission />
<meta-data />
</provider>
<uses-library />
</application>
</manifest>
• Estructura
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-29
AndroidManifest.xml
• Ejemplo
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="es.ua.jtech.ajdm.interfaces"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Interfaces"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="SubActividad" android:label="SubActividad">
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-30
Externalizar recursos
• Hace la aplicación más mantenible y
personalizable
• Adaptación a otros idiomas
• Carpeta res del proyecto
• res/values
• res/drawable-ldpi
• res/drawable-mdpi
• res/drawable-hdpi
• res/layout
• res/xml
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-31
Externalizar recursos
• Valores, en formato XML:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="saludo">¡Hola!</string>
<color name="verde_transparente">#7700FF00</color>
<dimen name="altura_mifuente">12sp</dimen>
<array name="ciudades">
<item>Alicante</item>
<item>Elche</item>
<item>San Vicente</item>
</array>
<style name="EstiloTexto1">
<item name="android:textSize">18sp</item>
<item name="android:textColor">#00F</item>
</style>
...
</resources>
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-32
Externalizar recursos
• Acceso a los recursos desde el código
• Acceso a los recursos desde el XML
TextView tv = (TextView)findViewById(R.id.TextView01);
tv.setText(R.string.saludo);
@string/nombrestring
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-33
Instalación: Plug-in para Eclipse
• Instalación desde Eclipse:
• Help > Install new software > Available software >
Add:
• https://dl-ssl.google.com/android/eclipse/
• Ok, seleccionar el software, Next, Finish.
• Reiniciar Eclipse.
• Configuración:
• Windows > Preferences > Android > SDK Location:
• Indicamos la ruta del Android SDK que deberemos
haber bajado aparte y descomprimido.
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-34
Plug-in para Eclipse: plataformas
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-35
Plug-in para Eclipse: plataformas
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-36
AVD Manager
• Crear nuevo
dispositivo
virtual (AVD):
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-37
Emulador
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-38
Asistente para la
creación de proyectos
• Genera la estructura
básica del proyecto
• AndroidManifest.xml
• Actividad principal
• Layout
• Resto de recursos
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-39
Asistente para crear recursos XML
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-40
Vista Dalvik Debug Monitor Service
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-41
Vista Debug
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-42
Editor del
AndroidManifest.xml
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-43
Editor visual
de layouts
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-44
Ejemplo: ¡Hola, Mundo!
• Crear nuevo proyecto →
• Se genera la estructura
básica:→
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-45
¡Hola, Mundo! AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="es.ua.jtech.ajdm.holamundo"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-46
¡Hola, Mundo!
• Recursos strings en res/values/strings.xml
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-47
¡Hola, Mundo!
• Recursos strings en res/values/strings.xml
• Añadimos los string hola, mundo y que.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Main!</string>
<string name="app_name">HolaMundo</string>
<string name="hola">Hola, </string>
<string name="mundo"> Mundo!</string>
<string name="que">Hola ¿qué?</string>
</resources>
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-48
¡Hola, Mundo!
• Layout en res/layouts/main.xml
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-49
¡Hola, Mundo!
• Layout en res/layouts/main.xml
• Eliminamos la etiqueta y ponemos una nueva
etiqueta TextView y un botón Button:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:text="@+id/TextView01" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<Button android:text="@+id/Button01" android:id="@+id/Button01"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-50
¡Hola, Mundo!
• Layout en res/layouts/main.xml
• Cambiamos los atributos android:text para
que muestren los string de los recursos.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:text="@string/hola" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<Button android:text="@string/que" android:id="@+id/Button01"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-51
¡Hola, Mundo!
• Layout en res/layouts/main.xml
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-52
¡Hola, Mundo! Emulación
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-53
¡Hola, Mundo! Actividad y eventos
Main.java
package es.ua.jtech.ajdm.holamundo;
public class Main extends Activity
{
TextView textView;
Button button;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView)findViewById(R.id.TextView01);
button = (Button)findViewById(R.id.Button01);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
textView.append(getString(R.string.mundo));
}
});
}
}
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-54
¡Hola, Mundo! Emulación 2
Desarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-55
¿Preguntas...?

Más contenido relacionado

La actualidad más candente

Sistemas Operativos para moviles
Sistemas Operativos para movilesSistemas Operativos para moviles
Sistemas Operativos para moviles
Javier Alexander Flores Cisneros
 
ANDROID
ANDROIDANDROID
¿Qué es Android?
¿Qué es Android?¿Qué es Android?
¿Qué es Android?
Vivi Ines Portales
 
Investigacion
InvestigacionInvestigacion
Investigacion
Angel Alva
 
Presentación1
Presentación1Presentación1
Presentación1
Gelis Murillo
 
Sistemas operativos moviles
Sistemas operativos movilesSistemas operativos moviles
Sistemas operativos moviles
Ronald Ramìrez Olano
 
Carrillolizbeth&amp;jimenezjulissa
Carrillolizbeth&amp;jimenezjulissaCarrillolizbeth&amp;jimenezjulissa
Carrillolizbeth&amp;jimenezjulissa
Lizbeth Leticia Carrillo Hernandez
 
Android 140526140544-phpapp02
Android 140526140544-phpapp02Android 140526140544-phpapp02
Android 140526140544-phpapp02hinosbadi
 
Introducción de dispositivos moviles
Introducción de dispositivos movilesIntroducción de dispositivos moviles
Introducción de dispositivos moviles
ITV
 
Consideraciones para el Desarrollo de Aplicaciones Móviles
Consideraciones para el Desarrollo de Aplicaciones MóvilesConsideraciones para el Desarrollo de Aplicaciones Móviles
Consideraciones para el Desarrollo de Aplicaciones Móviles
Sorey García
 
Carrillolizbethjimenezjulissa
CarrillolizbethjimenezjulissaCarrillolizbethjimenezjulissa
Carrillolizbethjimenezjulissa
Yuliy Jiménez
 
Sistemas operativos móviles
Sistemas operativos móvilesSistemas operativos móviles
Sistemas operativos móviles
Lili Contreras Bernardo
 
Historia android
Historia   androidHistoria   android
Historia android
Jhampiers Saint
 
Proyecto de aula 4 semestre terminando
Proyecto de aula 4 semestre terminandoProyecto de aula 4 semestre terminando
Proyecto de aula 4 semestre terminando
Rodrigo Rodriguez
 

La actualidad más candente (19)

Sistemas Operativos para moviles
Sistemas Operativos para movilesSistemas Operativos para moviles
Sistemas Operativos para moviles
 
ANDROID
ANDROIDANDROID
ANDROID
 
¿Qué es Android?
¿Qué es Android?¿Qué es Android?
¿Qué es Android?
 
Android
AndroidAndroid
Android
 
Android2
Android2Android2
Android2
 
Investigacion
InvestigacionInvestigacion
Investigacion
 
Presentación1
Presentación1Presentación1
Presentación1
 
Android
AndroidAndroid
Android
 
Androidepresentacion
AndroidepresentacionAndroidepresentacion
Androidepresentacion
 
Movilidad 2: Dispositivos Móviles
Movilidad 2: Dispositivos MóvilesMovilidad 2: Dispositivos Móviles
Movilidad 2: Dispositivos Móviles
 
Sistemas operativos moviles
Sistemas operativos movilesSistemas operativos moviles
Sistemas operativos moviles
 
Carrillolizbeth&amp;jimenezjulissa
Carrillolizbeth&amp;jimenezjulissaCarrillolizbeth&amp;jimenezjulissa
Carrillolizbeth&amp;jimenezjulissa
 
Android 140526140544-phpapp02
Android 140526140544-phpapp02Android 140526140544-phpapp02
Android 140526140544-phpapp02
 
Introducción de dispositivos moviles
Introducción de dispositivos movilesIntroducción de dispositivos moviles
Introducción de dispositivos moviles
 
Consideraciones para el Desarrollo de Aplicaciones Móviles
Consideraciones para el Desarrollo de Aplicaciones MóvilesConsideraciones para el Desarrollo de Aplicaciones Móviles
Consideraciones para el Desarrollo de Aplicaciones Móviles
 
Carrillolizbethjimenezjulissa
CarrillolizbethjimenezjulissaCarrillolizbethjimenezjulissa
Carrillolizbethjimenezjulissa
 
Sistemas operativos móviles
Sistemas operativos móvilesSistemas operativos móviles
Sistemas operativos móviles
 
Historia android
Historia   androidHistoria   android
Historia android
 
Proyecto de aula 4 semestre terminando
Proyecto de aula 4 semestre terminandoProyecto de aula 4 semestre terminando
Proyecto de aula 4 semestre terminando
 

Similar a Manual 1

CursoAndroid.pptx
CursoAndroid.pptxCursoAndroid.pptx
CursoAndroid.pptx
MarioPerello1
 
Introducción a Android.pdf
Introducción a Android.pdfIntroducción a Android.pdf
Introducción a Android.pdf
AndersonHernandezara
 
Android
AndroidAndroid
Android
davic_exe
 
INTRODUCCION A ANDROID
INTRODUCCION A ANDROIDINTRODUCCION A ANDROID
INTRODUCCION A ANDROID
Richard Eliseo Mendoza Gafaro
 
Introducción a la Plataforma para Móviles Android
Introducción a la Plataforma  para Móviles AndroidIntroducción a la Plataforma  para Móviles Android
Introducción a la Plataforma para Móviles Android
Eduardo Lazo Cisneros
 
Conceptos y Generalidades de Android
Conceptos y Generalidades de AndroidConceptos y Generalidades de Android
Conceptos y Generalidades de Android
Pedro Antonio Villalta (Pavillalta)
 
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...CLEFormación
 
U1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_movilesU1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_moviles
Akirepaho
 
Sistemas Operativos Moviles
Sistemas Operativos MovilesSistemas Operativos Moviles
Sistemas Operativos Moviles
Facilitador -Tic
 
Android mobile application developer (3)
Android mobile application developer (3)Android mobile application developer (3)
Android mobile application developer (3)alvaro alcocer sotil
 
Android mobile application developer
Android mobile application developerAndroid mobile application developer
Android mobile application developeralvaro alcocer sotil
 
Android mobile application developer (2)
Android mobile application developer (2)Android mobile application developer (2)
Android mobile application developer (2)alvaro alcocer sotil
 
Aplicaciones Móviles
Aplicaciones MóvilesAplicaciones Móviles
Aplicaciones Móviles
Geo Monsiivaiiz
 
Android
AndroidAndroid
Desarrollo de aplicaciones moviles
Desarrollo de aplicaciones movilesDesarrollo de aplicaciones moviles
Desarrollo de aplicaciones moviles
UPA
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
Mónica Duque Lonoño
 

Similar a Manual 1 (20)

CursoAndroid.pptx
CursoAndroid.pptxCursoAndroid.pptx
CursoAndroid.pptx
 
Introducción a Android.pdf
Introducción a Android.pdfIntroducción a Android.pdf
Introducción a Android.pdf
 
Android
AndroidAndroid
Android
 
Android
AndroidAndroid
Android
 
Sistema Android
Sistema AndroidSistema Android
Sistema Android
 
INTRODUCCION A ANDROID
INTRODUCCION A ANDROIDINTRODUCCION A ANDROID
INTRODUCCION A ANDROID
 
Android
AndroidAndroid
Android
 
Introducción a la Plataforma para Móviles Android
Introducción a la Plataforma  para Móviles AndroidIntroducción a la Plataforma  para Móviles Android
Introducción a la Plataforma para Móviles Android
 
ANDROID
ANDROIDANDROID
ANDROID
 
Conceptos y Generalidades de Android
Conceptos y Generalidades de AndroidConceptos y Generalidades de Android
Conceptos y Generalidades de Android
 
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
 
U1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_movilesU1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_moviles
 
Sistemas Operativos Moviles
Sistemas Operativos MovilesSistemas Operativos Moviles
Sistemas Operativos Moviles
 
Android mobile application developer (3)
Android mobile application developer (3)Android mobile application developer (3)
Android mobile application developer (3)
 
Android mobile application developer
Android mobile application developerAndroid mobile application developer
Android mobile application developer
 
Android mobile application developer (2)
Android mobile application developer (2)Android mobile application developer (2)
Android mobile application developer (2)
 
Aplicaciones Móviles
Aplicaciones MóvilesAplicaciones Móviles
Aplicaciones Móviles
 
Android
AndroidAndroid
Android
 
Desarrollo de aplicaciones moviles
Desarrollo de aplicaciones movilesDesarrollo de aplicaciones moviles
Desarrollo de aplicaciones moviles
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
 

Último

CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
LuisLobatoingaruca
 
Curso Basico de DIgSILENT power factorys
Curso Basico de DIgSILENT power factorysCurso Basico de DIgSILENT power factorys
Curso Basico de DIgSILENT power factorys
LuisPerezIgnacio1
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
Victor Manuel Rivera Guevara
 
Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.
thatycameron2004
 
Joseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidadJoseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidad
KevinCabrera96
 
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).docEjercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
LuisEnriqueCarboneDe
 
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdfPLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
Daniel Jose Sierra Garcia
 
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdfAletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
JuanAlbertoLugoMadri
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
everchanging2020
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
ycalful01
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
michiotes33
 
Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
edujunes132
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
JhonatanOQuionesChoq
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
UOC Estudios de Informática, Multimedia y Telecomunicación
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
SantosCatalinoOrozco
 
Análisis de Sensibilidad clases de investigacion de operaciones
Análisis de Sensibilidad clases de investigacion de operacionesAnálisis de Sensibilidad clases de investigacion de operaciones
Análisis de Sensibilidad clases de investigacion de operaciones
SamuelHuapalla
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
ssuserebb7f71
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
maitecuba2006
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
JavierAlejosM
 

Último (20)

CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
 
Curso Basico de DIgSILENT power factorys
Curso Basico de DIgSILENT power factorysCurso Basico de DIgSILENT power factorys
Curso Basico de DIgSILENT power factorys
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
 
Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.
 
Joseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidadJoseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidad
 
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).docEjercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
 
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdfPLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
 
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdfAletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
 
Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
 
Análisis de Sensibilidad clases de investigacion de operaciones
Análisis de Sensibilidad clases de investigacion de operacionesAnálisis de Sensibilidad clases de investigacion de operaciones
Análisis de Sensibilidad clases de investigacion de operaciones
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
 

Manual 1

  • 1. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-1 Desarrollo de Aplicaciones para Android Sesión 1: Introducción a Android
  • 2. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-2 Puntos a tratar • Dispositivos móviles • Historia de Android • Desarrollo de aplicaciones • Emulador • AndroidManifest.xml • Externalizar recursos • Plug-in para Eclipse • ¡Hola, Mundo!
  • 3. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-3 Historia de los smartphones • Primeros smartphones en los 90 • Nokia communicator en 1996 • Primer smartphone con sistema operativo abierto en 2000: • Ericsson R380 con Symbian OS • Smartphone actuales: • Pantalla táctil • Opcionalmente teclado físico • Sistema operativo con Market para aplicaciones • Sensores (GPS, equilibrio) • Cámaras y videoconferencia • Capacidad de almacenamiento y conectividad
  • 4. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-4 Dispositivos b
  • 5. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-5 Paradigmas de programación en móviles  Documentos Web Descarga documentos y los muestra en un navegador Formato adecuado para móviles (WML, XHTML, ...) Requiere conectar a red para descargar cada documento Velocidad de descarga lenta Documentos pobres (deben servir para todos los móviles)  Aplicaciones locales La aplicación se descarga en el móvil Se ejecuta de forma local Interfaz de usuario más flexible Puede funcionar sin conexión (minimiza el tráfico)
  • 6. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-6 Sistemas operativos • Android (open source) • BlackBerry OS de RIM (propietario) • iOS de Apple (propietario) • Symbian OS (open source) • Windows Phone & Windows Mobile (propietario) • Firefox OS (en desarrollo) • webOS de HP (algunas partes abiertas) • QNX de RIM (propietario) • SHR (basado en linux) • Bada de Samsung (propietario) • Brew de Qualcomm • Palm OS (propietario)
  • 7. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-7 Sistemas operativos antes de 2010
  • 8. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-8 Sistemas operativos en el mercado actual • Estadísticas de uso según Gartner 2007 2008 2009 2010 2011 2012 2013 Android N/A 0.5% 3.9% 22.7% 36% 43% 75% iOS 2.7% 8.2% 14.4% 15.7% 16.8% 18% 17.3% Windows 12% 11.8% 8.7% 4.2% 3.6% 2% 3.2% BlackBerry 9.6% 16.6% 19.9% 16.0% 12.9% 12% 2.9% Linux y otros 12.1% 10.5% 6.1% 3.8% 3.3% 2% 1.0% Symbian 63.5% 52.4% 46.9% 37.6% 27.4% 22% 0.6%
  • 9. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-9 Android • Sistema operativo para dispositivos móviles • Núcleo basado en el de Linux • Programación de aplicaciones en Java
  • 10. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-10 Historia de Android • Android 1.1 se publica en febrero de 2009 (coincide con la proliferación de smartphones táctiles). • Siguientes versiones: • 1.5 Cupcake (basada en el núcleo de Linux 2.6.27) • … • 2.2 Froyo (basada en el núcleo de Linux 2.6.32)
  • 11. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-11 Nombres basados en repostería
  • 12. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-12 Nombres basados en repostería • 2.3 Gingerbread
  • 13. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-13 Nombres basados en repostería • 3.0 / 3.1 Honeycomb (orientado a tablets)
  • 14. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-14 Nombres basados en repostería • 4.0 Ice Cream Sandwich (tablets / móviles)
  • 15. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-15 Estadísticas de uso de versiones
  • 16. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-16 Licencia • Android • Sistema operativo (Licencia Apache) • Plataforma de desarrollo (Licencia Apache) • Licencia Apache • Open Source • Permite a los fabricantes añadir extensiones propietarias sin ponerlas en manos de la comunidad del software libre
  • 17. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-17 Open Source • El open source hace posible: • Una comunidad de desarrollo, gracias a sus completas APIs y documentación ofrecida. • Desarrollo desde cualquier plataforma (Linux, Mac, Windows, etc). • Un sistema operativo para cualquier tipo de dispositivo móvil, al no estar diseñado para un sólo tipo de móvil. • Posibilidad para cualquier fabricante de diseñar un dispositivo que trabaje con Android, y la posibilidad de abrir el sistema operativo y adaptarlo o extenderlo para su dispositivo. • Valor añadido para los fabricantes de dispositivos: las empresas se ahorran el coste de desarrollar un sistema operativo completo para sus dispositivos. • Valor añadido para los desarrolladores: los desarrolladores se ahorran tener que programar APIs, entornos gráficos, aprender acceso a dispositivos hardware particulares, etc.
  • 18. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-18 Cuestiones éticas • Aspectos positivos • Código abierto • Valor añadido para todos • Mantenibilidad • Seguridad informática • Transparencia del uso de sensores • Servicios gratuitos de Google
  • 19. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-19 Cuestiones éticas • Aspectos negativos • Obligatorio log-in con el ID de Google (dependencia) • Constante intercambio de datos con Google • Envío de localización (desactivable) • Los usuarios no están concienciados de la dependencia de los servidores de Google y lo aceptan sin más. • Aunque el SO sea libre, gran parte de su valor está en los servicios gratuitos de Google, que no son libres ni conocemos el tratamiento que dan a nuestra información privada.
  • 20. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-20 Desarrollan Android: • Open Handset Alliance • Trata de definir estándares abiertos para dispositivos móviles • Consorcio de decenas de compañías (entre ellas está Google): • Operadores de telefonía móvil • Fabricantes de dispositivos • Fabricantes de procesadores y microelectrónica • Compañías de software • Compañías de comercialización
  • 21. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-21 ¿De qué está hecho? • Núcleo (branch) basado en linux (memoria, procesos, hardware) • Bibliotecas open source (SQLite, WebKit, OpenGL, manejador de medios, etc). • Entorno de ejecución Dalvik • Framework de desarrollo: pone a disposición de las aplicaciones los servicios del sistema • SKD: herramientas, plug-in para Eclipse, emulador, ejemplos, doc. • Interfaz de usuario para pantalla, dispositivos de entrada, etc. • Aplicaciones preinstaladas (destacamos Flash Player) • Android Market
  • 22. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-22 Android SDK • Licencias, distribución y desarrollo gratuitos. No diferencia entre aplicaciones nativas y de terceros. • Acceso al hardware de WiFi, GPS, Bluetooth y telefonía, permitiendo realizar y recibir llamadas y SMS. • Control completo de multimedia, incluyendo la cámara y el micrófono. • APIs para los sensores: acelerómetros y brújula. • Mensajes entre procesos (IPC). • Almacenes de datos compartidos, proveedores de contenidos, SQLite, acceso a SD Card. • Aplicaciones y procesos en segundo plano. • Widgets para la pantalla de inicio (escritorio). • Integración de los resultados de búsqueda de la aplicación con los del sistema. • Uso de mapas y sus controles desde las aplicaciones. • Aceleración gráfica por hardware, incluyendo OpenGL ES 2.0 para 3D.
  • 23. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-23 Capas
  • 24. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-24 Consideraciones para el desarrollo • Pequeña capacidad de procesamiento • Memoria RAM limitada • Memoria permanente de poca capacidad • Pantallas pequeñas de poca resolución • Transferencias de datos costosa y lenta (en términos de energía y económicos) • Inestabilidad de las conexiones de datos • Batería muy limitada • Necesidad de terminar la aplicación en cualquier momento
  • 25. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-25 Consideraciones para el desarrollo • Ser eficiente • CPU • Memoria • Recursos y red • Respetar al usuario • No robar el foco • Pocos avisos • Interfaz intuitiva y coherente con Android • Ver Guía de desarrollo de Android antes de publicar
  • 26. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-26 Tipos de aplicaciones • Primer plano (activities) • Segundo plano • Servicios puros • Servicios combinados con actividades • Widgets de escritorio
  • 27. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-27 AndroidManifest.xml • Presente en todo proyecto Android. • Declaración de metadatos de la aplicación • Nombre del paquete y de la aplicación • Actividades, actividad principal • Servicios • Receptores broadcast • Proveedores de contenidos • Permisos • API mínima, librerías.
  • 28. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-28 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission /> <permission /> <permission-tree /> <permission-group /> <instrumentation /> <uses-sdk /> <uses-configuration /> <uses-feature /> <supports-screens /> <application> <activity> <intent-filter> <action /> <category /> <data /> </intent-filter> <meta-data /> </activity> <activity-alias> <intent-filter> . . . </intent-filter> <meta-data /> </activity-alias> <service> <intent-filter> . . . </intent-filter> <meta-data/> </service> <receiver> <intent-filter> . . . </intent-filter> <meta-data /> </receiver> <provider> <grant-uri-permission /> <meta-data /> </provider> <uses-library /> </application> </manifest> • Estructura
  • 29. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-29 AndroidManifest.xml • Ejemplo <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="es.ua.jtech.ajdm.interfaces" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Interfaces" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="SubActividad" android:label="SubActividad"> </activity> </application> <uses-sdk android:minSdkVersion="8" /> </manifest>
  • 30. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-30 Externalizar recursos • Hace la aplicación más mantenible y personalizable • Adaptación a otros idiomas • Carpeta res del proyecto • res/values • res/drawable-ldpi • res/drawable-mdpi • res/drawable-hdpi • res/layout • res/xml
  • 31. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-31 Externalizar recursos • Valores, en formato XML: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="saludo">¡Hola!</string> <color name="verde_transparente">#7700FF00</color> <dimen name="altura_mifuente">12sp</dimen> <array name="ciudades"> <item>Alicante</item> <item>Elche</item> <item>San Vicente</item> </array> <style name="EstiloTexto1"> <item name="android:textSize">18sp</item> <item name="android:textColor">#00F</item> </style> ... </resources>
  • 32. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-32 Externalizar recursos • Acceso a los recursos desde el código • Acceso a los recursos desde el XML TextView tv = (TextView)findViewById(R.id.TextView01); tv.setText(R.string.saludo); @string/nombrestring
  • 33. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-33 Instalación: Plug-in para Eclipse • Instalación desde Eclipse: • Help > Install new software > Available software > Add: • https://dl-ssl.google.com/android/eclipse/ • Ok, seleccionar el software, Next, Finish. • Reiniciar Eclipse. • Configuración: • Windows > Preferences > Android > SDK Location: • Indicamos la ruta del Android SDK que deberemos haber bajado aparte y descomprimido.
  • 34. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-34 Plug-in para Eclipse: plataformas
  • 35. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-35 Plug-in para Eclipse: plataformas
  • 36. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-36 AVD Manager • Crear nuevo dispositivo virtual (AVD):
  • 37. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-37 Emulador
  • 38. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-38 Asistente para la creación de proyectos • Genera la estructura básica del proyecto • AndroidManifest.xml • Actividad principal • Layout • Resto de recursos
  • 39. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-39 Asistente para crear recursos XML
  • 40. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-40 Vista Dalvik Debug Monitor Service
  • 41. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-41 Vista Debug
  • 42. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-42 Editor del AndroidManifest.xml
  • 43. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-43 Editor visual de layouts
  • 44. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-44 Ejemplo: ¡Hola, Mundo! • Crear nuevo proyecto → • Se genera la estructura básica:→
  • 45. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-45 ¡Hola, Mundo! AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="es.ua.jtech.ajdm.holamundo" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="8" /> </manifest>
  • 46. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-46 ¡Hola, Mundo! • Recursos strings en res/values/strings.xml
  • 47. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-47 ¡Hola, Mundo! • Recursos strings en res/values/strings.xml • Añadimos los string hola, mundo y que. <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, Main!</string> <string name="app_name">HolaMundo</string> <string name="hola">Hola, </string> <string name="mundo"> Mundo!</string> <string name="que">Hola ¿qué?</string> </resources>
  • 48. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-48 ¡Hola, Mundo! • Layout en res/layouts/main.xml
  • 49. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-49 ¡Hola, Mundo! • Layout en res/layouts/main.xml • Eliminamos la etiqueta y ponemos una nueva etiqueta TextView y un botón Button: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="@+id/TextView01" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="@+id/Button01" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
  • 50. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-50 ¡Hola, Mundo! • Layout en res/layouts/main.xml • Cambiamos los atributos android:text para que muestren los string de los recursos. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="@string/hola" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="@string/que" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
  • 51. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-51 ¡Hola, Mundo! • Layout en res/layouts/main.xml
  • 52. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-52 ¡Hola, Mundo! Emulación
  • 53. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-53 ¡Hola, Mundo! Actividad y eventos Main.java package es.ua.jtech.ajdm.holamundo; public class Main extends Activity { TextView textView; Button button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView)findViewById(R.id.TextView01); button = (Button)findViewById(R.id.Button01); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { textView.append(getString(R.string.mundo)); } }); } }
  • 54. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-54 ¡Hola, Mundo! Emulación 2
  • 55. Desarrollo de Aplicaciones para Android Desarrollo de Aplicaciones para Android © Depto. Ciencia de la Computación e IA Introducción a Android-55 ¿Preguntas...?