Есть ли ограничения в пакете android?

Я хочу знать, имеет ли размер данных пакета андроида верхний предел. Я пытаюсь опубликовать данные с помощью пакета, размер которого составляет> 80 тыс., И выбросить андроидальное фатальное исключение. Данные являются Serializable.

    Я думаю, что предел 500kb. Вы можете сохранить переданный объект в файл и отправить путь к файлу в комплекте. Вы можете проверить аналогичный вопрос, заданный мной в SO

    Это зависит от цели комплекта. Сам пакет ограничен только объемом памяти.

    Два основных способа использования пучков – передача информации между компонентами с использованием намерений и сохранение состояния активности.

    1. Усилия / связки

    Когда используется для передачи информации между компонентами Android, пакет объединяется в транзакцию связующего. Общий размер всех транзакций связующего в процессе составляет 1 МБ. Если вы превысите этот предел, вы получите эту фатальную ошибку «!!! FAILED BINDER TRANSACTION !!!»

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

    Ссылка: https://android.googlesource.com/platform/frameworks/base/+/jb-release/core/jni/android_util_Binder.cpp

    ALOGE("!!! FAILED BINDER TRANSACTION !!!"); // TransactionTooLargeException is a checked exception, only throw from certain methods. // FIXME: Transaction too large is the most common reason for FAILED_TRANSACTION // but it is not the only one. The Binder driver can return BR_FAILED_REPLY // for other reasons also, such as if the transaction is malformed or // refers to an FD that has been closed. We should change the driver // to enable us to distinguish these cases in the future. 

    Ссылка: http://developer.android.com/reference/android/os/TransactionTooLargeException.html

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

    2. Сохраненное состояние экземпляра (действие onSaveInstanceState, onPause и т. Д.)

    Я не нашел предела в размере, который мог бы хранить в пакете, используемом для сохранения состояния Activity. Я сделал несколько тестов и смог успешно сохранить около 175 мб, прежде чем я получил исключение из памяти, пытаясь выделить данные, которые я пытался сохранить.

    Да, это так, и теперь в андроиде Нуга он потерпит крах, если вы превысите предел примерно (500Kb).

    андроидная нуга

    Я думаю, что максимальный размер пакета составляет 1024 килобайта. Чтобы перенести большие объекты между действиями, вы должны попробовать другие способы (кэш памяти, локальное хранилище и т. Д.).

    Согласно API Google Android , дата должна быть меньше 50 КБ.

    Да, он имеет ограничение 1 МБ.

    Вы можете использовать class Singleton для передачи данных.

    Давайте будем гением компьютера.