'通信'

来源:互联网 发布:js选择日期时间源码 编辑:程序博客网 时间:2024/06/10 09:12


1对1/多(串行否,顺序否), 单向否, COE, 权限(安全), 频率


IPC(Binder + 对象(反)序列化):图源忘记了

AIDL
.. (ArrayList/HashMap里每个元素(包括key)都必须被AIDL支持)支持基本数据类型;String和CharSequence;Parcelable;AIDL接口本身;
.. sql内部线程安全,CopyOnWriteArrayList和ConcurrentHashMap同步;
.. 服务端和客户端之间做监听器,服务端需用RemoteCallbackList,否则客户端的监听器无法收到通知(因为服务端实质是一份序列化后的新的监听器实例,并不是客户端那份);客户端调用远程服务方法时,因为远程方法运行在服务端的binder线程池中,同时客户端线程会被挂起,所以如果该方法过于耗时,而客户端又是UI线程,会导致ANR, 同理服务器调用客户端的listener方法时,该方法也运行在binder线程池中,所以如果该方法也是耗时操作,请确认运行在服务端的非UI线程中。。。
.. 客户端通过IBinder.DeathRecipient(在binder线程池中,访问UI时。。)来监听Binder死亡,也可以在onServiceDisconnected(UI线程)中监听并重连服务端。//源自 android开发艺术探索

(Intent:起止时)

Messager(Bundle)

BR/AppWidgetProvider(RemoteView)

ClipboardManager

存储File; CP; SQLite; SP; 网络(UDP,TCP,,)

系统服务


Handler(LocalBroadcastManager,AsynchTask,IntentService,,)

反射


0 0
原创粉丝点击