surcamares
26/10/13, 20:52:13
Introducción
En el post Fallos de texturas en algunos juegos (http://www.htcmania.com/showthread.php?p=10842677), algunos usuarios buscamos la razón por la que se producía un comportamiento extraño: juegos que funcionaban perfectamente la primera vez que se abrían, se bugeaban las posteriores, mostrando texturas negras que impedían jugar o, incluso, la pantalla completamente negra.
El problema, resultó radicar en la caché de texturas que hacen algunos juegos. Algunos usan el sistema de caché de Android normal, otros prefieren usar la SD.
Tanto en uno como en otro caso, borrar la caché cada vez que se abre el juego es un coñazo, así que hice una sencilla app que lo hace automáticamente: P6 Game fixer.
Aviso que la interfaz aún está verde... así que el aspecto es feillo xD
(añado la clásica exención de responsabilidad por si las moscas....)
Exención de responsabilidad: la aplicación se presenta sin ninguna garantía. Úsala bajo tu responsabilidad. Yo he probado la aplicación en dos P6 y funcionó perfectamente, pero ni puedo garantizar ni me hago responsable de cualquier daño que pueda ocasionar. El uso de la aplicación conlleva aceptar esta exención de responsabilidad.
P6 Game Fixer
(Captura de pantalla:)
http://i6.minus.com/jUhdpFzIDjbjB.png
La aplicación se presenta como si fuese una carpeta en la que aparecen los juegos compatibles. En lugar de abrir el juego directamente, habrá que abrirlo a través de esta "carpeta", que corregirá la incompatibilidad.
La he hecho de forma que, en cuanto se detecte un juego que presente alguno de estos bugs, pueda actualizar la app fácilmente.
Funcionamiento
Muy sencillo:
La primera vez que abras P6 Game Fixer o cuando instales un juego nuevo compatible, pulsa el botón "Escanear" (el primero por la izquierda).
Selecciona el juego al que quieras jugar.
Listo. P6 Game Fixer arreglará el bug y abrirá el juego de la forma más cómoda posible.
Descarga
El APK está adjunto en este post. Quizás lo publique en Google Play en unos días.
Botones
La aplicación es muy sencilla. Consta de cuatro botones. Por orden, de izquierda a derecha:
Escanear: buscar los juegos compatibles instalados (no es automático para aumentar la carga al abrir la app).
Lista de juegos: muestra la lista de juegos reparables (NO implementado aún!).
Información: muestra la ayuda (NO implementado aún).
Ajustes: permite elegir el método con el que se arreglará el bug (actualmente el popup de configuración, funciona, pero es feo con ganas).
Debajo, está la lista de juegos que P6 Game Fixer puede arreglar. Pulsando sobre el juego, solucionará el problema de compatibilidad y abrirá el juego correspondiente.
Ajustes: métodos de reparación
En ajustes, se muestran tres posibles formas de arreglar el bug de las texturas, cada uno con ventajas y desventajas.
No hace falta hacer ningún cambio, el método predeterminado funciona perfectamente, de todos modos, he dejado que se pueda cambiar, dado que presenta alguna desventaja (pequeña).
Los métodos son:
Limpiar la caché de todas las aplicaciones
Este método borra la caché de todas las aplicaciones. Las ventajas, es que se hace de forma completamente transparente: en cuanto se pulsa el nombre del juego que se quiere abrir, automáticamente limpiará la caché y abrirá el juego. Sin complicaciones.
La desventaja, es que borra la caché de todas las aplicaciones instaladas. En principio, no perjudica a ninguna aplicación. Por ejemplo, en los navegadores, se guarda en la caché las imágenes de páginas visitadas, de manera que la segunda vez que se visitan, la página se carga un poco antes.
Algunos navegadores no utilizar la memoria caché de Android para guardar esa clase de cosas y usan la SD. A éstos navegadores no les afectará ésta opción.
Fuera de lo de la caché, no hay ningún otro "perjuicio" (que tampoco lo es) para el usuario.
(¿Por qué no se borra sólo la caché del juego?)
La razón por la que no se borra sólo la caché del juego en cuestión, es que Android sólo permite eso a las aplicaciones de sistema y a las del creador de la ROM, el resto de aplicaciones, sólo pueden dar la orden de borrar la caché de todas a la vez (y de forma indirecta.. no hay una API sencilla, hay que usar "reflection" para acceder a esas funciones). Ésta es la razón por la que tardé un poco más en sacar la app.
Abrir la página de Información de la Aplicación
Este método es un clásico: te redirige a la ventana de "Informaciónd de la aplicación" que aparece cuando vas a "Ajustes -> Administrar aplicaciones" y seleccionas una aplicación. En esta ventana, hay un botón que pone "Borrar caché", que borra la caché de la aplicación correspondiente. En este caso, abrirá la del juego seleccionado, de forma que con pulsar "Borrar caché" y, después, darle al botón "atrás", se abrirá el juego ya reparado.
Método root
Junta lo mejor de los dos métodos anteriores: por un lado, el usuario no tiene que hacer absolutamente nada, y por otro, sólo borra la caché del juego.
Dado que para borrar la caché de una única aplicación hacen falta permisos Root, un usuario normal no podrá hacerlo.
Borrando la caché guardada en la SD
Esta opción NO está presente en "Ajustes", ya que sólo sirve para algunos juegos, como por ejemplo, el Manuganu. Estos juegos, en lugar de guardar la caché del modo convencional en Android, la guardan en la tarjeta SD, de forma que P6 Game Fixer puede borrar directamente esta caché, sin necesidad de borrar la de otras aplicaciones ni de permisos root.
Otros juegos con los mismos bugs
Si conoces algún otro juego con estos bugs, avísame y comprobaré si P6 Game Fixer puede arreglarlo. Si es así, lo añadiré a la lista de juegos compatibles.
TODO/Roadmap/Cosas por hacer
No sé si llegaré a hacerlo, pero la intención ahí está:
Añadir un icono a la aplicación (sí, aún no tiene icono...)
Hacer que los botones "Información" y "Listado de aplicaciones reparables" funcionen.
Que salgan los iconos de las aplicaciones.
Quizás, que en lugar de una lista salga una cuadrícula sólo con los iconos.
Un botón para sugerir directamente dar soporte a un juego.
Opción de intentar reparar aplicaciones que, en principio, no son compatibles con P6 Game Fixer.
En el post Fallos de texturas en algunos juegos (http://www.htcmania.com/showthread.php?p=10842677), algunos usuarios buscamos la razón por la que se producía un comportamiento extraño: juegos que funcionaban perfectamente la primera vez que se abrían, se bugeaban las posteriores, mostrando texturas negras que impedían jugar o, incluso, la pantalla completamente negra.
El problema, resultó radicar en la caché de texturas que hacen algunos juegos. Algunos usan el sistema de caché de Android normal, otros prefieren usar la SD.
Tanto en uno como en otro caso, borrar la caché cada vez que se abre el juego es un coñazo, así que hice una sencilla app que lo hace automáticamente: P6 Game fixer.
Aviso que la interfaz aún está verde... así que el aspecto es feillo xD
(añado la clásica exención de responsabilidad por si las moscas....)
Exención de responsabilidad: la aplicación se presenta sin ninguna garantía. Úsala bajo tu responsabilidad. Yo he probado la aplicación en dos P6 y funcionó perfectamente, pero ni puedo garantizar ni me hago responsable de cualquier daño que pueda ocasionar. El uso de la aplicación conlleva aceptar esta exención de responsabilidad.
P6 Game Fixer
(Captura de pantalla:)
http://i6.minus.com/jUhdpFzIDjbjB.png
La aplicación se presenta como si fuese una carpeta en la que aparecen los juegos compatibles. En lugar de abrir el juego directamente, habrá que abrirlo a través de esta "carpeta", que corregirá la incompatibilidad.
La he hecho de forma que, en cuanto se detecte un juego que presente alguno de estos bugs, pueda actualizar la app fácilmente.
Funcionamiento
Muy sencillo:
La primera vez que abras P6 Game Fixer o cuando instales un juego nuevo compatible, pulsa el botón "Escanear" (el primero por la izquierda).
Selecciona el juego al que quieras jugar.
Listo. P6 Game Fixer arreglará el bug y abrirá el juego de la forma más cómoda posible.
Descarga
El APK está adjunto en este post. Quizás lo publique en Google Play en unos días.
Botones
La aplicación es muy sencilla. Consta de cuatro botones. Por orden, de izquierda a derecha:
Escanear: buscar los juegos compatibles instalados (no es automático para aumentar la carga al abrir la app).
Lista de juegos: muestra la lista de juegos reparables (NO implementado aún!).
Información: muestra la ayuda (NO implementado aún).
Ajustes: permite elegir el método con el que se arreglará el bug (actualmente el popup de configuración, funciona, pero es feo con ganas).
Debajo, está la lista de juegos que P6 Game Fixer puede arreglar. Pulsando sobre el juego, solucionará el problema de compatibilidad y abrirá el juego correspondiente.
Ajustes: métodos de reparación
En ajustes, se muestran tres posibles formas de arreglar el bug de las texturas, cada uno con ventajas y desventajas.
No hace falta hacer ningún cambio, el método predeterminado funciona perfectamente, de todos modos, he dejado que se pueda cambiar, dado que presenta alguna desventaja (pequeña).
Los métodos son:
Limpiar la caché de todas las aplicaciones
Este método borra la caché de todas las aplicaciones. Las ventajas, es que se hace de forma completamente transparente: en cuanto se pulsa el nombre del juego que se quiere abrir, automáticamente limpiará la caché y abrirá el juego. Sin complicaciones.
La desventaja, es que borra la caché de todas las aplicaciones instaladas. En principio, no perjudica a ninguna aplicación. Por ejemplo, en los navegadores, se guarda en la caché las imágenes de páginas visitadas, de manera que la segunda vez que se visitan, la página se carga un poco antes.
Algunos navegadores no utilizar la memoria caché de Android para guardar esa clase de cosas y usan la SD. A éstos navegadores no les afectará ésta opción.
Fuera de lo de la caché, no hay ningún otro "perjuicio" (que tampoco lo es) para el usuario.
(¿Por qué no se borra sólo la caché del juego?)
La razón por la que no se borra sólo la caché del juego en cuestión, es que Android sólo permite eso a las aplicaciones de sistema y a las del creador de la ROM, el resto de aplicaciones, sólo pueden dar la orden de borrar la caché de todas a la vez (y de forma indirecta.. no hay una API sencilla, hay que usar "reflection" para acceder a esas funciones). Ésta es la razón por la que tardé un poco más en sacar la app.
Abrir la página de Información de la Aplicación
Este método es un clásico: te redirige a la ventana de "Informaciónd de la aplicación" que aparece cuando vas a "Ajustes -> Administrar aplicaciones" y seleccionas una aplicación. En esta ventana, hay un botón que pone "Borrar caché", que borra la caché de la aplicación correspondiente. En este caso, abrirá la del juego seleccionado, de forma que con pulsar "Borrar caché" y, después, darle al botón "atrás", se abrirá el juego ya reparado.
Método root
Junta lo mejor de los dos métodos anteriores: por un lado, el usuario no tiene que hacer absolutamente nada, y por otro, sólo borra la caché del juego.
Dado que para borrar la caché de una única aplicación hacen falta permisos Root, un usuario normal no podrá hacerlo.
Borrando la caché guardada en la SD
Esta opción NO está presente en "Ajustes", ya que sólo sirve para algunos juegos, como por ejemplo, el Manuganu. Estos juegos, en lugar de guardar la caché del modo convencional en Android, la guardan en la tarjeta SD, de forma que P6 Game Fixer puede borrar directamente esta caché, sin necesidad de borrar la de otras aplicaciones ni de permisos root.
Otros juegos con los mismos bugs
Si conoces algún otro juego con estos bugs, avísame y comprobaré si P6 Game Fixer puede arreglarlo. Si es así, lo añadiré a la lista de juegos compatibles.
TODO/Roadmap/Cosas por hacer
No sé si llegaré a hacerlo, pero la intención ahí está:
Añadir un icono a la aplicación (sí, aún no tiene icono...)
Hacer que los botones "Información" y "Listado de aplicaciones reparables" funcionen.
Que salgan los iconos de las aplicaciones.
Quizás, que en lugar de una lista salga una cuadrícula sólo con los iconos.
Un botón para sugerir directamente dar soporte a un juego.
Opción de intentar reparar aplicaciones que, en principio, no son compatibles con P6 Game Fixer.