Autor Tema: [Observacion] Comportamiento de Diropen, en Windows y Android.  (Leído 1177 veces)

alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
[Observacion] Comportamiento de Diropen, en Windows y Android.
« en: Noviembre 13, 2016, 02:09:03 pm »
buenas

quiero explicar la diferencia de comportamiento del comando Diropen y compañia:
http://wiki.bennugd.org/index.php?title=Diropen

en Windows y Android (probando en 2 modelos diferentes de android)


-Windows
Diropen devuelve 0> un numero positivo, si es accesible para ser escaneado,
dirread devuelve los 2 archivos de control: "." ".." cuando buscamos "*.*" , es normal ese comportamiento.
Funciona bien.

-Android, SO: 6.0.1 CM13 en Sony Xpiera SP
Esta prueba se realiza en el AlmacenamientoExterno/Interno, ruta de memoria interna del movil(en mi caso).
Diropen devuelve 0< un numero negativo, si es accesible para ser escaneado,
dirread devuelve los ficheros que hubiera  :D , de lo contrario nada, pero no lista los ficheros de control "." , ".."(o no existen o estan ocultos), cuando buscamos "*.*" . creo que es normal ese comportamiento.
Funciona bien.


Prueba realizada en ruta preteminada de la aplicacion, sin usar  AlmacenamientoExterno/Interno.
Diropen devuelve =0 , que no puede tener acceso a la ruta, que no existe (dentro del APK si existe la ruta). Parece que lee un directorio inexistente, pero se considera el espacio de datos de la aplicacion instalada. No tiene acceso al contenido de la APK instalada usando esta funcion de diropen.
En este caso es fallida.

-Android, SO: 4.4.2 SAMSUNG S4 MINI

Esta prueba se realiza en el AlmacenamientoExterno/Interno, ruta de memoria interna del movil(en mi caso).
Diropen devuelve =0 , que no puede tener acceso a la ruta, parece que no tenga permisos de leer el contenido de la carpeta.
En este caso es fallida.

Prueba realizada en ruta predeterminada de la aplicación, sin usar  AlmacenamientoExterno/Interno.
Da el mismo resultado que el anterior.
En este caso es fallida.

----------------------------

En Android, la cosa es que va de permisos sobre leer un directorio externo,
tambien si puede o no acceder a una carpeta que esta en el APK instalada no es accesible.

Existe 3 accesos realmente:
-Contenido de APK instalada, solo lectura. diropen no puede tener acceso a ella...(desconozco su ruta en S.O: Android)
-Contenido data de la aplicacion, viene vacia por defecto, espacio reservado para guardar configuracion, partidas...
diropen puede leer este contenido realmente, debe existir la carpeta en ella o los ficheros a escanear.
-Contenido externo "AlmacenamientoExterno"(en mi caso es el AlmacenamientoInterno) y es visible para explorador de fichero y Windows. Espacio de almacenamiento adicional que el usuario puede acceder a ella , añadir y quitar ficheros.
diropen puede leer el contenido, (depende del dispositivo android, tiene o no permiso a escanear el contenido).

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12887
  • Karma: 377
Re:[Observacion] Comportamiento de Diropen, en Windows y Android.
« Respuesta #1 en: Noviembre 14, 2016, 03:19:30 am »
muy buena idea la de ir compartiendo experiencias en forma de observaciones...

gracias!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6340
  • Karma: 162
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re:[Observacion] Comportamiento de Diropen, en Windows y Android.
« Respuesta #2 en: Noviembre 15, 2016, 01:30:48 am »
Y tanto, como que me vienen de perlas estos comentarios para cuando tenga que añadir cosas al programa o darle la posibilidad al usuario de ello :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
Re:[Observacion] Comportamiento de Diropen, en Windows y Android.
« Respuesta #3 en: Noviembre 16, 2016, 12:18:21 pm »
Es el primer vistazo para programar para android concreta mente,
Pero ya lo aplico con mi proyecto/juego, esta en fase beta este tema aun por terminar de investigar un comportamiento de forma seguida, es decir de uso continuo, muchas peticiones de lectura y escritura a estos medios que nos ofrece android.

Aprender si REAL mente es necesario tener acceso a la memoria externa(Almacenamiento interno), para nuestro proyecto, hay que mirar al detalle de nuestras necesidades a la hora del diseñar nuestro juego o programa.
Mirando para el usuario sera el único que tendrá acceso a la memoria externa, por exploradores comunes ,y contectando al pc.
Un usuario medio.

Un usuario avanzado puede acceder vía protocolo adb o root explorer a las carpetas de almacenamiento tipo "data". Yo lo encontré la ruta donde se almacena.

