记一次被 Android 进程复用坑的经历

因为需求需要,把某个功能拆分成一个独立的服务,并由一个全局的 service manager 去控制这个服务;服务对客户端暴露的实现也是通过 service manager

因为服务不需要运行在一个独立进程,manager 和 service 直接通过一个包含服务对象的 local binder 相互通信,看上去大概就这样:

Read More

自己轮的 string_view 和它的小伙伴 tokenizer

String View

string_view 是 C++ 17 引入的一个基础设施,和 array_view 类似,表示一种 non-owning object

Read More

推荐 google samples for android-architecture

在 Android 正式支持 data binding & MVVM 之前,MVP 可以算是最好的 android app 架构模式。

但是直到前不久,Google 才在 github 上提供了推荐的 android-mvp 做法。

Read More

让 Path 更自然

虽然 C++ 17 终于加入了对文件系统的支持,并且主流编译器的标准库也大都提供了一个 experimental implementation,但是就实际的反馈而言,当前的标准和实现都有点莫名其妙。

对,说的就是 filesystem::path

Read More

挖坟:一个非侵入式的 buddy allocator 实现

离职前夕清理公司硬盘数据的时候,偶然发现原来自己去年三月份的时候还写过一个 non-intrusive buddy allocator 呢。因为时间太过久远加上之前写的时候没有加上该有的注释,导致花了一番功夫才看懂核心算法再写什么,更别说几个看起来完全不明觉厉的 offset-to-address 的计算。

Read More

Gone With the Memories

“Experience is what you get when you didn’t get what you wanted.”

Read More

Trie, Ternary Search Tree, and Autocomplete

Trie

对于给定前缀p要求返回集合中所有匹配该前缀的元素的一类问题,例如autocomplete和字典搜索,Trie是一个很自然的选择。

Read More