AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / Desarrollar para Android
  • Presentación
  • Elementos de proyecto disponibles
  • Controles disponibles
  • Bases de datos
  • Menús de las aplicaciones
  • Menús contextuales
  • Ventanas modales
  • Gestión de los botones "Atrás" e "Inicio
  • Botón Atrás
  • Botón Inicio
  • Notification sobre la inactividad de las aplicaciones
  • Modo de funcionamiento de enfoque y selección
  • Las barras de desplazamiento de automatic en las ventanas
  • Gestión de directorios
  • Cambio de la orientación de la pantalla
  • Varios
  • Gestión de Thread
  • Operadores indirectos
  • Utilización de fuentes nativas de Android
  • Administración de registros ADB
  • Depuración de aplicaciones desplegadas a través de los registros de ADB
  • Imprimir en PDF
  • Nivel de API
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Elementos de proyecto disponibles
Los siguientes elementos del proyecto están disponibles para el desarrollo de Android:
  • Ventanas.
  • Consultas.
    Observación: en una consulta con parámetros, todos los parámetros son obligatorios.
  • Clases.
  • Conjuntos de procedimientos.
  • Modelos de ventanas.
Los siguientes elementos no están disponibles para el desarrollo de Android:
  • Componentes externos.
    Observación: Los componentes internos están disponibles para el desarrollo de Android. Sin embargo, si el Component interno incluye un análisis, éste será ignorado durante la ejecución.
  • Informes y plantillas reporte.

Controles disponibles

Los siguientes controles están disponibles para el desarrollo de Android:
Observaciones:
  • Algunas propiedades de estilo (pestaña "Estilo" de las ventanas de control description), aunque están disponibles en modo edición, no son compatibles con las aplicaciones Android.
  • Puede utilizar un degradado para el fondo color de los bordes control.
Bases de datos
Las bases de datos disponibles para las aplicaciones de Android son:
  • HFSQL (Clásico y Cliente/Servidor),
  • SQLite.
    WINDEV Mobile incluye un Conector Nativo para SLQLite para Android. Los principales comandos de Hxxx están disponibles.
Observaciones:
  • Memos con HFSQL: El modo utilizado para las cadenas en tiempo de ejecución (UNICODE o ANSI) definido en el configuración del proyecto determina el carácter set utilizado para almacenar las cadenas. Mediante Default, las cadenas ANSI asignadas a los elementos de memo HFSQL se codifican en UTF-8. ChangeCharset puede utilizarse para cambiar el carácter encoding
  • Base de datos SQLite: Si su proyecto Android comparte su análisis con otro proyecto (no Android), se puede utilizar HChangeConnection para asociar los archivos de datos de la aplicación con una conexión SQLite. Para obtener más información, consulte Aplicación Android: Uso e intercambio de datos.
  • Memos con SQLite: Se recomienda almacenar información en formato memo para datos cuyo tamaño es inferior a 1 MB. Los datos en formato de archivo externo deben guardarse en la memoria interna o externa del teléfono y la ruta de acceso a estos datos debe almacenarse en la base de datos.
  • También tiene la posibilidad de acceder a una base de datos externa (Oracle, SQL Server,...) a través de un Webservice. Para obtener más información, consulte Acceso a una base de datos a través de un servicio web.
Menús de las aplicaciones
En una aplicación Android, se pueden proponer las opciones de aplicación:
  • a través de la Action Bar control. Esta solución se recomienda.
  • en formato de menú (no recomendado).
Notas sobre los menús:
  • En la edición, los menús de las ventanas de Android se presentan como simples menús desplegables.
  • En tiempo de ejecución, estos menús se mostrarán de forma diferente según el número de opciones:
    • Si el menú contiene menos de 6 opciones, se muestra como botones grandes en la parte inferior de la pantalla.
    • Si el menú contiene más de 6 opciones, las 5 primeras se muestran como botones grandes y un sexto botón automatic ("Más") permite al usuario ver el resto del menú como un desplegable.
  • Los menús de las aplicaciones Android admiten un único nivel de submenús. Más allá de este límite, se produce un error fatal al ejecutar la aplicación.

Menús contextuales

