Tipos de memoria de Android (RAM v Memoria interna)

En un hilo separado he demostrado mi ignorancia de los tipos de memoria preguntando sobre la mejor manera de copiar un archivo en "memoria interna" y se aconsejó que esto no era una buena idea y que sería mejor leer el archivo en "RAM" . Ahora estoy tratando de entender cómo estos dos tipos de memoria están relacionados y cómo se pueden utilizar.

Entiendo que "la memoria interna se percibe como el flash que se utiliza para almacenar APKs, imágenes de ROM, etc."

La especificación para mi héroe de HTC dice que hay "ROM: 512MB, RAM: 288MB" sin la indicación de cómo la RAM se subdivide.

En el teléfono, la página "Ajustes" -> "Almacenamiento SD y teléfono" se refiere simplemente a "Tarjeta SD" y "Almacenamiento telefónico interno" y para este último sólo muestra una cantidad para "Espacio disponible".

La Referencia de Android para almacenamiento de datos menciona "Almacenamiento interno". Este es un lugar donde "puedes guardar archivos". La página también menciona archivos de base de datos SQLite que creo que se pueden almacenar en el "almacenamiento interno". Sin embargo, la página no parece ofrecer ninguna explicación de la subdivisión de RAM entre el almacenamiento interno y otro tipo (presumiblemente más dinámico).

¿Existe algún tipo de división dinámica de la RAM total (288 MB en el héroe) en dos subdivisiones que se pueden utilizar de diferentes maneras? Si es así, ¿en qué parte de la documentación de Android se explica esto?

Entiendo que "la memoria interna se percibe como el flash que se utiliza para almacenar APKs, imágenes de ROM, etc."

La especificación para mi héroe de HTC dice que hay "ROM: 512MB, RAM: 288MB" sin la indicación de cómo la RAM se subdivide.

La memoria RAM no está "subdividida" en ningún tipo de base permanente. RAM se utiliza mediante la ejecución de los procesos en la medida de lo necesario. Lo más importante para las aplicaciones de SDK es que hay un límite superior en cuanto a la cantidad de memoria RAM que un proceso puede consumir – en su héroe, debe ser de 16 MB.

En el teléfono, la página "Ajustes" -> "Almacenamiento SD y teléfono" se refiere simplemente a "Tarjeta SD" y "Almacenamiento telefónico interno" y para este último sólo muestra una cantidad para "Espacio disponible".

El "almacenamiento interno del teléfono" se refiere a la parte del espacio de destello de a bordo reservada para archivos APK, bases de datos, preferencias y otros archivos locales.

La página también menciona archivos de base de datos SQLite que creo que se pueden almacenar en el "almacenamiento interno".

Correcto.

Sin embargo, la página no parece ofrecer ninguna explicación de la subdivisión de RAM entre el almacenamiento interno y otro tipo (presumiblemente más dinámico).

RAM no tiene nada que ver con el almacenamiento interno.

¿Existe algún tipo de división dinámica de la RAM total (288 MB en el héroe) en dos subdivisiones que se pueden utilizar de diferentes maneras?

No.


Vamos a dar un paso atrás.

RAM es RAM es RAM. RAM en su teléfono no es significativamente diferente de la memoria RAM en su escritorio, su portátil, su netbook, etc Esta construcción se ha mantenido relativamente estable en su uso durante las últimas décadas, sobre todo una vez que nos escapamos del mainframe. Los programas en ejecución (SO y aplicaciones de usuario final) consumen RAM, pero sólo mientras se ejecutan. Y RAM se limpia en un reinicio, en los teléfonos, tanto como en su escritorio.

Ahora, su computadora de escritorio, notebook o netbook promedio también tiene un disco duro para almacenamiento más permanente de lo que ofrece RAM. No hay un término absoluto para el equivalente en Android – que tienden a utilizar "almacenamiento flash a bordo" para él, otros lo llaman "almacenamiento interno", aunque como verá, este último término está lleno de confusión. Al igual que un disco duro, el almacenamiento flash a bordo se utiliza para el sistema operativo (aka, firmware en Android), programas de usuario final (también conocido como archivos APK en Android) y datos de usuario final (aka, bases de datos, Y otros archivos almacenados donde se encuentra getFilesDir() ).

El almacenamiento flash integrado se divide en unas pocas particiones. Si usted es un usuario de Windows, las particiones es básicamente decir "su disco duro se rompe en C :, E :, y F: unidades". En Android, una partición está dedicada al firmware, y otra partición (la "partición de datos") está dedicada a los programas y datos del usuario final. (NOTA: la descripción precedente no es del todo exacta, pero las discrepancias están más allá del alcance de esta respuesta).

Por lo tanto, con todo eso en mente:

  • Su 512MB de ROM es el almacenamiento flash a bordo, retrocediendo al antiguo "flash ROM"
  • Su "Almacenamiento de teléfono interno" en los ajustes que el espacio disponible en la partición de datos para aplicaciones de usuario final y datos (una de las razones por las que no uso este término para referirse a la memoria flash a bordo como un todo)
  • Su "tarjeta SD" se refiere más genéricamente a Android como almacenamiento externo, que en muchos dispositivos es una forma de tarjeta SD, aunque en realidad podría ser sólo otra partición del almacenamiento flash a bordo designado como servicio en el papel de externo almacenamiento
  • ¿Cómo puedo comprobar el uso de memoria de un objeto en java
  • Fuera de la memoria de excepción + análisis de volcado de archivos hprof
  • Jit: Redimensionar JitTable de 512 a 1024 y así sucesivamente ... ¿qué es esto?
  • El montón de memoria de aplicaciones de Android sigue creciendo
  • Cuerdas y gestión de memoria
  • Problema de memoria de Viewview de Viewpager
  • Cómo utilizar Leak Canary
  • Cómo controlar el uso de memoria cuando se llama a varios WebView en Android?
  • Cómo evitar createBitmap () bloqueo en android
  • Prueba de memoria de Android
  • Mensaje de registro en Android: / dev / pmem: Unmapping buffer base
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.