Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Noticias

Desarrollo para Android 11 y 12 con Delphi 11 Alexandria

Android 11 se envía a la mayoría de los teléfonos nuevos, pero Android 12 se ha implementado en dispositivos Pixel en todas partes. Únase a este seminario web para ver qué ha cambiado en estas últimas versiones de Android y vea algunas de las mejores prácticas para el desarrollo de Android con sugerencias para orientar las últimas versiones del sistema operativo más popular.

Ver o descargar Presentaciones de Google

Cuota de mercado mundial de sistemas operativos de escritorio, móviles y tabletas

android-01-2631846-2

https://gs.statcounter.com/os-market-share/desktop-mobile-tablet/worldwide/#monthly-200901-202201

Cuota de mercado de fabricantes móviles en todo el mundo (enero de 2020 – enero de 2022)

android-02-1282266-2

https://gs.statcounter.com/vendor-market-share/mobile/worldwide/#monthly-202001-202202

Cuota de mercado de fabricantes de móviles en todo el mundo (enero de 2022)

android-03-5514738-2

https://gs.statcounter.com/vendor-market-share/mobile/worldwide/#monthly-202001-202202

Cuota de mercado de Android frente a iOS en todo el mundo (enero de 2020 – enero de 2022)

android-04-9694559-2

https://gs.statcounter.com/vendor-market-share/mobile/worldwide/#monthly-202001-202202

Cuota de mercado de la versión móvil de Android en todo el mundo (enero de 2020 – enero de 2022)

android-05-3367558-2

https://gs.statcounter.com/android-version-market-share/mobile/worldwide/#monthly-202001-202201

Versión móvil de Android: cuota de mercado en todo el mundo (enero de 2022)

android-06-3847722-2

Android 11 es el líder actual ( las versiones 9 a 11 representan el 76,4 %)

  • Android 12 lanzado el 4 de octubre de 2021
  • Android 11 lanzado el 8 de septiembre de 2020
  • Android 10 lanzado el 3 de septiembre de 2019
  • Android 9 lanzado el 6 de agosto de 2018
  • Android 12 = API 31
  • Android 11 = API 30
  • Android 10 = API 29
  • Android 9 = API 28 (Pastel)

https://gs.statcounter.com/android-version-market-share/mobile/worldwide/#monthly-202001-202201

Requisitos de seguridad y rendimiento de Android Play

  • Cada año, el requisito de targetSdkVersion avanzará. Dentro de un año después de cada Android
  • lanzamiento, las nuevas aplicaciones y las actualizaciones de aplicaciones deberán apuntar al nivel de API actualizado o superior.
  • Noviembre 2021:
    • Nivel de API objetivo 30 (Android 11)
    • Publica con el formato de Android App Bundle.
  • Requerido por Google Play Console
  • Consulte la guía de migración de API para conocer otros cambios: developer.android.com/distribute/best-practices/develop/target-sdk

Cambios de Android en Delphi 11

android-14-1711493-2

*** – link

docwiki.embarcadero.com/RADStudio/Alexandria/en/What%27s_New

¿Soporte para Android 12?

android-07-6407549-2

Actualización de proyectos de Android existentes

● Abra una compilación de proyecto de Android con una versión anterior.
● Navegue a la ventana acoplable Proyectos.
● Seleccione Android de 32 bits como plataforma de destino activa.
● Haga clic derecho en el nodo Bibliotecas.
● Haga clic en Revertir los archivos del sistema a los valores predeterminados.
● Personalizar con bibliotecas de terceros, etc.
● Repetir para Android-64.

Actualización de sus herramientas de Android

  • Delphi instala opcionalmente Android SDK 25.2.5 y actualizaciones durante la instalación
  • Agregue ADB a su ruta:
    • C:UsersPublicDocumentsEmbarcaderoStudio22.0CatalogRepositoryAndroidSDK-2525-22.0.42600.6491platform-tools
  • Agregue SDKManager a su ruta:
    • C:UsuariosPúblicoDocumentosEmbarcaderoStudio22.0CatálogoRepositorioAndroidSDK-2525-22.0.42600.6491toolsbin
  • Correr:
    • adb matar-servidor
    • Administrador de SDKM: actualización
    • versión adb
  • Si obtiene un error “.android/repositories.cfg no se pudo cargar”.
    • Verifique que tenga una carpeta .android en su directorio de usuario
    • Cree un archivo repositories.cfg vacío
  • Última versión (a partir de febrero de 2022)
    • Puente de depuración de Android versión 1.0.41
    • Versión 32.0.0-8006631

Depuración inalámbrica

  • Agregado en Android 11 (API 30)
  • Ingrese al modo de desarrollador en Android (toque “Número de compilación” siete veces)
  • Habilitar la depuración inalámbrica
    • Opciones de desarrollador -> Depuración inalámbrica
    • Toque “Emparejar dispositivo con código de emparejamiento”
    • Marque “Permitir siempre en esta red”, luego presione “Permitir” cuando se le solicite.
  • Desde Windows CMD
    • servidor de inicio adb
    • adb pair [ip]:[port] (desde el diálogo de emparejamiento)
    • [código de emparejamiento]
    • adb connect [ip]:[port] (desde la pantalla de depuración inalámbrica)
  • Actualizar dispositivos en IDE

