Типы памяти Android (ОЗУ и внутренняя память)

В отдельной ветке я продемонстрировал свое незнание типов памяти, спросив, как лучше скопировать файл в «внутренняя память», и было сообщено, что это не очень хорошая идея и что было бы лучше прочитать файл в «ОЗУ». Сейчас я пытаюсь понять, как связаны эти два типа памяти и как их можно использовать.

Я понимаю, что «под внутренней памятью понимается флэш-память, которая используется для хранения APK, образов ПЗУ и т. д.».

В спецификации моего HTC Hero указано, что «ПЗУ: 512 МБ, ОЗУ: 288 МБ» без указания того, как подразделяется ОЗУ.

На телефоне страница «Настройки» -> «SD и память телефона» просто ссылается на «SD-карту» и «Внутреннюю память телефона», а для последнего просто показывает одну сумму для «Доступного места».

В справочнике по Android для хранилища данных упоминается "внутреннее хранилище". Это место, где «вы можете сохранять файлы». На странице также упоминаются файлы базы данных SQLite, которые, я думаю, могут храниться во «Внутреннем хранилище». Однако на странице, похоже, не содержится никакого объяснения разделения ОЗУ между внутренним хранилищем и другим (предположительно более динамичным) типом.

Есть ли какое-то динамическое разделение всей оперативной памяти (288 МБ на Hero) на два подразделения, которые можно использовать по-разному? Если да, то где в документации Android это объясняется?


person prepbgg    schedule 08.01.2011    source источник


Ответы (1)


Я понимаю, что внутренняя память воспринимается как флэш-память, которая используется для хранения APK, образов ПЗУ и т. д.

В спецификации моего HTC Hero указано, что имеется ПЗУ: 512 МБ, ОЗУ: 288 МБ без указания того, как подразделяется ОЗУ.

Оперативная память не подразделяется на какую-либо постоянную основу. Оперативная память используется запущенными процессами по мере необходимости. Самое важное, на что стоит обратить внимание приложениям SDK, — это то, что существует верхний предел того, сколько оперативной памяти может потреблять процесс — на вашем герое он должен составлять 16 МБ.

На телефоне страница «Настройки» -> «SD и память телефона» просто относится к SD-карте и внутренней памяти телефона, а для последней просто отображается один объем доступного места.

Внутренняя память телефона — это часть встроенной флэш-памяти, отведенная для файлов APK, баз данных, настроек и других локальных файлов.

На странице также упоминаются файлы базы данных SQLite, которые, я думаю, могут храниться во внутреннем хранилище.

Правильный.

Однако на странице, похоже, не содержится никакого объяснения разделения ОЗУ между внутренним хранилищем и другим (предположительно более динамичным) типом.

Оперативная память не имеет ничего общего с внутренней памятью.

Есть ли какое-то динамическое разделение всей оперативной памяти (288 МБ на Hero) на два подразделения, которые можно использовать по-разному?

No.


Отступим на шаг.

ОЗУ есть ОЗУ. Оперативная память вашего телефона существенно не отличается от оперативной памяти вашего настольного компьютера, ноутбука, нетбука и т. д. Эта конструкция оставалась относительно стабильной в использовании в течение последних нескольких десятилетий, особенно после того, как мы ушли от мэйнфреймов. Запущенные программы (ОС и приложения для конечных пользователей) потребляют оперативную память, но только во время работы. И оперативная память стирается при перезагрузке, как на телефонах, так и на рабочем столе.

Теперь ваш обычный настольный компьютер, ноутбук или нетбук также имеет жесткий диск для более постоянного хранения, чем предлагает ОЗУ. В Android нет абсолютного термина для эквивалента — я обычно использую для него встроенную флэш-память, другие называют ее внутренней памятью, хотя, как вы увидите, последний термин чреват путаницей. Как и жесткий диск, встроенная флэш-память используется для ОС (также известной как прошивка в Android), программ конечного пользователя (также известных как APK-файлы в Android) и данных конечного пользователя (таких как базы данных, общие настройки, и другие файлы, хранящиеся там, где находится getFilesDir()).

Встроенная флэш-память разделена на несколько разделов. Если вы пользователь Windows, разделы в основном говорят, что ваш жесткий диск разбит на диски C:, E: и F:. В Android один раздел предназначен для прошивки, а другой раздел (раздел данных) — для программ и данных конечного пользователя. (ПРИМЕЧАНИЕ: предыдущее описание не совсем точное, но расхождения выходят далеко за рамки этого ответа).

