Biblioteca para memoria de pila no restringida para mapas de bits que usan NDK en Android [cerrado]

Por diseño, las aplicaciones de Android son muy limitadas en la cantidad de memoria de pila que pueden usar. La limitación para las aplicaciones SDK es de tan solo 16 MB en dispositivos antiguos. Esta elección de diseño generalmente tiene sentido porque el sistema operativo trata de soportar tareas múltiples en dispositivos que usualmente tienen muy poca memoria, por lo que cada tarea obtiene su propia pequeña ración.

La limitación de memoria varía según el dispositivo. En el Samsung Galaxy S2, por ejemplo, cada aplicación alcanza entre 32MB-64MB. Este dispositivo tiene 1 GB de RAM, por lo que una sola tareaSolo se puede usar alrededor del 5%. de lo que el dispositivo puede ofrecer.

Vale la pena mencionar que la estrategia de memoria en iOS es muy diferente. Según mi conocimiento, no existe un límite forzado externamente sobre la cantidad de memoria que puede usar una aplicación iOS. Puede asignar todo lo que desee hasta que el sistema se quede sin memoria. Si eres demasiado codicioso, se terminarán otras aplicaciones de fondo.

Saquemos esto del camino, no es una discusión sobre qué estrategia de memoria es mejor.

La limitación de memoria en Android es difícil de tragarcierto Tipos de aplicaciones. Las aplicaciones de uso intensivo de gráficos (como los juegos) necesitan mucha memoria para contener mapas de bits. Incluso un navegador web debería ser bastante difícil de implementar bajo el límite predeterminado.

Cuandooptimización de recursos no es suficiente, la estrategia estándar para superar el límite de memoria es usar elNDK. El montón "nativo" en Android no tiene limitaciones artificiales y se comporta como el montón en iOS. El uso del montón "nativo" para mantener los mapas de bits funciona bien.fueron se mantuvo en Android 2.3.3 y más bajo (aunque la JVM todavía los limitó artificialmente).

Estoy buscando una biblioteca NDK + JNI para mantener mapas de bits ilimitados en el montón "nativo". Su interfaz de Java debe ser idéntica a la API de mapa de bits de stock. No tengo conocimiento de ningún proyecto público para este propósito y apreciaré su ayuda para encontrar uno. Si ha implementado esto antes y está dispuesto a compartir su código, también será apreciado.

Comentario final: Por favor, no haga de esto una discusión sobre la moralidad de tener una biblioteca disponible para el público en general.

Respuestas a la pregunta(1)

Su respuesta a la pregunta