String string , String , , . String
, ,String ? String String
count , count int, , 2^32, 4G。
, , Sting str = "aaaa"; , ASCII
65534 。 ? class , CONSTANT_Utf8_info 16
, 65536 , java class UTF-8 ,null ,
65536- 2 = 65534 。 UTF-8 , ASCII , (
)。 ,
bug :
11-16 17:07:51.301 12598-12598/com.hx.socialapp E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 520536)
11-16 17:07:51.326 12598-12598/com.hx.socialapp E/RongLog: [ RongExceptionHandler ] uncaughtException
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 520536 bytes
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4050)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6436)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)
Caused by: android.os.TransactionTooLargeException: data parcel size 520536 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:626)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3908)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4042)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6436)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)