美文网首页
四大组件总结

四大组件总结

作者: mfdalf | 来源:发表于2020-12-10 22:37 被阅读0次
    image

    四大组件系列文章

    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

    目录

    image

    1 四大组件基础知识

    Activity 显示界面;Service 后台服务;Broadcast Receiver 广播;Content Provider 数据通信。

    image
    一个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.

    image
    other:4大组件运行在主线程吗?yes. 除了特殊的remote service.
    注意事项:
    不要在生命周期方法如onCreate()中进行下载这些大事件
    不要在子线程中更新UI界面,这样会导致android系统报错、应用崩溃退出.

    3 通信

    Activity,Service和BroadcastReceiver需要借助intent,而contentProvider则无须借助Intent.

    3.1 Intent

    1. 基础知识
      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机制传递消息。

    image.png
    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

    image

    相关文章

      网友评论

          本文标题:四大组件总结

          本文链接:https://www.haomeiwen.com/subject/biqdgktx.html