惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Troy Hunt's Blog
Last Week in AI
Last Week in AI
D
DataBreaches.Net
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyberwarzone
Cyberwarzone
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学
Cisco Talos Blog
Cisco Talos Blog
Latest news
Latest news
月光博客
月光博客
博客园 - 司徒正美
C
CERT Recently Published Vulnerability Notes
L
LangChain Blog
Simon Willison's Weblog
Simon Willison's Weblog
The Register - Security
The Register - Security
T
The Blog of Author Tim Ferriss
V
V2EX
F
Fortinet All Blogs
AWS News Blog
AWS News Blog
T
Tor Project blog
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
L
Lohrmann on Cybersecurity
量子位
F
Full Disclosure
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
Intezer
NISL@THU
NISL@THU
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 三生石上(FineUI控件)
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
P
Privacy & Cybersecurity Law Blog
T
Threat Research - Cisco Blogs
J
Java Code Geeks
S
Schneier on Security

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
初衷
2017-07-29 · via 少数派

Dir 是我在 2017年元旦搞的项目,专门治理Android上流氓软件/不规范的软件在存储卡乱存储文件,还你一个整洁的存储空间。这篇文章介绍我开发它的经历和初衷。Dir:https://dir.trumeet.top
本文同步发表于我的博客:https://blog.trumeet.top/2017/07/29/begin-dir/
(顶部图片:atony)

初衷

开发它的初心,还要从一次随意浏览手机开始说起。

某一天,我浏览手机里的文件,发现存储卡里面有许多APP乱创建的内容,它们肆无忌惮地把自己的 缓存日志 甚至 广告用户标识 存储在用户的 SD 卡里面。这也就像你的电脑硬盘里本应该是放你的文档、照片的地方,却杂乱无章地堆放了各种垃圾、小广告 还有你的隐私。甚至有些 APP 把临时图片/视频也丢进存储卡,还不忘及时删除或者加上 .nomedia 文件,这就导致我的 Google 相册 总提示我 要不要备份xx缓存目录.. 我很生气,这是我的个人目录,你们这样子随意丢垃圾肯定是不规范的。

Android 目录规范

Android 文件系统有如下目录区分:

  • 私有目录(内部)

    位于 /data/data/<包名>/ 下,存放应用的私有内容,其他应用没有授权是无法访问的。它被设计为 私有,也就是说 一般不和其他人共享,比较私密的内容,用户需要访问也需要 ROOT

    在这个目录中,我们通常这样安排,如果你去随意打开一个应用的私有目录,它一般也是这样的:

    cache :缓存。里面的文件大小会在 应用详情 -> 缓存大小 里面显示,用户可以通过 清除缓存 删掉它的内容,所以不能放如 设置 等重要内容。

    databases: 数据库目录,里面存放数据库。

    files : 文件目录,随意安排。

    shared_prefs : 设置(SP)目录。

    以上是常用的目录形式,当然,应用不按照规定也无伤大雅。因为这是放在私有目录中的,其他人(包括用户)都是无法访问的。

  • 私有目录(外部)

    位于 SD卡/Android/data/<包名>/ 下,由于是 外部,就放在 SD 卡里,用户可以访问。自身程序可以无需存储权限访问,其他应用或用户需要存储卡权限。

    由于任何人都可以访问,它一般放置一些不太重要、不太保密的内容。里面一般有:

    files : 同上面 files

    cache : 同上面 cache

不规范的猥琐做法

也就是说,应用如果要存放缓存、广告、日志 都可以无需存储权限,放进自身目录,既保护了数据安全、方便系统统一管理(如用户 清除缓存),还保持存储卡简洁。最重要的,还能无需存储权限。但是就有一些应用,不知道是开发人员吔屎了、应用间分享数据(可以用 FileProvider)、需要应用间分享用户ID(非常恶心的做法,详见下文),还是怎么着.. 不管怎么说,他们都带来了很多副作用。

插话:应用间分享用户ID

许多流氓软件都为了统计或者追踪用户,把自己获取到的用户硬件ID(隐私信息,如 IMEI、Mac地址) 存放到存储卡,多个应用共享。比如说,有 10 个应用带有XX会读取隐私的SDK,它们只要有一个获取了手机权限,就会把拿到的隐私存到存储卡,这样其他9个只需存储权限就可以获取到用户ID,从而追踪用户、共享情报了。这是非常侵害用户隐私的行为,因为这个ID是终身的,和硬件绑定的,且唯一的。有一次,我在存储卡根目录发现了一个叫 .imei 的文件,打开看里面写着一串东西,应该就是某毒瘤获取到的隐私(IMEI)吧。

不忍受,不认怼

见过一句话:

要么忍受,要么改变。

作为强迫症,我无法忍受自己的手机被肆意丢垃圾。我想起了酷安常见的一种拦截创建目录的方法:使用同名文件替换文件夹。这是由于 Unix 文件系统所致,替换后再操作会抛出 Not a dictionary 异常,这也就阻止瞎**创建了。Dir 有了雏形——专治随意创建。 Dir 也就是 目录 的简写(搞过 CMD 的童鞋应该知道)。

