SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Android
    Tips & 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/downloa
        ding.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 APK
           en 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­ 
                   shortcut­generator/


    ●   ARViewer:
                 http://www.libregeosocial.org/node/24



                                        

Contenu connexe

Tendances

Tendances (9)

Andorid studio
Andorid studioAndorid studio
Andorid studio
 
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
 
ANDROID STUDIO
ANDROID STUDIOANDROID STUDIO
ANDROID STUDIO
 
Visión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y AndroidVisión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y Android
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KPy Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
 
Java eclipse-y-android-studio
Java eclipse-y-android-studioJava eclipse-y-android-studio
Java eclipse-y-android-studio
 
Crowdar - Introducción a BDD
Crowdar - Introducción a BDDCrowdar - Introducción a BDD
Crowdar - Introducción a BDD
 
Android
AndroidAndroid
Android
 
Módulo 5. informática!
Módulo 5. informática!Módulo 5. informática!
Módulo 5. informática!
 

En vedette

Seo para Magento por Alicia Pac
Seo para Magento por Alicia PacSeo para Magento por Alicia Pac
Seo para Magento por Alicia Pac
CongresoWeb
 
"Decálogo legal del empresario web" Por Paloma Llaneza en Congreso Web
"Decálogo legal del empresario web" Por Paloma Llaneza en Congreso Web"Decálogo legal del empresario web" Por Paloma Llaneza en Congreso Web
"Decálogo legal del empresario web" Por Paloma Llaneza en Congreso Web
CongresoWeb
 

En vedette (20)

Responsive web y Wordpress
Responsive web y WordpressResponsive web y Wordpress
Responsive web y Wordpress
 
Seo para Magento por Alicia Pac
Seo para Magento por Alicia PacSeo para Magento por Alicia Pac
Seo para Magento por Alicia Pac
 
Optimizando tu perfil de Linkedin
Optimizando tu perfil de LinkedinOptimizando tu perfil de Linkedin
Optimizando tu perfil de Linkedin
 
Seo internacional - Congreso Web 2012
Seo internacional - Congreso Web 2012Seo internacional - Congreso Web 2012
Seo internacional - Congreso Web 2012
 
20 ejemplos de como dar a conocer un sitio web
20 ejemplos de como dar a conocer un sitio web20 ejemplos de como dar a conocer un sitio web
20 ejemplos de como dar a conocer un sitio web
 
"Decálogo legal del empresario web" Por Paloma Llaneza en Congreso Web
"Decálogo legal del empresario web" Por Paloma Llaneza en Congreso Web"Decálogo legal del empresario web" Por Paloma Llaneza en Congreso Web
"Decálogo legal del empresario web" Por Paloma Llaneza en Congreso Web
 
Taller Email Marketing para Pymes
Taller Email Marketing para PymesTaller Email Marketing para Pymes
Taller Email Marketing para Pymes
 
Desarrollo de aplicaciones móviles
Desarrollo de aplicaciones móvilesDesarrollo de aplicaciones móviles
Desarrollo de aplicaciones móviles
 
Taller de WordPress - Iniciación
Taller de WordPress - IniciaciónTaller de WordPress - Iniciación
Taller de WordPress - Iniciación
 
Mucwz Experiencia Ciclista 2.o
Mucwz Experiencia Ciclista 2.o Mucwz Experiencia Ciclista 2.o
Mucwz Experiencia Ciclista 2.o
 
Chuleta SEO
Chuleta SEOChuleta SEO
Chuleta SEO
 
SEO para Móviles - Congreso Web 2012 - Aleyda Solis
SEO para Móviles - Congreso Web 2012 - Aleyda SolisSEO para Móviles - Congreso Web 2012 - Aleyda Solis
SEO para Móviles - Congreso Web 2012 - Aleyda Solis
 
100 ejemplos de como dar a conocer un sitio web
100 ejemplos de como dar a conocer un sitio web100 ejemplos de como dar a conocer un sitio web
100 ejemplos de como dar a conocer un sitio web
 
Es la Estrategia ¡estúpido!
Es la Estrategia ¡estúpido!Es la Estrategia ¡estúpido!
Es la Estrategia ¡estúpido!
 
El briefing no existe. Búscate la vida.
El briefing no existe. Búscate la vida.El briefing no existe. Búscate la vida.
El briefing no existe. Búscate la vida.
 
SEO Una profesión en auge
SEO Una profesión en augeSEO Una profesión en auge
SEO Una profesión en auge
 
