android: la APK se monta sobre la oficial del dev
La app Android de epsylon trae desde la 1.3.x un puente nativo de audio y camara (.audio_bridge) para el Telefono y las Salas, y no tiene el codigo publicado. android/scripts/sobre_oficial.sh coge su APK de la misma version, le cambia el backend por el de la rama (con su node_modules), le pone el paquete net.laenre.oasis (y los authorities, el permiso propio y las acciones de llamada) para que conviva con la oficial, y la monta y firma. apktool va con version y huella fijas. Probado en el emulador: el Telefono ofrece llamadas y en una sala el microfono graba y se corta al salir. README, guia, android/README y los esquemas lo cuentan; el proyecto Gradle propio queda sin uso.
This commit is contained in:
parent
34265c2ed0
commit
6bacafea64
9 changed files with 182 additions and 36 deletions
50
README.md
50
README.md
|
|
@ -35,8 +35,10 @@ Android 7 o superior, 64 bits · se instala junto al Oasis oficial sin pisarlo
|
|||
parlamento, votaciones y eventos. El resto se enciende en *Módulos* o en
|
||||
*Ajustes → Workflows*.
|
||||
- Las llamadas son las de Oasis. Fuera Karvan, el módulo propio de salas: ahora se usan
|
||||
el Teléfono y las Salas del dev. Ojo: en esta APK todavía no suenan, porque a nuestra
|
||||
app Android le falta el puente de audio nativo que sí trae la oficial (ver abajo).
|
||||
el Teléfono y las Salas del dev, con su levantar la mano, grabación y emisión.
|
||||
- La APK se monta sobre la oficial: se coge la del dev, se le cambia el backend por el
|
||||
de la rama y se le da otro nombre de paquete. Así trae todo lo nativo del dev (el
|
||||
puente de audio y cámara, las notificaciones de llamada) y convive con la oficial.
|
||||
- Votaciones como en asamblea: al crear una se elige Sí/No, semáforo (verde, amarillo,
|
||||
rojo) o termómetro (del 1 al 5). Los resultados salen en barras.
|
||||
- Borrar pide confirmación. Antes la X de una tribu la borraba de un toque.
|
||||
|
|
@ -59,12 +61,12 @@ Android 7 o superior, 64 bits · se instala junto al Oasis oficial sin pisarlo
|
|||
|
||||
| | Oasis oficial | Esta rama |
|
||||
|---|---|---|
|
||||
| Llamadas y salas | Teléfono y Salas, con micrófono y cámara | Los mismos; el puente de audio de Android todavía falta |
|
||||
| Llamadas y salas | Teléfono y Salas, con micrófono y cámara | Los mismos, tal cual |
|
||||
| Interfaz de móvil | El menú de escritorio en una pantalla pequeña | Tema Acampada, lanzador con iconos, fichas, barra de cuatro atajos |
|
||||
| Primer arranque | Casi sesenta módulos encendidos | Modo acampada: lo justo para organizarse |
|
||||
| Votaciones | Seis opciones fijas en una tabla | Sí/No, semáforo o termómetro, con barras |
|
||||
| Varias identidades | Una por instalación | Varias en el mismo móvil, con aviso si dos comparten clave |
|
||||
| Envoltorio Android | El del dev, sin código publicado | Proyecto Gradle propio y abierto: permisos, subida de ficheros, servicio que sobrevive |
|
||||
| App Android | La del dev | La del dev, con el backend de la rama y paquete propio (`net.laenre.oasis`) |
|
||||
| Metadatos de las fotos | Se quitan solo si está `sharp`; en Android nunca | Se quitan siempre: GPS, marca, modelo, número de serie |
|
||||
|
||||
Los nombres de las categorías, los módulos y el resto de la aplicación son los de
|
||||
|
|
@ -104,13 +106,15 @@ mensaje en tu nombre ni cambiar lo que dijiste.
|
|||

|
||||
|
||||
El Teléfono (llamadas de uno a uno, con buzón de voz) y las Salas (hasta cincuenta
|
||||
personas, con vídeo, grabación y emisión) son de Oasis. En Android el sonido y la
|
||||
cámara no los maneja Node: el servidor se conecta a un puente nativo de la app
|
||||
(`.audio_bridge`), que graba, reproduce, saca fotogramas de la cámara y emite ficheros.
|
||||
personas, con vídeo, levantar la mano, grabación y emisión) son de Oasis. En Android
|
||||
el sonido y la cámara no los maneja Node: el servidor se conecta a un puente nativo de
|
||||
la app (`.audio_bridge`), que graba, reproduce, saca fotogramas de la cámara y emite
|
||||
ficheros.
|
||||
|
||||
La APK oficial del dev trae ese puente. La de esta rama todavía no: nuestra app
|
||||
Android es otra (tiene el código publicado) y el puente hay que escribirlo. Hasta
|
||||
entonces, en esta APK el Teléfono dice que las llamadas no están disponibles.
|
||||
Ese puente está en la app Android del dev, que no tiene el código publicado. Por eso la
|
||||
APK de esta rama se monta sobre la oficial: se queda con su app tal cual y solo cambia
|
||||
lo que corre dentro (el backend con nuestra capa) y el nombre del paquete. Probado en
|
||||
el emulador: se entra en una sala y el micrófono graba.
|
||||
|
||||
En la barra de arriba, junto al avatar, está el botón de *No molestar* del Teléfono.
|
||||
|
||||
|
|
@ -187,25 +191,23 @@ descomprime el servidor.
|
|||
|
||||
### Compilar
|
||||
|
||||
Con Android Studio, lo más fácil:
|
||||
|
||||
```sh
|
||||
./android/scripts/android-studio.sh # trae el Oasis oficial y su APK, y empaqueta el backend
|
||||
```
|
||||
|
||||
Después, en Android Studio: *File → Open →* la carpeta `android/`, esperar al Gradle
|
||||
Sync, y *Build → Build App Bundle(s) / APK(s) → Build APK(s)*. Si cambias algo en
|
||||
`src/` o en `main.js`, vuelve a lanzar el script antes de compilar.
|
||||
|
||||
Desde la terminal, paso a paso:
|
||||
La APK se monta sobre la oficial de la misma versión. Hace falta Java 17 o más y las
|
||||
build-tools de Android (zipalign y apksigner); apktool se baja solo.
|
||||
|
||||
```sh
|
||||
cd android
|
||||
# la primera vez hace falta la APK oficial de la MISMA versión (ahora la 1.3.3):
|
||||
# de ella salen las librerías nativas y el node_modules podado del móvil
|
||||
OASIS_APK_BASE=/ruta/oasis-v1.3.3.apk ./scripts/release.sh # compila, verifica y calcula la huella
|
||||
./scripts/sobre_oficial.sh # baja la oficial, le pone el backend de la rama, la firma
|
||||
# para publicar, con la clave del hacklab:
|
||||
OASIS_KEYSTORE=... OASIS_KEYSTORE_PASS=... OASIS_KEY_ALIAS=... ./scripts/sobre_oficial.sh
|
||||
```
|
||||
|
||||
Sale en `android/build/sobre-oficial/oasis-<versión>-hacklab.apk`. Sin clave se firma
|
||||
con la de depuración y queda depurable, para poder inspeccionarla desde
|
||||
`chrome://inspect`.
|
||||
|
||||
El proyecto Gradle propio de `android/` (`release.sh`, Android Studio) sigue ahí, pero
|
||||
ya no es el camino: no tiene el puente de audio y en él no hay llamadas.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue