Decorative image frame

modi.wu

顺流而下,把梦做完

modi.wu

用动画带你学习Git原理

Git已经是我们日常工作开发中最常用到的分布式版本控制系统,大部分人也都知道如何使用它,知道有哪些命令。但同样很多人都在git操作中摔过跟头、翻过车,往往都是通过在网上搜索一番,按照搜索结果敲下命令,或许能解决或许不能。之所以这样,是因为你并不了解每个命令背后的原理,如果了解其本质,就可以更好的帮你梳理思路,而不会迷失在Git众多命令和参数上。这篇文章的目的是用“可视化”动画的形讲解日常开发中常用的命令,让你更好的了解Git的本质。

阅读全文...

Java Binder解析

在Native Binder的系统服务注册过程中,核心是ServiceManager,在Java Binder中,也有一个ServiceManager,然而这个ServiceManager是个Java文件。在Java Binder注册系统服务到也需要用到ServiceManager,那么需要选择一个系统服务来窥探这一过程,这里以常见的ActivityManagerServcie(AMS)为例。

阅读全文...

Native Binder机制之ServiceManager

上篇文章以MediaPlayService为例,讲解了系统服务进程注册到ServiceManager的过程,那与之相对应的过程是服务的获取过程。但在这之前需要先了解ServiceManager,之前有说到过defaultServiceManager函数返回BpServiceManager,然后通过命令发送给handle为0的服务端,这个服务端就是ServiceManager。所以首先要了解ServiceManager的启动过程,这样更有助于理解系统服务的注册过程和获取过程。

阅读全文...

Native Binder机制之系统服务注册

Binder是Android系统提供的一种IPC(进程间通信)机制。由于Android是基于Linux的内核,因此除了Binder之外,还有其他IPC机制,例如管道和socket等,Binder相对与其他IPC机制来说,更为灵活和方便。对于学习Android的同学来说,是需要也最难掌握的就是Binder机制了,因为Android系统基本上可以看做一个基于Binder通信的C/S架构。它就像网络一样,把Android系统中的各个部分联系在一起,所以要想较好的理解Android,那Binder机制就是一个跨不过去的坎。

阅读全文...