Taller places
Taller placesTaller places
Taller places
 
CW12 Medir estrategias de marketing online
CW12 Medir estrategias de marketing onlineCW12 Medir estrategias de marketing online
CW12 Medir estrategias de marketing online
 
Inventando métricas en Social Media
Inventando métricas en Social MediaInventando métricas en Social Media
Inventando métricas en Social Media
 
Taller adwords ppc - cwzgz 2012
Taller adwords ppc - cwzgz 2012Taller adwords ppc - cwzgz 2012
Taller adwords ppc - cwzgz 2012
 

Similaire à Programación de Apps con Android – Avanzado por Jorge Pintado

Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
Jorge Soro
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDK
Fe
 

Similaire à Programación de Apps con Android – Avanzado por Jorge Pintado (20)

Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
 
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKSysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
 
Pon a dieta tus apps con Proguard de android
Pon a dieta tus apps con Proguard de androidPon a dieta tus apps con Proguard de android
Pon a dieta tus apps con Proguard de android
 
Meetup app-moviles
Meetup app-movilesMeetup app-moviles
Meetup app-moviles
 
Android apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolAndroid apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktool
 
Introducción a las Herramientas de Desarrollo para Android
Introducción a las Herramientas de Desarrollo para AndroidIntroducción a las Herramientas de Desarrollo para Android
Introducción a las Herramientas de Desarrollo para Android
 
Web Mapping con Django
Web Mapping con DjangoWeb Mapping con Django
Web Mapping con Django
 
Android studio
Android studioAndroid studio
Android studio
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDK
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndk
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
Android studio
Android studioAndroid studio
Android studio
 
Destripando y protegiendo aplicaciones android
Destripando y protegiendo aplicaciones androidDestripando y protegiendo aplicaciones android
Destripando y protegiendo aplicaciones android
 
Andrid studio
Andrid studioAndrid studio
Andrid studio
 
Seminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumSeminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforum
 
ANDROID STUDIO-VICTOR
ANDROID STUDIO-VICTORANDROID STUDIO-VICTOR
ANDROID STUDIO-VICTOR
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
¿Cómo iniciarse en programación Android?
¿Cómo iniciarse en programación Android?¿Cómo iniciarse en programación Android?
¿Cómo iniciarse en programación Android?
 
Android
AndroidAndroid
Android
 
CLASE 5 INTRODUCCION A FIGMA
CLASE 5 INTRODUCCION A FIGMACLASE 5 INTRODUCCION A FIGMA
CLASE 5 INTRODUCCION A FIGMA
 

Programación de Apps con Android – Avanzado por Jorge Pintado

  • 1. Android Tips & Tricks    
  • 4. ¿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    
  • 7. ¿Por qué? ● Es interesante reducir el tamaño de la app: ● Memoria del teléfono ● Limitación de Google Play    
  • 8. ¿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    
  • 9. ¿Cómo? (II) ● Eliminar información de Debug: ● Solución 1: static final debug = false; if (debug) {           Log.v(TAG, “Debug …”); }    
  • 10. ¿Cómo? (III) ● Eliminar información de Debug: ● ¿Solución 2?: public void myDebugPrint(String s) {     if (Debug) {               Log.v(TAG, s);     } } myDebugPrint(“debug”);    
  • 11. ¿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    
  • 12. ¿Cómo? (V) ● 9patch ● Ahorro de repetición de imágenes    
  • 14. ¿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    
  • 15. http://source.android.com/source/downloa ding.html ● https://github.com/android    
  • 16. ¿Cómo? (VI) ● Eliminar recursos no utilizados ● Eliminar código repetido    
  • 18. Procedimiento ● Incluir en el manifest: <manifest xmlns:android="http://schemas.android.com/apk/res/android"  android:installLocation="preferExternal" ... >    
  • 19. Soporte para múltiples APK en Google Play    
  • 20. 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    
  • 22. Test ● ¿Esto funciona? Intent i = new Intent(this, MyNewClass.java); ● ¿Existe algún problema?    
  • 23. Test 2 ● ¿Esto funciona? Context mContext = getApplicationContext(); Intent i = new Intent(mContext, MyNewClass.java); ● ¿Existe algún problema?    
  • 24. 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”    
  • 26. Layar: http://www.layar.com/documentation/player/android­  shortcut­generator/ ● ARViewer: http://www.libregeosocial.org/node/24