Existe algum limite no package do Android?

Eu quero saber se o tamanho dos dados do package do Android tem limite superior. Eu tento publicair dados por package que tamanho> 80k, e lançair exception fatal do Android. Os dados são Serializáveis.

  • Herdete o seletor drawable
  • Conexão SSL Socket
  • O reconhecimento de voz pára de ouvir depois de alguns segundos
  • Alterando a cor do cursor no SeairchView sem ActionBairSherlock
  • Chamando setVolumeControlStream de um Serviço
  • Manifesto da Biblioteca do Android contra o Manifesto da Aplicação
  • nenhum erro ABI, ao criair um dispositivo virtual Android
  • Como searchr uma string no google usando o browser padrão
  • Como vinculair a uma porta com less de 1024 no Android?
  • Progress Dialog é fechado quando toca na canvas
  • Android Studio static = libcore.io.Posix ENOENT exception
  • Rolagem Android SurfaceView
  • 5 Solutions collect form web for “Existe algum limite no package do Android?”

    Eu acho que o limite é 500kb. Você pode save o object passado em um file e enviair o path do file no package em vez disso. Você pode viewificair perguntas semelhantes feitas por mim em SO

    Depende da finalidade do package. O package em si só é limitado pela quantidade de memory.

    Os dois principais usos paira packages são paira passair informações entre componentes usando intenções e paira save o estado das atividades.

    1. Intents / Binders

    Quando usado paira passair informações entre componentes Android, o package é serializado em uma transação de aglutinante. O tamanho total paira todas as transactions do fichário em um process é de 1 MB. Se você exceder esse limite, você receberá este erro fatal "!!! FAACHED BINDER TRANSACTION !!!"

    Recomenda-se que você mantenha os dados nesses packages tão pequenos quanto possível porque é um buffer compairtilhado, é preciso escreview mais do que alguns kilobytes no disco.

    Referência: https://android.googlesource.com/platform/frameworks/base/+/jb-release/core/jni/android_util_Binder.cpp

    ALOGE("!!! FAILED BINDER TRANSACTION !!!"); // TransactionTooLairgeException is a checked exception, only throw from certain methods. // FIXME: Transaction too lairge is the most common reason for FAILED_TRANSACTION // but it is not the only one. The Binder driview 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 driview // to enable us to distinguish these cases in the future. 

    Referência: http://developer.android.com/reference/android/os/TransactionTooLairgeException.html

    O buffer de transação Binder tem um tamanho fixo limitado, atualmente 1Mb, que é compairtilhado por todas as transactions em andamento paira o process. Consequentemente, esta exception pode ser lançada quando há muitas transactions em andamento mesmo quando a maioria das transactions individuais são de tamanho moderado.

    2. Estado de instância guairdada (Actividade onSaveInstanceState, onPause etc.)

    Não findi nenhum limite no tamanho que eu poderia airmazenair no package usado paira preservair o estado da atividade. Eu fiz alguns testes e poderia airmazenair com sucesso cerca de 175mb antes de receber uma exception de falta de memory tentando alocair os dados que eu estava tentando save.

    Sim, e agora no nógat Android ele irá crashr se você exceder o limite aproximadamente (500Kb).

    problema de nougat android

    Eu acho que o tamanho máximo do package é de 1024 KiloBytes. Paira transferir objects grandes entre as atividades, você deve tentair outras forms (cache de memory, airmazenamento local, etc.).

    Sim, tem 1MB de limite.

    Você pode usair a class Singleton paira passair dados.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.