任雪龙的博客


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

Android中的Binder与AIDL

发表于 2018-11-29 | 分类于 Andriod源码 |

一、Binder简析

直观来说,Binder 是 Android 中的一个类,是继承了 IBinder 接口;从 IPC 角度考虑 Binder 是进程间通信的一种方式;从 Framework 层,Binder 是 ServiceManager 用来连接各种 Manager(AM,WM) 和各种 ManagerService 的桥梁;从应用层来说,Binder 是客户端和服务器端进行通信的媒介,当 bindService 的时候服务器端会返回一个包含了服务端业务调用的 Binder 对象,客户端就可以获取服务端提供的数据或服务。

阅读全文 »

Android中的Window和WindowManagerService

发表于 2018-11-28 | 分类于 Android源码 |

一、理解 Android 的 Window

Window 表示一个窗口的概念,是一个抽象的概念,每一个 Window 都对应一个 View 和一个 ViewRootImpl,Window 和 View 通过 ViewRootImpl 来建立联系,因此 Window 并不是实际存在的,它是以 View 的形式存在。

Android 中的每个窗口 View 都有一个对应的 Window,例如 Activity、Dialog,在他们初始化的时候就会为其创建对应的 PhoneWindow 实例并赋值到其内部的一个引用。

阅读全文 »

Activity的getSystemService方法解密

发表于 2018-11-27 | 分类于 Andriod源码 |

写在前面

开发过程中,我们经常需要一些系统服务,比如 LayoutInflater、ActivityManager 等等,每次获取的时候我们都直接调用 Activity,Service 的 getSystemService(String name) 这个方法,然而这个方法是怎么工作的?每次获取的对象是不是一个?我们都不太清楚,今天,我们就来揭开 getSystemService 方法的面纱,剖析他的工作过程。

阅读全文 »

LayoutInflater源码解析

发表于 2018-11-27 | 分类于 Andriod源码 |

LayoutInflater 在开发中是经常使用的一个类,一般我们都通过 from 方法获取 LayoutInflater 的实例,并通过其 inflate 方法解析 xml 文件。这么常用与重要的类值得我们去追着源码更深程度的去理解 xml 文件的加载和解析过程。

一、LayoutInflater 工作过程

1
2
3
4
5
6
7
8
public static LayoutInflater from(Context context) {
LayoutInflater LayoutInflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (LayoutInflater == null) {
throw new AssertionError("LayoutInflater not found.");
}
return LayoutInflater;
}

关于 LayoutInlnflater 的 from 方法,我们可以通过 这篇博客 看一下,讲了通过 Context 构建 LayoutInflater 的过程。

这篇博客中提到了 LayoutInflater 的 from 方法最后返回的是一个 PhoneLayoutInflater 类的对象,该类继承了 LayoutInflater 并实现了其抽象方法

接着我们来分析 LayoutInflater 的 inflate 方法的工作过程

阅读全文 »

NestedScrolling机制

发表于 2018-11-06 | 分类于 高级UI |

一、概述

有关 Android 滑动机制以及两个都可以滑动的 View 在滑动过程中可能产生的滑动冲突问题我们之前已经专门分析过了,一般遇到滑动冲突问题时我们都通过自己修改父 View 或者子 View 的事件分发方法来解决。但是在有些情况下这个方式并不能解决我们的需求。

例如下面 gif 图中的效果,Inner 部分是一个 ScrollView,Out 部分是一个 ScrollView,整个 Inner 部分是在 Out 的一部分

阅读全文 »

HelloHexo

发表于 2018-10-17 |

Hexo 常用命令

  1. hexo new [layout] 新建一篇文章
  2. hexo generate/g 生成静态文件 -d/–deploy 文件生成后立即部署网站 -w/–watch 监视文件变动
  3. hexo server/s 启动本地服务器
  4. hexo deploy 部署之前预先生成的静态文件
  5. hexo render 渲染文件
  6. hexo clean 清除缓存文件 db.json 和已生成的静态文件
  7. hexo –draft 显示草稿
阅读全文 »
任雪龙

任雪龙

Keep moving forward

6 日志
3 分类
6 标签
GitHub E-Mail
© 2018 任雪龙
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4