Parcel: add generic readData and writeData methods.
The parameter type drives Parcel serialization for readData and
writeData; this simplifies calling and allows generic code to be
written for Parcels.
Documented parcel data storage.
Removed duplicated code.
Updated existing interface to call into readData or writeData as needed.
Bulk data transfer speed has been improved: For the existing interface,
benchmarking shows modest 10% improvement in performance for ByteVectors
to a 10x speedup for Int32Vectors by direct reading of properly packed
data into the array.
At this time, the generic readData and writeData methods are private,
used to implement externally facing APIs.
Test: atest aidl_unittests
Test: atest aidl_integration_test
Test: atest binderDriverInterfaceTest
Test: atest binderLibTest
Test: atest binderParcelBenchmark
Test: atest binderParcelTest
Test: atest binderStabilityTest
Bug: 179072375
Change-Id: Ia2e74d4bb0c0622efdd4ec4cf93441199e96101e
3 files changed