Formato del paquete de aplicaciones de Android

Permite que Google Play use el modelo de servicio de aplicaciones Dynamic Delivery para generar APK optimizados para cada dispositivo.

  • Proyecto > Opciones > Construcción > Compilador Delphi > Compilación
  • Generar archivo de paquete de aplicaciones de Android (arm + arm64)

Tras una generación exitosa del paquete de aplicaciones, el IDE presenta un cuadro de diálogo que contiene la ruta del archivo .aab.

Nota: No puede ejecutar ni depurar un paquete de aplicaciones. Para depurar la aplicación, debe usar el formato de paquete .APK

docwiki.embarcadero.com/RADStudio/en/Submitting_Your_Android_App_to_Google_Play#Android_App_Bundle_Support

Nuevo modelo de permiso de tiempo de ejecución de Android

  • Introducido en Android 6.0 (API 23) Marshmallow
    • La biblioteca de soporte cubre versiones anteriores de Android
  • El nuevo modelo agiliza el proceso de actualización automática
    • Aprobación de permisos desencadenada en el primer uso
    • En lugar de aprobar todos los permisos en la instalación
  • Brinda a los usuarios finales más control sobre los permisos
    • Los permisos individuales se pueden permitir o denegar por aplicación y cambiar más tarde
  • Administrado a través de los nuevos métodos de la API de Android checkSelfPermission() y requestPermissions()

Más información en developer.android.com/training/permissions/requesting

Diálogo de aprobación de permisos antiguos

  • Durante la instalación se aceptan todos los permisos.
  • El usuario no puede denegar permisos individuales
  • Todos los permisos publicados en el manifiesto.
  • Si los permisos cambian, deben aprobarse antes de actualizar

Nuevo cuadro de diálogo de aprobación de permisos

  • La primera vez que solicita el permiso individual, el usuario tiene la opción de Denegar o Permitir
  • Si el usuario niega una vez, puede evitar que la aplicación vuelva a preguntar
  • Es importante cuándo y cómo se pregunta (más sobre esto más adelante)
  • Todos los permisos aún publicados en el manifiesto

Los usuarios tienen control de permisos granular ahora

android-10-7920934-2

PeligrosocontraNormal permisos

  • No se solicita al usuarioNormalpermisos
    • Ejemplos: Internet, Vibrar, Bluetooth, etc.
  • El usuario debe aprobarPeligrosopermisos
    • Por lo general, estos implican privacidad o un costo potencial
    • Se agrupan en grupos de permisos:
      • Calendario, registro de llamadas, cámara, contactos, ubicación, micrófono, teléfono, sensores, SMS y almacenamiento
    • El usuario aprueba un grupo completo
      • Por ejemplo, tanto enviar como recibir SMS
  • El desarrollador aún debe declarar y solicitar todos los permisos del sistema operativo en el manifiesto.

Más información developer.android.com/guide/topics/permissions/overview

Cómo pedir permiso – Delphi

android-09-5835008-2

Más información: docwiki.embarcadero.com/RADStudio/en/Android_Permission_Model

El servicio de permisos

Método IsPermissionGranted

  • Miembro de System.Permissions.TPermissionsService
    • function IsPermissionGranted(const APermission: string): Boolean;
  • Averigüe si actualmente se otorga un permiso a la aplicación
    • Nunca asuma que todavía se concede
  • Si no hay un servicio de permisos de plataforma implementado para realizar ninguna verificación, entonces responde de manera predeterminada que se otorgaron todos los permisos.

Método IsEveryPermissionGranted

Solicitar permisos

  • Miembro de System.Permissions.TPermissionsService
    • procedimiento Solicitud de permisos (
    • const APermisos: TArray<cadena>;
    • const AOnRequestPermissionsResult:
    • TRequestPermissionsResult[Evento|Proc];
    • AOnDisplayRationale: TDisplayRationale[Event|Proc] = nil);
  • Solicitar uno o más permisos
  • Se solicitarán todos los permisos que no estén concedidos actualmente.
  • De antemano, se puede mostrar una justificación al usuario cuando se ha establecido una cadena de justificación para el permiso en cuestión solicitando un permiso nuevamente que se le negó previamente se pasa una rutina de visualización de justificación
  • docwiki:Libraries/System.Permissions.TPermissionsService.RequestPermissions

TRequestPermissionsResult[Evento|Proc]

Cuándo pedir permisos

android-11-5541305-2

Cuándo preguntar –Críticopermisos

android-12-6122915-2

Cuándo preguntar –Secundariopermisos

android-13-5454135-2

Otras mejores prácticas

Más información

Próximos pasos

Actualice a Delphi 11 hoy embarcadero.com/products/delphi


What's Coming in Delphi, C++Builder, and RAD Studio 11.2 Alexandria

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Sobre el autor

Promotor jefe de desarrollo de Embarcadero Technologies.

Leave a Reply

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

IN THE ARTICLES