Upload
congresoweb
View
3.238
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
AndroidTips & Tricks
Código oculto de Android
¿Qué es?
En Android encontramos clases, constantes y funciones marcadas con @hide
¿Qué significa?
En el desarrollo:
● Android SDK: android.jar● Elimina todos los @hide e internal
En la compilación:
● Framework.jar● Incluye los @hide e internal
Tamaño de la App
¿Qué es una app?
David Karlsson, Sony Ericsson software architect.
El APK es basicamente un zip con:
● Ficheros .dex (código, Dalvik Executable)● Recursos● Assets● Manifest
●¿Por qué?
● Es interesante reducir el tamaño de la app:
● Memoria del teléfono
● Limitación de Google Play
●¿Cómo?
● Ofuscación de código● Eliminar información de Debug
● Generalmente información no utilizada después del desarrollo
● Información que no se visualiza● Se recomienda eliminarla
¿Cómo? (II)
● Eliminar información de Debug:
● Solución 1:
static final debug = false;
if (debug) {
Log.v(TAG, “Debug …”);
}
¿Cómo? (III)
● Eliminar información de Debug:● ¿Solución 2?:
public void myDebugPrint(String s) {
if (Debug) {
Log.v(TAG, s);
}
}
myDebugPrint(“debug”);
¿Cómo? (IV)
● Formato multimedia● Imágenes:
– PNG (optimizado si es posible)– JPEG
● Audio:– AAC mejor que Ogg Vorbis o mp3
● Vídeo:– H264 AVC– Resolución menor que el tamaño de la pantalla
¿Cómo? (V)
● 9patch● Ahorro de repetición de imágenes
Código fuente Android
¿Cómo? (V)
● Open Source código fuente de las apps también → disponible
● Analizar el código
● Reutilización de interfaces (layout)
● Diseño de aplicaciones del sistema
● http://source.android.com/source/downloading.html
● https://github.com/android
¿Cómo? (VI)
● Eliminar recursos no utilizados
● Eliminar código repetido
Instalar en la tarjeta SD
Procedimiento
● Incluir en el manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" ... >
Soporte para múltiples APKen Google Play
● Tendremos SOLO una entrada en Google Play para nuestra aplicación
● Diferentes dispositivos descargan diferentes APK.
● Solo tenemos una descripción de producto (iconos, capturas, descripción, etc).
● Si actualizamos una versión de la aplicación para un grupo concreto, Android actualizará la aplicación en los usuarios concretos.
Product details Edit Application Upload new APK→ →
Aplication Context
Test
● ¿Esto funciona?
Intent i = new Intent(this, MyNewClass.java);
● ¿Existe algún problema?
Test 2
● ¿Esto funciona?
Context mContext = getApplicationContext();
Intent i = new Intent(mContext, MyNewClass.java);
● ¿Existe algún problema?
Solución
● GetApplicationContext es la forma adecuada de acceder al Context de la aplicación:
● Evita problema de pérdida de memoria
● Una referencia a una Activity debe tener el mismo ciclo de vida que la Activity.
● Utilicemos el concepto “Contexto de la aplicación” en lugar de “Contexto de la Activity”
Realidad Aumentada
● Layar:
http://www.layar.com/documentation/player/android shortcutgenerator/
● ARViewer:
http://www.libregeosocial.org/node/24