Android 的 Binder 机制

同步调用

IBinder 接口相关的关键 API 主要有两个:

IBinder.transact()
用来向一个 IBinder 对象发起调用请求。
Binder.onTransact()
用于处理 Binder 对象收到的调用。

请注意,这套 transaction API 是一套 同步 API, 即一个 transact() 调用会一直阻塞,直到对面的 Binder.onTransact() 方法返回之后, transact() 调用才会返回。

Bash: set 命令用法介绍

Bash 在执行脚本的时候,会创建一个新的 shell, 每个 shell 都有自己独立的执行环境,这个环境会有一些默认行为,而这些默认行为可以通过 set 命令来修改。

这里介绍几种常用的 set 命令。

用 Emacs 分析日志文件

日常开发工作中,经常会需要分析日志文件,有一件趁手的工具会高效很多。

Emacs 正是这样一个工具。

Vim 也有类似的功能(参考 Vim Tips),但就分析日志来说,似乎没有 Emacs 来得方便。