Итак, учитывая все это:

  • Ваши 512 МБ ПЗУ — это встроенная флэш-память, возвращаясь к старому термину флэш-ПЗУ.
  • Ваша внутренняя память телефона в настройках — это доступное пространство в разделе данных для приложений и данных конечного пользователя (одна из причин, по которой я не использую этот термин для обозначения встроенной флэш-памяти в целом)
  • Ваша SD-карта в Android обычно называется внешним хранилищем, которое на многих устройствах является той или иной формой SD-карты, хотя на самом деле это может быть просто еще один раздел встроенной флэш-памяти, предназначенный для использования в роли внешнего хранилища.
person CommonsWare    schedule 08.01.2011
comment
Большое спасибо за этот быстрый и очень полезный ответ. Я думаю, одна вещь, которая меня особенно смутила, заключалась в том, что я предполагал, что ПЗУ (только для чтения) недоступно для записи. (Если это флэш-память, я должен сказать, что термин «ПЗУ» — это очень запутанный способ его описания!) Правильно ли я понимаю, что SD-карта и память телефона, показанные в настройках моего телефона, относятся к части ПЗУ и что страницы настроек не содержат никакой информации? об оперативной памяти? Оставлено ли управление оперативной памятью полностью операционной системе и полностью ли оно невидимо для пользователя и программиста? - person prepbgg; 08.01.2011
comment
В статье Википедии о постоянной памяти говорится, что более современные типы, такие как EPROM и flash EEPROM, можно стирать и перепрограммировать несколько раз; они по-прежнему описываются как постоянная память (ПЗУ) [необходима ссылка], потому что процесс перепрограммирования, как правило, нечастый, сравнительно медленный и часто не разрешает запись с произвольным доступом в отдельные ячейки памяти. Теперь понятно, почему я предположил, что это НЕ место, где хранятся пользовательские данные! - person prepbgg; 08.01.2011
comment
@prepbgg: Если это флэш-память, я должен сказать, что ПЗУ - очень запутанный способ ее описания! -- нет такой вещи, как флэш-память AFAIK. Правильно ли я понимаю, что SD-карта и память телефона, отображаемые в настройках моего телефона, относятся к части ПЗУ и что на страницах настроек нет информации об оперативной памяти? -- правильный. Оставлено ли управление оперативной памятью полностью операционной системе и полностью ли оно невидимо для пользователя и программиста? -- в целом да. - person CommonsWare; 08.01.2011
comment
@prepbgg: я понимаю, почему я предположил, что это НЕ место, где хранятся пользовательские данные! -- флэш-память обычно используется для хранения около 15 лет. См. en.wikipedia.org/wiki/Flash_storage. - person CommonsWare; 08.01.2011
comment
Я пытаюсь связать ваш ответ с этой ссылкой: addictivetips.com/mobile/ Таким образом, разделы в ссылке должны быть разделами ПЗУ (флеш-памяти), которые вы упомянули. - person Jake; 03.04.2014
comment
ИМХО, этот ответ можно было бы значительно упростить, сосредоточив внимание на основной путанице OP: Android внутренняя память не относится к оперативной памяти. ОЗУ НЕ является вариантом хранения; - вы не ссылаетесь на него напрямую - это неявно - это место, где находятся объекты java вашего приложения, пока ваше приложение работает. Всякий раз, когда ваше приложение читает (из файла, предпочтения или базы данных), данные копируются с устройства хранения в ОЗУ. Когда ваше приложение пишет, оно копируется из оперативной памяти обратно на устройство хранения. - person ToolmakerSteve; 20.09.2014
comment
Есть ли какая-либо разница между чипом RAM и чипом «встроенной флэш-памяти» с точки зрения электроники, например, имеют ли они разные скорости чтения/записи ввода-вывода и т. д.? - person humble_wolf; 15.08.2019
comment
Возвращаясь к этой теме через несколько лет, я только что нашел некоторое оправдание своему использованию термина флэш-память. Процитирую страницу 141 журнала PC Pro за декабрь 1997 года: Подавляющее большинство цифровых камер используют технологию памяти, известную как флэш-память. Именно в таких статьях я впервые прочитал о флэш-памяти/хранилище. В то время легко перезаписываемая энергонезависимая твердотельная память была захватывающей новой концепцией. - person prepbgg; 14.03.2021