Los menús contextuales son compatibles con WINDEV Mobile para las aplicaciones de Android.
  • En el modo de edición, se presentan como los menús desplegables de Windows, pero adoptan la apariencia de los menús Android en tiempo de ejecución.
  • También se limitan a un solo nivel de submenú.
  • En los dispositivos sin "clic derecho" (teléfonos, por ejemplo), los menús emergentes aparecen tras una "pulsación larga" en el mando al que se associated.
Ventanas modales
Las viudas modales no son compatibles con el sistema operativo Android. entablar no está permitida.
Las ventanas se pueden abrir:
Para pasar un valor de retorno:
  • Cuando se cierra, una ventana de niño o hermano puede llamar a una Procedure local de la ventana que la abrió para pasarle un valor de retorno. Un valor de retorno también puede ser devuelto a través de un Variable global.
  • Puede especificar el valor de retorno a través de la propiedad ReturnedValue de la ventana hija y recuperar este valor a través de la propiedad "Cerrar una ventana hija de la ventana" Event de la ventana padre.
Gestión de los botones "Atrás" e "Inicio

Botón Atrás

Todos los dispositivos que ejecutan Android incluyen una tecla especial "Atrás" (normalmente una pequeña flecha apuntando hacia la izquierda). En una aplicación WINDEV Mobile, esta tecla cierra la ventana actual y ejecuta el comando "Cerrar" Event. Si es la primera ventana de la aplicación, se ejecutará el código de cierre de la aplicación y se cerrará la aplicación.
Es necesario desarrollar una aplicación para que se comporte correctamente si alguna de sus ventanas se cierra mediante la tecla "Atrás".. En la mayoría de los casos, cada control de ventana debe inicializarse con un valor por defecto y el botón "Atrás" debe considerarse como un botón "Cancel".
Observación: Tienes la capacidad de cambiar este comportamiento y de ejecutar un Process personalizado (para pedir confirmación al usuario por ejemplo y evitar cerrar la ventana, especialmente si es la primera ventana de la aplicación). Para ello, la ventana debe disponer de un botón con un acceso directo "'Atrás'" (pestaña "UI" de la ventana de control description).

Botón Inicio

Al pulsar el botón "Inicio" no se cierra la aplicación actual: la aplicación se traslada a la Background. La Event "Cerrar" no se ejecuta.
Observación: Incluso si la ventana tiene un control Botón con el método abreviado de teclado "Botón Inicio" (definido en la pestaña "UI"), no se ejecutará el código del botón. A diferencia del botón Atrás, el comportamiento de Default no se puede cambiar.
Una pulsación larga de la tecla "Inicio" permite visualizar la lista de aplicaciones en ejecución. Entonces, el usuario puede seleccionar su aplicación cuando quiera moverla al primer plano.
Observación: El sistema Android no permite proponer esta opción mediante programación.
Notification sobre la inactividad de las aplicaciones
El sistema operativo Android no permite que una aplicación permanezca en un Process (sin devolver control al sistema operativo) durante más de unos segundos. Si se da este caso, Android muestra un cuadro de diálogo que permite al usuario cerrar la aplicación o esperar a que finalice el Process:

Android: La aplicación no responde
Para evitar que se active este mecanismo, los pasos de cálculo no deben incluirse en el Thread principal de la aplicación. Para ello, utilice los procedimientos iniciados en los hilos secundarios (para más detalles, véase ThreadExecute).
Observación: Se recomienda encarecidamente no manipular los elementos de interfaz de usuario de una aplicación desde una Thread secundaria.
Los diseñadores de Android recomiendan que una acción del usuario desencadene una reacción de la aplicación en menos de 200 milisegundos para dar una buena impresión de reactividad.
Modo de funcionamiento de enfoque y selección
Para gestionar el tacto / lápiz óptico controlado UI y teclado / bola de seguimiento controlado UI , Android ofrece un sistema para la gestión de enfoque y selección diferente de otros sistemas operativos:
  • El enfoque sólo se puede mover con un ratón, un trackball o un dispositivo similar.
  • Cuando se mueve el foco, se ejecuta la entrada y salida de Event de los controles.
  • Los controles en los que se puede hacer clic pero que no se pueden editar (botones, list boxes, etc.) se comportan como los controles en interrupción.. No se enfocan cuando reciben un clic.
  • Los controles "Seleccionar un fila" Event en List Box y Looper sólo se ejecutan cuando se selecciona el fila con un clic.
  • La "Selección de un fila" Event en los controles List Box y Looper no se ejecuta cuando cambia el fila (con el foco).
Atención: En un List Box o control Looper, la barra no representa la selección sino sólo el foco.
Las barras de desplazamiento de automatic en las ventanas
Si el tamaño de una ventana excede el tamaño de la pantalla y si la opción "Barras de desplazamiento automáticas" está seleccionada en la descripción de la ventana, una barra de desplazamiento se añade de forma automática a la derecha de la ventana. Su presencia debe tenerse en cuenta al diseñar la ventana para que esta barra de desplazamiento no se superponga a los controles.
Gestión de directorios
La gestión de directorios en Android presenta las siguientes características específicas:
  • En Default, el directorio actual de una aplicación corresponde al subdirectorio "ficheros" que se crea automáticamente en la raíz del directorio instalación de la aplicación.
  • Las rutas relativas manejadas por la aplicación son relativas a este directorio.
  • La ruta completa del directorio actual es devuelta por fCurrentDir. Por Default, tienes la capacidad de leer y escribir en este directorio.
  • El directorio actual puede ser modificado por fCurrentDir.
  • El directorio de ejecución (devuelto por fExeDir) corresponde al directorio de instalación de la aplicación. De forma predeterminada, las aplicaciones siempre se instalan en el directorio /data/data/<nombre del paquete>.<nombre de la aplicación>.
  • En Android, el sistema de archivos es de solo lectura tanto en el dispositivo y como en el emulador. Una aplicación sólo puede escribir en su directorio de instalación o en uno de sus subdirectorios, así como en la memoria externa (SDCard).
  • El directorio "databases" también se crea automáticamente en la raíz del directorio de instalación de la aplicación para almacenar las bases de datos SQLite manejadas por la aplicación (a menos que se haya especificado una ruta concreta durante la conexión). La ruta del directorio "bases de datos" es devuelta por fDataDir.
  • Para tener una ubicación de almacenamiento común a varias aplicaciones, utilice la memoria externa (por ejemplo, SDCard).. La ruta de un directorio para almacenar archivos en el espacio de almacenamiento externo es devuelta por SysDirExternalStorage.
  • Cuando se conecta un dispositivo al PC utilizando el modo "almacenamiento masivo" o "disco Drive", la tarjeta SD se desmonta automáticamente del dispositivo y deja de ser accesible desde él.. Todas las aplicaciones en ejecución instaladas en la tarjeta SD son eliminadas. Mientras la tarjeta SD esté desmontada, no podrá:
    • iniciar las aplicaciones instaladas en la tarjeta SD.
    • acceder a la tarjeta SDCard desde las aplicaciones que se ejecutan en el Phone.
Para obtener más información, consulte:
Cambio de la orientación de la pantalla
Para detectar si la orientación de la pantalla ha cambiado, utilice la Event "Cambiar la orientación" en las ventanas.
También puede utilizar Funciones de SensorXXXX para detectar los movimientos de Phone.
Observación: Puede usar Funciones GPS para administrar las funcionalidades de geolocalización de Phone.
Varios
  • En Android, por razones de seguridad, las teclas "Inicio" y "Fin de llamada" no pueden utilizarse como atajos.
  • Para utilizar el tema "Material Design", en la pestaña "General" de la descripción de la configuración de Android, marque "Aplicar tema Material Design a los controles nativos y ventanas Info/Error/Diálogo".
  • Gestión de imágenes según el DPI: Las imágenes pueden ser mapas de bits o borrosas de acuerdo con el DPI del dispositivo.. Puede utilizar la gestión de automatic DPI. Para obtener más información, consulte Android/iOS: Proporcionar un Image por DPI.
  • Los estilos CSS en imágenes SVG no son compatibles con Android.
Gestión de Thread
En Android, la función ThreadStop no está disponible.
Sólo el hilo puede detenerse al salir del procedimiento WLanguage llamado por ThreadExecute.
Ejemplo:
ThreadExecute("th", threadNormal, ProcThread)
PROCEDURE ProcThread

bThreadAlive is boolean = True
WHILE bThreadAlive

// ... Process

