2011-09-01 19 views

Respuesta

1

Con resources.arsc, hay dos cosas que pueden suceder.

Normalmente, el archivo se almacena en .apk descomprimido. Android mmap() s el archivo y simplemente lee de él según sea necesario, sin cargar todo el archivo en la memoria RAM.

Sin embargo, si se comprime, el acceso directo aleatorio al archivo ya no es una opción, por lo que se descomprime y se guarda en la memoria para otras operaciones (por ejemplo, cargar una cadena).

No estoy seguro de por qué este sería el caso si la aplicación no se está ejecutando. Tal vez se mantiene como un background process?

+0

¿por qué solo Android lo descomprimió y lo copió en data/data o primero hizo algo para apt y luego lo puso en data/app, de modo que el archivo apk puede ser más pequeño? – DzMonster

+0

No tengo una buena respuesta. Creo que tendrías que comprometerte de cualquier manera. Si lo guarda en '/ data/data', perderá espacio en el disco. Si lo cargas en la RAM, pierdes RAM. ¿Su archivo es lo suficientemente grande como para que esa asignación sea un problema? – Vlad

+0

Sí, ahora tiene un tamaño de casi 30mb, el archivo resource.arsc es 6mb. Porque tiene mucho lenguaje adentro. ¿Alguna sugerencia? – DzMonster