![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android Framework
文章平均质量分 87
主要学习安卓的Framework源码相关
洗苹果啦
这个作者很懒,什么都没留下…
展开
-
Android Framework-Handler消息机制(四)
Message 内部维持了一个链表缓存池来避免重复创建 Message 对象造成的额外消耗,以静态属性 Message sPool 作为缓存池链表头,Message next 作为链表的 next 指针。同样在MessageQueue 中用Message mMessages 用来维持消息队列的链表头。原创 2024-04-11 20:11:27 · 663 阅读 · 1 评论 -
Android Framework-Handler消息机制(二)
在多线程通信中,Handler接收消息端的线程是独立的,无论Handler的引用在哪个线程发送消息,Handler在哪里实例化就在哪里接收消息。Handler拥有独立存在于线程内部且私有使用的Looper类来实现发送消息。总体来讲,当Handler对象在其他线程发送消息时,可通过Handler的引用对象将消息添加到MessageQueue 并找到其线程的Looper处理接收消息,Looper接收消息后再分发给Handler的接收消息方法。原创 2024-04-09 20:28:59 · 761 阅读 · 2 评论 -
Android Framework-IPC Binder通信(一)
在 Android 中,每个应用程序通常分配一个独立的虚拟地址空间,虚拟地址空间的大小通常由操作系统和硬件决定。一般来说,Android 应用程序的虚拟地址空间大小是固定的,通常在 32 位系统上大约是 4GB(2^32)。这个虚拟地址空间被分成了用户空间和内核空间,其中大部分(约 3GB)是用户空间,用于存放应用程序的代码、数据、堆栈等,而一小部分(约 1GB)是内核空间,用于存放操作系统的代码和数据结构。客户端和服务端共享内核空间。原创 2024-04-16 20:33:23 · 468 阅读 · 0 评论 -
Android Framework-Handler消息机制(三)
上一篇主要分析Handler家族的四大成员 Looper,Looper 主要功能是从消息队列取消息然后交给Handler 的 handleMessage 函数去处理 Message。这一篇主要讲述 Handler 家族的四大成员Message。Message是消息传递的载体。原创 2024-04-10 18:53:21 · 547 阅读 · 1 评论 -
Android Framework-Handler消息机制(五)
前面分别介绍了Message、MessageQueue和Looper的功能及源码,介绍了Handler的特点、功能及用法,接下来分析Handler的源码。// 是否需要查找潜在的漏洞/*** 将Callback 接口作为构造方法参数,可以用作接收消息的回调* 可省去自己重写 Handler 自身的 handleMessage 方法* @param msg 接收到的消息* @return 是否需要进一步处理,即调用 Handler 自身的 handleMessage方法*/原创 2024-04-12 20:27:23 · 874 阅读 · 0 评论 -
Android Framework-Handler消息机制(六)
该线程中的 Looper 负责不断地从 MessageQueue 中取出消息,并将其发送给相应的 Handler 进行处理。需要注意的是,在调用 recycle() 方法之后,该消息对象的状态将不再可靠,因此在之后不能再使用该消息对象。MessageQueue 是用于存储和管理消息的队列,每个线程都有自己的 MessageQueue,用于存放该线程接收到的消息。Java 的高级语言特性,即类中持有一个类自身的属性作为经典数据结构中的链表 next 指针,以静态属性属于类本身的特性实现了链表的表头。原创 2024-04-15 16:14:36 · 843 阅读 · 1 评论 -
Android Framework-Handler消息机制(一)
若在 UI 线程创建了 Handler 对象,在 Worker 线程调用 handler.post()方法时,Runnable 就会运行 在 UI 线程中。java 中的多线程通信方式共同方式:采用阻塞的方式(例如 synchronized,Object类的wait/notify)。在具体指定的时间 uptimeMillis 让 Runnable 运行在 Handler 对象被创建的线程中。mTextView.setText("通过post,从工作线程切到了UI线程");所有发送的消息都会返回该方法。原创 2024-04-08 19:05:55 · 621 阅读 · 0 评论