The RandomAccessFile libraries (B4A, B4J and B4i libs) include two new methods: WriteB4XObject and ReadB4XObject.
These methods are similar to WriteObject and ReadObject. The main difference is that WriteObject / ReadObject methods are based on Java serialization feature. This means that they are not compatible with iOS.
The new B4XObject methods use a custom serialization method and is therefore supported by all platforms.
They are also faster than WriteObject / ReadObject.
The following types are supported by WriteB4XObject:
Lists, Maps, String, primitives, user defined types and arrays. Only arrays of bytes and arrays of objects are supported (in B4A and B4J).
Including combinations of these types (a list that holds maps for example).
Note that if you plan to share types between different platforms then the types should be declared in the main module.
The signatures of WriteB4XObject / ReadB4XObject are similar to WriteObject / ReadObject with one difference. There is no Compress parameter (compression is always used).
The updated AsyncStreamsObject modules are available here: https://www.b4x.com/android/forum/threads/asyncstreamsobject-module.48276/#post-300097
Edit: For new projects it is recommended to use B4XSerializator. It is similar to the methods discussed above but it is simpler to use and more powerful.