还有一些原因

还有一些原因,让我上了 Dir 的大船:

  • 市面上某些垃圾清理大师 广告太多,见过酷安某评论,清理完弹出女尸广告。我想找一款 简单,无杂质 的清理。
  • 还有些比较良心的清理需要 ROOT。
  • 大多数清理工具对小众APP、个人作品支持较差。

为此,Dir 基本已定型,可以开始开发了。

让我们开始吧

(原谅这节没写多少东西,因为许多 Bug 修完就忘了 ><)

规则的概念

由于 Dir 不是针对规范路径的清理,也就无法根据通配符、表达式等方式进行匹配垃圾。所以我想到了 规则数据库 的方式,由客户端下载安装最新云端规则,然后根据规则进行清理。每一条规则有一个路径,对应一个APP,一个标题,还有其他属性。

设计 APP

有了目标,我开始开发 Dir。最初就准备做一个 Activity,两个卡片——同步规则扫描。但最后,放弃了这个想法。

很快地,第一个 Beta 发布了。我在酷安邀请大家来参与公测,测试中,也发现了许多问题。

逐一修复后,觉得差不多了,便发布了正式版。反响很好,用户都表示 【神器】.. 也鼓励我继续开发它。

人多力量大。后来,我还加入了 规则贡献 等功能,通过给我提交垃圾文件规则,可以拿到完整版的兑换码,鼓励大家一起来建设这个项目。

许多用户反馈 界面太丑,我在5月份更新了 UI,全面的 Material 风格,让 Dir 用着更舒服..

许多热心用户来反馈问题,更有帮我 设计、画图、制作官网的热心基佬,他们很大地帮助了 Dir 的进步。

以下是我遇到的一些问题:

第一个问题:同步规则

如何同步?由于我不懂数据库,最初,我是每次同步时删除所有本地规则,然后再下载、保存.. 后来发布一段时间,觉得这样太慢。所以换成了 增量 的方案,先将本地规则路径存入 Set,然后在下载云端数据后每次保存前使用 contains 判断是否本地已有,如果有就跳过。这样大幅度提高了效率。

在这样发布一段时间后,又遇到了新的问题:

本地重复。由于规则没有一个固定格式,就导致一旦云端的路径修改(ABC 变成了 /ABC),实际效果相同,但是在contains 的时候就被认为两条,最终多次存储,导致重复。最终,我将每条路径都进行了处理,统一为 /XXX 的形式,保证了本地无重复。

本地现有规则不会更新 如果某规则在云端进行了更新(如标题变更),本地在判断时就会跳过,从而不会更新。为此,我更换了思路,使用SQL的 unique 功能,然后每次不进行本地判断,使用目录作为唯一列,直接存储。这样就会在本地已有这个路径的时候更新这条规则的详情,从而不创建新的项。这样做好处就在于解决了这两个问题,但是速度会变慢。

规则太少

最初只有几十条规则,有些热心用户邮件发来了一些,我需要每次都手动加入后台,数量少还很累。于是,用户贡献规则 的想法便萌生了。起初,我准备允许用户 提交修改下架 这三个操作,但是觉得工作量太大,最终只保留了 提交,用户手机上编辑规则后,提交管理员审核,随后再存入数据库。最终规则已过千条,支持许多软件。

后端程序

Telegram 群里大佬说,要尽可能地少把数据放到客户端。所以按照正常做法,规则提交等功能都是调用后台程序完成的。最初为了图省事,直接用的 LeanCloud 云函数(如同 FireBase Function),但简直天价,最低 6RMB/天,价格感人。然后,我借着组VPS的机会自己琢磨了后端,写了 RestFul API (也没有读过什么规范,反正自己够用就行 大雾),这样就能节省很多开支,而且程序完全由自己做主,自由、安全。

详见:https://blog.trumeet.top/2017/06/14/webservlet-jetty-appserver/

结语和感谢

开发中还遇到了许多问题,我都在尝试一一解决,在这个项目中,我也涨了不少姿势。这个项目也受到了大家的好评。开发它7个月了,我没有停下,努力把它做得更好,回报各位的支持。

以下是 Dir 比较重要版本的截图和历史,留作纪念:

  • 1.0 Beta 最初版 (1月12日)

    1.0.png
    1.0.png
    1.0-1.png
    1.0-1.png
  • 1.5 第一个正式版(1月18日)

    界面和最初一样

  • 规则提交工具 发布首个测试版,开始接受贡献规则(4月17日)

  • v1.31_build38-beta 界面大改,全面 Material 设计 (5月1日)

    1.31.png
    1.31.png
    1.31-1.png
    1.31-1.png
    1.31-2.png
    1.31-2.png

非常感谢这个项目,让我学到了很多东西,也感谢所有为Dir做出贡献的人,它仍在继续,会做得更好!


硬广时间:文章看完了,带走一只Dir (这个主页也是热心用户 neoFelhz 帮忙设计的 ><)