Por default seria el almacenamiento de "datos" perfecto para guardar las partidas salvadas y ajustes, y otro contenido generado o descargado(modulo curl)...
Se mantiene todos los datos de este almacenamiento cuando actualizamos la app. Eso e bueno.
Recomiendo añadir a la cabezera del fichero de configuración y partida salvada, el numero de versión que corresponde el juego/programa, es para saber si es necesario tener un orden de carga de datos fread/fgets en determinado orden.
Al salvar los cambios a la ultima versión fwrite/fputs en el orden mas actual que hemos preparado.
A todo esto es para añadir características que necesitamos guardar en los ficheros.

Es una cosa que aprendí no hace mucho tiempo.
Es un consejo.

josebita

  • Administrator
  • *****
  • Mensajes: 4039
  • Karma: 257
    • BennuGD Mobile Worklog
Re:[Observacion] Comportamiento de Diropen, en Windows y Android.
« Respuesta #4 en: Noviembre 21, 2016, 07:53:39 pm »
Buenas alicesimu:

Mil gracias por tus comentarios. Me los he leído en diagonal, pero creo que merece la pena leerlos con más cariño, me lo apunto (estoy a tope en un montón de frentes...). En todo caso, lo que dices es muy cierto: en general los juegos de Android no deberían tener que escribir a la SD.

Existe un directorio donde cada aplicación (y, en principio, sólo esa aplicación) puede y debe escribir sus datos, preferencias... y en PixTudio se puede obtener con la función get_pref_path de mod_dir. Funciona en todos los sistemas operativos soportados y es para determinar dónde el juego debe echar sus cosas.

Sonará a viejuno, pero eso de escribir en la tarjeta SD "sin más" es como cuando las aplicaciones dejaron de funcionar al llegar Windows XP porque escribían todas sus cosas en el directorio de instalación...

alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
Re:[Observacion] Comportamiento de Diropen, en Windows y Android.
« Respuesta #5 en: Noviembre 21, 2016, 08:43:17 pm »
desconocia esta funcion: get_pref_path de mod_dir
tampoco no se donde sacar info de uso:
https://pixtudio.org/docs/

por default la carpeta de trabajo la considera su raiz / (segun el comando cd()), pero no del sistema, si no de su carpeta data privada, solo para la app.
dentro se guardan las cosas, por ahora ficheros...
carpetas no deja crear por ahora...

es su espacio personal para guardar las cosas que necesita gestionar, normalmente lo que el usuario genera(partidas salvadas) y archivos de configuracion del propio juego.


El tema de usar el Almacenamiento externo, es una carateristica que permite añadir al juego: Addons personalizados por el propio usuario, estas cosas pueden ser:
Musica, graficos en png(para algun contenido, skin...), Mapas descargadas de manera externa(mapas editadas por un editor externo).
Cualquier cosa que un usuario se le da permiso de: Personalizar y añadir mas contenido personalizado(creado por otros usuarios)

Es como esa carpeta de Donwoads del juego de Los Sims, (hasta permitia mods....).

Naturalmente esto es opcional, no es obligatorio.

En el juego decides si usarlo o no, activarlo o desactivarlo.
No deja de ser una manera de añadir contenido personalizado por usuario. (no por el propio juego/desarrollador por actualizaciones, o de su propia pagina de descarga...).

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6340
  • Karma: 162
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re:[Observacion] Comportamiento de Diropen, en Windows y Android.
« Respuesta #6 en: Noviembre 22, 2016, 02:02:26 am »
Estoy con alicesimu: la memoria de los teléfonos móviles es tan tan tan escasa que apenas instalas tres aplicaciones te quedas sin espacio, y sin embargo, tienes como 3GB libres para datos más los que añadas de una SD externa, pero claro, no son el espacio de aplicaciones.
Por eso es necesario poder acceder a esa sección de datos externa y, en ocasiones, la SD.

En mi caso, quiero hacer un programa en el que se puedan importar imágenes, y alguien sin root sólo lo puede hacer desde la "partición" de datos o de la SD externa. Lo mismo se aplica para ficheros de preguntas-respuesta creados por los usuarios, para que se puedan compartir no sólo a través de red (aunque no voy a tener servidor para ello), sino de red wifi o por bluetooth.

Y de paso, ahorrar ese espacio de la partición de "aplicaciones" ¿he dicho ya que es muy escasa? :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

josebita

  • Administrator
  • *****
  • Mensajes: 4039
  • Karma: 257
    • BennuGD Mobile Worklog
Re:[Observacion] Comportamiento de Diropen, en Windows y Android.
« Respuesta #7 en: Noviembre 22, 2016, 05:23:11 am »
desconocia esta funcion: get_pref_path de mod_dir
tampoco no se donde sacar info de uso:
https://pixtudio.org/docs/
Arreglado.

alicesimu

  • Sr. Member
  • ****
  • Mensajes: 256
  • Karma: 2
Re:[Observacion] Comportamiento de Diropen, en Windows y Android.
« Respuesta #8 en: Noviembre 22, 2016, 11:51:47 am »
Graciaaass!!!