Ir al contenido
Ludens Ludens Ludens 0.3.0

Configuración Android

Las propiedades de identidad y el manifest específicos de Android se gestionan a través de ludens.properties en la raíz del proyecto. Este sistema te permite personalizar tu aplicación sin tocar código Kotlin ni scripts de compilación complejos.

Estas propiedades definen el nombre del paquete, la versión y los nombres mostrados por el sistema Android.

# ----- Android Identity -----
ludens.android.id=com.ludens.compose.ludens
ludens.android.version=0.3.0
ludens.android.versionCode=1
ludens.android.name=Ludens
ludens.android.launcherName=Ludens
ludens.android.minSDK=21
ludens.android.targetSDK=36
ludens.android.immersive=true

Configura estas propiedades usando el prefijo ludens.android.*:

PropiedadTipoPor defectoDescripción
idStringcom.ludens.compose.ludensIdentificador único de la aplicación (package name).
versionString0.3.0Nombre de la versión visible para el usuario.
versionCodeEntero1Código de versión interno para actualizaciones en la Play Store.
nameStringLudensNombre completo de la aplicación en ajustes del sistema.
launcherNameStringLudensNombre mostrado bajo el icono en la pantalla de inicio.
minSDKEntero21Nivel mínimo de API de Android soportado.
targetSDKEntero36Nivel de API de Android al que se dirige la compilación.
immersiveBooleanotrueActiva el modo inmersivo (oculta las barras del sistema).

Reemplaza el icono predeterminado actualizando las imágenes en los directorios composeApp/src/androidMain/res/mipmap-*, o usa la herramienta Image Asset Studio en Android Studio:

  1. Haz clic derecho en composeApp/src/androidMain/res.
  2. Selecciona New > Image Asset.
  3. Configura el icono usando el arte de tu juego.

Uso de Image Asset Studio para actualizar el icono de la aplicación.

Los directorios mipmap-* contienen iconos en diferentes resoluciones:

DirectorioResolución
mipmap-mdpi48×48 px
mipmap-hdpi72×72 px
mipmap-xhdpi96×96 px
mipmap-xxhdpi144×144 px
mipmap-xxxhdpi192×192 px

Ludens genera automáticamente el archivo AndroidManifest.xml basándose en estas propiedades. Esto permite una gestión segura y predecible del manifest.

# ----- Android Manifest -----
ludens.android.manifest.allowBackup=true
ludens.android.manifest.largeHeap=true
ludens.android.manifest.hardwareAccelerated=true
ludens.android.manifest.screenOrientation=sensorLandscape
ludens.android.manifest.usesCleartextTraffic=false
ludens.android.manifest.resizeableActivity=false

Por defecto, Ludens fuerza la aplicación al modo horizontal usando sensorLandscape. Esto asegura que el juego rote según el sensor del dispositivo pero se mantenga en una orientación horizontal. Para cambiar esto, modifica la propiedad ludens.android.manifest.screenOrientation.

ValorComportamiento
sensorLandscape(Predeterminado) Solo horizontal, rota automáticamente entre horizontal izquierdo y derecho según el sensor.
sensorPortraitSolo vertical, rota automáticamente entre vertical normal e invertido según el sensor.
landscapeOrientación horizontal fija (ignorando el sensor).
portraitOrientación vertical fija (ignorando el sensor).
fullSensorPermite la rotación a cualquiera de las 4 orientaciones.

Configura estas propiedades usando el prefijo ludens.android.manifest.*:

PropiedadTipoMapeoDescripción
allowBackupBooleanoandroid:allowBackupIndica si Android puede realizar copias de seguridad en Google Drive.
largeHeapBooleanoandroid:largeHeapSolicita un montón más grande para juegos pesados.
hardwareAcceleratedBooleanoandroid:hardwareAcceleratedActiva la aceleración por GPU para la interfaz.
screenOrientationStringandroid:screenOrientationDefine la orientación de pantalla (ver tabla arriba).
usesCleartextTrafficBooleanoandroid:usesCleartextTrafficPermite tráfico HTTP en claro (No recomendado).
resizeableActivityBooleanoandroid:resizeableActivityPermite que el sistema cambie el tamaño de la actividad.

Si tus plugins de RPG Maker requieren acceso al hardware del dispositivo o servicios de red, debes declarar esos permisos. Ludens facilita esto con interruptores integrados.

Por ejemplo, si tu juego obtiene puntuaciones de una tabla de clasificación en línea, necesitarás el permiso internet. Si tu juego debe evitar que la pantalla se apague durante escenas largas, usa el permiso wakeLock.

# ----- Android Permissions -----
ludens.android.permissions.internet=false
ludens.android.permissions.networkState=false
ludens.android.permissions.wakeLock=false
ludens.android.permissions.accessWifiState=false
ludens.android.permissions.changeWifiState=false

Declara estos permisos bajo el prefijo ludens.android.permissions.*:

PropiedadTipoMapeoDescripción
internetBooleanoINTERNETOtorga acceso a la red para funciones online.
networkStateBooleanoACCESS_NETWORK_STATEAcceso al estado y tipo de red.
wakeLockBooleanoWAKE_LOCKMantiene la CPU activa mientras se renderiza o juega.
accessWifiStateBooleanoACCESS_WIFI_STATEAcceso al estado de la conexión Wi-Fi.
changeWifiStateBooleanoCHANGE_WIFI_STATEPermiso para cambiar la conectividad Wi-Fi.

Avanzado: Personalización Manual del Manifest

Sección titulada «Avanzado: Personalización Manual del Manifest»

Para configuraciones no cubiertas por ludens.properties, puedes editar el manifest directamente en composeApp/src/androidMain/AndroidManifest.xml.

Si tus plugins requieren acceso al hardware como la Cámara o el Micrófono, añade la etiqueta <uses-permission> como hijo directo del elemento <manifest>.

Ejemplo: Añadir permiso de Micrófono:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Añadir nuevos permisos aquí -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application>...</application>
</manifest>

Para compilaciones de producción, necesitas un almacén de llaves. Crea un archivo keystore.properties en la raíz del proyecto basado en el archivo keystore.properties.template:

storePassword=tu_store_password
keyPassword=tu_key_password
keyAlias=tu_alias
storeFile=C:/Ruta/A/Tu/llave.jks