- 博客(5)
- 收藏
- 关注
原创 长截屏原理
前几天看到小米手机的长截屏功能,几天下来有了如下思路。 1. 找到到目标Activity实例 2. 控制目标Activity实例滑动截屏 3. 传递截屏数据到当前进程A)首先如何找到目标Activity实例。 先看下图: 对于每个Activity实例,其所在的进程有唯一的ActivityThread实例(PS:其main方法其实是应用入口)。ActivityThread中有App
2018-01-19 09:07:53 5204 1
原创 ThreadLocal原理简介
ThreadLocal:线程本地变量 作用就是为当前线程绑定独有的对象,如同 Thread 的 id, name,priority等 主要有get和set方法。 以Looper.java为例,说明其用法 看andrid7.1中ThreadLocal的实现,如下图 原理:
2018-01-13 10:32:28 272
原创 Task,taskaffinity, launchmode
1. Task 是 Framework的概念,对应TaskRecord,每个TaskRecord有唯一的taskId2. 在Framework每个Activity实例对应ActivityRecord,Activity可以通过getTaskId()获取对应的taskId在应用端每个Activity实例对应一个ActivityClientRecord,每个进程有唯一的ApplicationTh
2017-12-25 16:20:01 280
原创 Binder通信原理简介图
本文基于android7.1。Binder的作用的是跨进程通信,提供进程间交换数据。当然也适用于同一个进程间通信。大致流程:客户端打包数据------>框架------->服务端------->返回结果到框架------->客户端理解Binder通信最重要的就是把业务层和框架分开, 业务层就是客户端和服务端约定的接口,框架层用于传递打包(Parcel)后
2017-12-25 11:07:57 540
原创 android消息机制
android消息机制按语言分层主要包含: 1.JAVA:Thread, ThreadLocal, Looper,MessageQueue, Message,Handler 2.Native:NativeMessageQueue.cpp 3.C++:Looper.cpp, Looper.h(MessageEnvelope,Message,MessageHandl
2017-12-18 11:21:40 352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人