自动化记账折腾手记

久违的更新

很久没有折腾过效率工具了，一方面是工作之后因为单单工作上的事情足够多就已经让人失去了探索新事物的欲望，还有就是住在公司，和别人合住的条件下，没有相对隐私的空间，自然也在一定程度上阻碍了自己探索新事物的想法，周围有人的情况下总是很难静下心来完成一些独立自主的东西，就跟上学时每当监考老师站在你身旁围观你写作文时，总是连蹦出一两个字都难如登天，虽然写出来的东西最终都是会被人看到的，但是在那个创作的过程中，周围有人的、聒噪的环境总是不利于产生和迸发新的灵感。 ^8b429e

记账的奥义

今天（其实是昨晚，我在第二天晚上完成的文稿）花了 20 块钱实现了一个 iOS 端极度优雅和简单的自动记账逻辑，而且理论上是永久免费的。这么多年来，我在记账这件事情上也花了不少的精力和金钱，在探索记账和财务管理软件的过程中，我辗转了好多个记账软件，横跨不同系统，不同的记账逻辑，涉及到免费和付费的软件，但是折腾到最后，我发现了记账的终极奥义并不是大而全，也不是详尽的分类和分析，复杂的分期、按揭、自动扣款需求，而是无感，也就是记账这件事情本身是否足够无感。我们要承认记账是需要记的，你需要记得你花过钱，记得你花了多少钱，首先你需要能够想起来你要记账这件事情。

上面这段话听起来可能会有点绕，但是这就是记账的核心，很多时候我们无法坚持记账，其实就是你总会有那么几次，消费之后忘了记账，等到想起来的时候发现已经过了很久，然后又需要补记之前的消费记录，时间久了就会有一定的施行阻力和成本，加上人的思维惰性，记账这个行为就会变得不可持续。那么有没有什么办法可以解决这个问题呢？

试想，如果记账的这个动作可以自动进行，或者记账这个行为的施行阻力足够低，不就可以了吗？那么具体该怎么实现呢？通过我的记账折腾记录我大概总结了 Android 和 iOS 平台最适合的两种方式，分别可以解决这个问题。

自动记账入门

Android 平台

在 Android 平台，我们可以借助小星记账这类自动记账软件，实现自动记账。

它的原理其实也蛮简单的，就是借助 Android 系统的无障碍功能，监看是否有对应的付款界面的图片特征（比如微信、支付宝、云闪付付款成功的界面，账单的界面等等，这就需要开发者针对特定的支付和消费软件进行特征的识别和适配，当然对隐私比较看重的用户而言，这也伴随着一定的隐私风险。），然后 OCR 识别图片中的消费金额，然后通过软件调用无障碍服务自动弹出记账弹框，借由用户选择合适和分类和确认识别金额，最终完成自动记账。总之在 Android 平台下，这算是一个相对比较完美的自动记账方案。

iOS 平台

在 iOS 平台，自动记账方案就优雅的多，我们需要借助两款工具，一款是 iOS 的原生应用快捷指令，另一款是飞书的多维表格（当然也可以通过 iOS 生态自带的 Numbers 来实现）。

iOS 辅助触控中有一个双击和三击手机背面触发动作的功能，我们可以创建一个记账的快捷指令，然后通过双击或者三击的动作无感触发。快捷指令的原理大概是在触发时截图，然后调用 iOS 的系统 OCR 能力识别截图中的金额，通过对应的正则表达式来识别筛选出消费金额，然后通过快捷指令弹窗的方式让用户选择账单详情的其他内容，最后通过快捷指令的 webhook 功能配合飞书机器人来将数据填写到远端的飞书多维表格中，借助多维表格的数据处理能力来进行存储、分析和可视化。

总结

对比之下，iOS 端的快捷指令记账方式更加原生，也更加稳定，同时也是更具性价比的选择。在 iOS 平台下，除了上手有一点点的手动配置的难度之外，这种方法是目前自动记账的最优解。反观 Android 端，第三方软件长期调用无障碍识屏不仅存在一定的隐私问题，而且 Android 软件后台保活、长期后台运行的耗电问题，都更加令人棘手。不同的平台有不同平台的优劣，通过平台优势和功能实现难易程度的对比，希望大家都能找到属于自己的最好用的自动记账方案，当然最重要的是，坚持记账，维持记账的习惯，从而学会管理、分析自己的收支和财富。

References

iPhone 懒人记账 自动记账 究极不掺水教程来啦

小星记账下载地址

Resources

自动记账捷径下载地址

记账模板下载地址