// Checks the end condition of the thread
IF <THREAD END CONDITION> THEN
bThreadAlive = False
END
END
Operadores indirectos
Los indirecciones sólo son compatibles con las variables globales.
Una indirección sobre una variable local de una Process provocará un error "elemento desconocido".
Utilización de fuentes nativas de Android
Se pueden utilizar las siguientes fuentes:
  • Droid Sans,
  • Droid Sans Mono,
  • El droide Serif,
  • Roboto,
  • Roboto Condensado,
  • Roboto Light,
  • Roboto Thin.
Si el dispositivo no soporta la fuente especificada en tiempo de ejecución, se utilizará una fuente de sustitución (Roboto).
Para obtener más información, consulte Gestión de fuentes en un proyecto iOS o Android.
Administración de registros ADB

Depuración de aplicaciones desplegadas a través de los registros de ADB

Cuando se despliega una aplicación, los posibles errores de aplicación que se producen en los ordenadores de los usuarios se ponen a disposición del desarrollador de la aplicación en el "ADB log" .
Esto le permite recuperar los errores, así como Aseveraciones y trazas de todos los dispositivos que ejecutan la aplicación.. Los siguientes mensajes se escriben en el registro del ADB:
  • Mensajes de rastro (nivel "Info").
  • Mensajes de dbgStandardOutput (nivel "Debug").
  • Mensajes de aserción (dbgAssert, dbgCheckxxx, dbgError) (nivel "Assert").
  • Mensajes de errores fatales y no fatales (nivel "Error").
El "ADB log" es accesible:
  • en Centro de Control Android (pestaña "Logcat"): en la pestaña "Herramientas", en el grupo "Herramientas móviles", haga clic en "CCAndroid").
  • en cada Phone. Se utiliza un software específico para Process y ver el contenido de este archivo.
  • a través de la herramienta "Monitor" disponible en el SDK de Android. En este caso, tiene la posibilidad de ver (en la pestaña "Log cat") los registros ADB de todas las aplicaciones que se encuentran en el dispositivo conectado al PC (el modo "depuración USB" debe estar activado en el dispositivo. Para obtener más información, consulte Preparar teléfono para probar una aplicación Android).
Imprimir en PDF
Las impresiones PDF sólo son compatibles con las fuentes estándar de Adobe (sin formato Unicode).: Courrier, Helvetica, Times, Symbol y ZapFDingbats.
Nivel de API
Cuando se genera una aplicación para Android, el APK o AAB resultante contiene un nivel de API objetivo (o TargetSdkVersion) del SDK de Android.
Este nivel objetivo de API es crítico para la implementación y la ejecución de la aplicación.:
  • Google puede permitir o rechazar una aplicación en el Play Store dependiendo de su nivel de API,
  • el sistema Android instalado en los dispositivos, determina las funcionalidades disponibles para la aplicación y las reglas de seguridad que se le deben aplicar según su nivel API.
Por lo tanto, es necesario generar la aplicación con una versión de WINDEV Mobile que se adapte a la versión de Android en los dispositivos de destino y al modo implementación de la aplicación.
Resumen del nivel de API (TargetSdkVersion) especificado en el manifiesto de la aplicación Android según la versión de WINDEV Mobile:
WINDEV Versiones móvilesNivel API (TargetSdkVersion) / Versión Android soportada
WINDEV Mobile 22 -> WINDEV Mobile 23 "Actualización 2"24 / Android 7
WINDEV Mobile 23 "Actualización 3" -> WINDEV Mobile 24 "Actualización 3"26 / Android 8
WINDEV Mobile 24 "Actualización 4" -> WINDEV Mobile 25 "Actualización 3"28 / Android 9
WINDEV Mobile 25 "Actualización 4" -> WINDEV Mobile 26 "Actualización 2"29 / Android 10
A partir de WINDEV Mobile 26 "Actualización 3 -> WINDEV Mobile 27 "Actualización 3"30 / Android 11
WINDEV Mobile 27 "Actualización 431 / Android 12
A partir de WINDEV Mobile 28 -> WINDEV Mobile 28 "Actualización 1"31 / Android 13
A partir de WINDEV Mobile 28 "Actualización 2"33 / Android 13
Versión mínima requerida
  • Versión 15
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2023

Señalar un error o enviar una sugerencia | Ayuda local