四大组件系列文章
Activity总结和补充:https://blog.csdn.net/fdsafwagdagadg6576/article/details/110064346
Android Binder&Aidl理解和补充:https://blog.csdn.net/fdsafwagdagadg6576/article/details/109862316
handler总结和补充:https://blog.csdn.net/fdsafwagdagadg6576/article/details/110293636
<Service史上最全面解析>理解和补充:
https://blog.csdn.net/fdsafwagdagadg6576/article/details/110696288
目录
image1 四大组件基础知识
Activity 显示界面;Service 后台服务;Broadcast Receiver 广播;Content Provider 数据通信。
一个app通常产生一个进程. 特殊情况,android:process 配置remote,会同时新产remote process.
一个app 创建的remote process不会因为app退出而跟着退出。类似父进程退出子进程不退出。
跨进程通信是指多个app通信.哪个组件属于哪个进程,通过android:process配置。
Application:https://blog.csdn.net/carson_ho/article/details/78047771.
2 四大组件主要内容
activity和service本质是对象.不是线程也不是进程。
android 所有的东东都已经封装好了,直接调用api就ok了。比如:地图用百度api.
other:4大组件运行在主线程吗?yes. 除了特殊的remote service.
注意事项:
不要在生命周期方法如onCreate()中进行下载这些大事件
不要在子线程中更新UI界面,这样会导致android系统报错、应用崩溃退出.
3 通信
Activity,Service和BroadcastReceiver需要借助intent,而contentProvider则无须借助Intent.
3.1 Intent
- 基础知识
image
notes: 什么是category,action和data呢?参见: https://blog.csdn.net/reboot123/article/details/9198101
搜了半天,这个link靠谱一点:https://blog.csdn.net/yangsenhao211423/article/details/107435151.
2) 序列化和parcel有什么区别呢?
序列化需要很多临时变量,parcel 优化了序列化,不需要临时变量,parcel是android特有的.
bundle与序列化,parcel关系?
bundle既可以实现序列化也可以实现parcel,是一种实现方法.
为什么不直接使用序列化或者parcel,而是用bundle呢?
因为ActivityA-B-C,普通序列化需要在B拆开,重新打包发给C。bundle不需要拆开重新打包,直接发送.
notes: 序列化是将对象变成有序二进制. 底层实现好像是不同变量二进制之间查flag.
3.2 通信场景
image
3.3 多线程/多进程
进程通信:broadcast,Messenger,AIDL,ContentProvider.
如果是跨进程传输,把intent打包到Parcel中,通过binder机制传递消息。
4 四大组件存储
image
5 四大组件使用实例
Handler 系列一:如何使用:https://segmentfault.com/a/1190000005926314
bindService:绑定本地服务和远程服务示例:https://blog.csdn.net/u011386173/article/details/83575069
BroadcastReceiver三个常见的例子:https://blog.csdn.net/l_l_b/article/details/51188425
ContentProvider讲解与实例应用:https://blog.csdn.net/shaochen2015821426/article/details/79748487
参考:
Android Broadcast机制 https://blog.csdn.net/u010753159/article/details/52573141
Android四大组件:BroadcastReceiver史上最全面解析 https://blog.csdn.net/carson_ho/article/details/52973504
Android:这是一份全面 & 详细的Intent组件学习指南 https://blog.csdn.net/carson_ho/article/details/82767978
ANDROID中BROADCASTRECEIVER的两种注册方式(静态和动态)详解 https://www.cnblogs.com/panhouye/p/6168156.html
Android:关于ContentProvider的知识都在这里了! https://www.jianshu.com/p/ea8bc4aaf057
Android进程间(IPC机制)通信(Bundler,Messenger,AIDL,ContentProvider):https://www.jianshu.com/p/28ff29dfe1a8https://blog.csdn.net/carson_ho/article/details/49889425
网友评论