La máquina s40 tiene mejor memoria para juegos, divulgación científica.

El cartel original: 2014000 Vistas: 318 Respuestas: 10 Publicado en: 2012-06-09 18:51:45
Hay dos tipos principales de uso de memoria, a saber, programas y recursos. ·La clase del programa se compilará en un archivo de código de bytes de clase y se cargará en la memoria cuando se inicie el MIDlet, y se agregará de una vez. Es decir, cuantas más clases haya en MIDlet, más largo será el programa de una sola clase y cuantas más constantes de cadena y datos haya dentro de la clase, más grande será el archivo de clase compilado y más memoria ocupará después de la carga. A menudo uso el método Runtime en el constructor de la clase MIDlet para verificar la cantidad de memoria ocupada por todo el programa después de que se inicia el MIDlet. //Método de optimización: 1. El programa MIDlet se escribe en dos clases para reducir el uso de memoria, pero a expensas de las funciones de programación orientada a objetos de Java. Esta desventaja será particularmente obvia cuando el programa sea relativamente grande. Además, CoCoMo se encontró una vez con una situación en la que una sola clase era demasiado grande y el tiempo de carga demasiado largo, lo que violaba el límite de 6 segundos en el logotipo del cofre del tesoro. //2. Intente escribir código elegante, reduzca la cantidad de funciones, elimine try catch cuando se lance el programa y minimice la cantidad de líneas del programa. En general, esto no es posible en los antiguos 40, pero ahora CoCoMo ya no depende de esto para ahorrar memoria. //3. Escriba datos y cadenas en archivos, cárguelos en la memoria cuando estén en uso y configúrelos como nulos cuando no estén en uso. 4. Operación de E/S getClass(). getResourceAsStream(archivo);, operación de base de datos RecordStore. openRecordStore(nombre, verdadero);, Administrador de creación de sonido. createPlayer();, creación de imágenes Imagen. crearImagen(archivo); Ocupará una gran cantidad de memoria en un corto período de tiempo y la liberará más tarde. Si la memoria restante del programa MIDlet es insuficiente, se producirá un desbordamiento de la memoria cuando estas funciones se llamen con frecuencia, lo que dará como resultado el llamado pico de memoria, que es especialmente común en los viejos 40. Cuando vuelva a encontrar OutOfMemoryError, use Runtime para encontrar la ubicación donde ocurre el pico de memoria e intente llamar a estas declaraciones por separado y haga un uso flexible del Sistema. gc() para recolectar a tiempo. //·Recursos Imágenes: Ocupan gran cantidad de memoria, especialmente los juegos de móvil con muchos recursos de imágenes. Calcular el uso de memoria de los recursos de imágenes se ha convertido en una tarea habitual para los desarrolladores de juegos J2ME. CoCoMo explicará cómo calcular el uso de memoria de las imágenes: //Uso de memoria = ancho * alto * número de bytes de píxeles, donde el número de bytes de píxeles varía según el modelo. //Por ejemplo, el uso de memoria de una imagen de 64*64 en el 7210 = 64*64*1.5 = 614 4 (bytes) = 6K, el uso de memoria en S60 = 64*64*2 = 8192 (bytes) = 8K. El número de bytes de píxeles varía según el modelo. Por ejemplo, el 7210 es un modelo de 4096 colores, lo que significa que se usan 12 bits para representar un píxel, así que multiplíquelo por 1,5, mientras que el S60 es un modelo de 65536 colores y se usan 16 bits para representar un píxel, así que multiplíquelo por 2. //Método de optimización//Es incorrecto pensar que comprimir imágenes puede ahorrar memoria. Según la explicación anterior, una vez que la imagen se carga en la memoria, solo está relacionada con el ancho y el alto, y no tiene nada que ver con el tamaño de los datos de la imagen. Comprimir la imagen solo puede reducir el tamaño del frasco pero no el uso de memoria. //1. Método estático: Reduzca el tamaño de la imagen. Si el ancho y el alto son menores, el resultado será menor. A partir de esta idea han aparecido herramientas como los editores de animación, como Prince of Persia de Gameloft. Una vez divididos los personajes, las partes del cuerpo humano se pueden reutilizar. La ubicación compacta de cada parte tiene como objetivo reducir el tamaño de la imagen y aprovechar al máximo cada centímetro de espacio de la imagen. //2. Método dinámico: reduzca la cantidad de imágenes cargadas en la memoria al mismo tiempo. CoCoMo se encontró una vez con esta situación en el proyecto Naruto Samurai. Había 6 tipos de monstruos en ese momento. Si se cargaran en la memoria al mismo tiempo, definitivamente explotaría en los viejos 40. Sin embargo, solo aparecían de dos a tres tipos de monstruos en cada nivel, por lo que cada nivel solo necesitaba cargar las imágenes de los monstruos que aparecían en ese nivel. Ahora que pienso en este proyecto, los desbordamientos ocurrían con frecuencia en el antiguo 40. //Sonido//El sonido también es un recurso que consume relativamente memoria. Los bytes ocupados por la pista de audio en el sonido se convertirán en un flujo de bytes y se cargarán en la memoria. Por tanto, reducir los bytes ocupados por la pista de audio puede reducir el consumo de memoria. El enfoque actual de Gameloft es utilizar una herramienta de conversión de sonido para convertir mid a ott y luego cambiarlo a un flujo de bytes ByteArrayInputStream para crear un reproductor.
responder 🤍 0 📤 compartir recolectar
No entendí..
Me da pereza mirar..
Me siento mareado al mirar.
Hay un software de más de 12M que mi S40 también puede usar. http://dd9.lexun.com/9xf202/act/20110123/5/49904971.jar Diccionario Xinhua. Los usuarios de teléfono deben tener cuidado al descargarlo.
Esto es solo divulgación científica. Se solicita el método.
Se necesita conocer Java y tener una cierta base en Java.
¿El autor entiende, lo compartió…
Oh, ¿por qué no hay datos sobre el uso de memoria de los juegos 3D? Los juegos 3D generalmente consumen mucha memoria RAM…
Mejor lo dejo, aunque lo vea, tampoco sabré cómo hacerlo.
Solo entiendo un poco de Java. Entender un poco es suficiente, no es necesario investigar todo en profundidad. Después de todo...
— Todas las respuestas cargadas —

Deja una respuesta