Что будет если в Bundle засунуть 1 гигабайт данных

«Что будет если в Bundle засунуть 1 гигабайт данных» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android Bundle не предназначен для хранения больших объемов данных. При попытке сохранить 1 ГБ данных:

  1. Может возникнуть TransactionTooLargeException при передаче между процессами (например, через Intent)
  2. При сериализации/десериализации Bundle будет значительная нагрузка на CPU
  3. Возможны проблемы с памятью (OOM)

Рекомендуемые альтернативы:

  • Для передачи больших данных между активити - использовать ContentProvider или файлы
  • Для сохранения состояния - использовать Room/SQLite или файловое хранилище

Пример безопасного подхода:

// Вместо Bundle
val file = File(context.cacheDir, "large_data.tmp")
file.writeBytes(largeData)

// Передаем только путь
intent.putExtra("data_path", file.absolutePath)