![]()
編注:本期內容為少數派 Matrix 社區應用自薦文章合集。文章代表作者個人觀點,作者與文中產品有直接的利益相關(開發者、自家產品等),少數派僅對標題和排版略作修改。
本期目錄
ShotClean:Android 自動化管理截圖
?? Pixel Telo:給「類原生」用戶的來電攔截工具
Memosly:Memos 第三方 Android 原生客戶端
![]()
ShotClean
? 燒餅 | Android | 應用下載
裝上它、然后忘掉它:用 ShotClean 自動化管理截圖
▍為什么我要做這個應用
得益于高效優秀的圖像分類模型,手機相冊在 GPT 和大模型流行起來之前,就已經具備了讓 AI 按旅行、人像、寵物類別自動整理,用關鍵詞快速搜索出二維碼、賬單、甚至特定菜肴等分類和檢索特性。
但很多社交媒體應用的圖片選擇器,往往會把照片、「屏幕截圖」以及其他應用保存的圖片混合在同一條時間線上供你選擇,這當中又以「屏幕截圖」最為煩人:它們常作為臨時分享的內容,例如文章片段、點餐訂單、地圖導航、軟件 Bug 截圖等……我們并不會多次使用,所以過了三五天,這些截圖就會變成相冊里的「噪聲」。
大多數人應對這些「噪聲」的方式是攢夠了再清或者干脆不管,我甚至聽說有人在漫長的飛行時間中無聊沒事干也會清理相冊來打發時間。在開發這個應用之前我也是干脆不管的那群人,如果某天發現存儲塞滿了,我才會試著刪截圖看看能騰出多少空間來。
但現在有了 ShotClean,混亂的相冊、無用的截圖和存儲告急亡羊補牢的體驗,從此都可以消失不見。
▍給你的截圖「搬個家」
ShotClean 是一款 Android 截圖整理工具,它做的事情很簡單:把截圖從你的系統相冊里「搬走」,放到一個你指定好的獨立目錄中「歸檔」。如此一來讓相冊恢復清爽。在設定的保留期之后,ShotClean 才會自動清理掉歸檔區里的截圖。
「隱藏」和「刪除」是兩種不同的處理方式,ShotClean 把兩者結合起來作為「歸檔」——截圖離開了系統相冊的時間線、也不會出現在第三方應用的圖片選取當中。但這些截圖并沒有消失,它們在你選定的文件夾里暫存,過期之前可以隨時找回來。
我把工作原理總結成了三點:定時自動歸檔、到期提醒與審查、安全歸檔存儲。
![]()
▍整理有序,靈活處理
現代很多 Android 系統截圖交互都會在截圖后彈出一個懸浮預覽,你可以在預覽界面中快速分享到微信、微博或者其它社交通訊軟件,分享完如果可以快速或自動刪除,那截圖清理問題本身其實并不存在,我們本不必再另外安裝清理工具。
但我們都知道 Android 分享界面使用效率實在低下,在 App 圖標海洋快速尋找到目標應用,跳轉到目標應用后還要找到聯系人發送,有時候還可能會被 Android 原生特性「快速分享」糟糕的延遲更新交互干擾一下——至少對于我來說,我是不太愿意使用懸浮預覽截圖里的「分享」功能。截圖完畢后,我只需要切回剛剛的聊天界面,就能快速、準確地發送出去。
![]()
以 Pixel 為例,使用截圖預覽操作中的分享功能后,這張截圖其實并不會被刪除
更重要的是,有時候我們分享完截圖可能并不會再返回到截圖預覽或編輯界面。截圖就這樣留在了相冊里。
在截圖清理的時間窗口上,ShotClean 換了一種節奏,你不需要在分享后馬上就刪除截圖,所有截圖默認保留 30 天,并且剛截好的圖不會被立刻處理,它們放在待歸檔區域內,默認情況下次日深夜才會進入歸檔隊列。歸檔后當截圖真正「過期」時,ShotClean 才會安靜地幫你搬走。
![]()
可以手動長按將特定圖片加入排除范圍
所以如果某張截圖你實在想多留一陣,也可以手動加入「排除名單」,ShotClean 就不會再碰它;覺得某些截圖已經沒用了不想等,也可以直接點「提前執行」立刻歸檔。
▍放心歸檔,也能隨時反悔
點進「歸檔區」,被搬走的截圖按日期排列,縮略圖一目了然。這些截圖已經從系統相冊里移除了——打開 Google 相冊或者系統圖庫不會再看到它們——但它們還在手機里,只是換了個地方。
歸檔后的截圖保存在你自己選定的外部目錄中,不依賴 ShotClean 的私有存儲。也就是說,即使卸載了這個 App,歸檔過的文件依然存在,不會因為 App 本身的變化而丟失。在歸檔區里,你可以恢復任意截圖恢復(放回系統相冊)或永久刪除。如果歸檔后突然想起某張截圖還有用,幾秒鐘就能找回來。
![]()
▍一目了然,但也可以裝完即忘
ShotClean 首頁直接把幾個核心數字擺出來:待歸檔數量、歸檔區數量、已排除數量、已發現截圖總數、可釋放空間大小,底部還有「已清理」和「最近動作」的入口。
同時也顯示權限授予狀態——媒體訪問、媒體管理、通知權限是否已授權一目了然,首次設置時按提示逐項授權,之后就可以讓它按天自動運行了。
![]()
主頁界面
▍讓人安心的小設計
用自動化工具管理文件,多少會有點不踏實,考慮到可靠性我加了一些小設計:
每次歸檔完成后,通知欄會彈出提示,比如「有 21 張截圖已歸檔,點擊打開歸檔區,快速恢復或刪除」。不需要打開 App 也能知道剛剛發生了什么。
歸檔前會先復制再移除,而不是直接刪除,即使中途意外中斷,原文件也不會丟。
![]()
歸檔結果通知
歸檔后的截圖還有一段保存期(默認 30 天后徹底刪除),到期前同樣會有通知提醒,讓你有機會再看一眼。如果 30 天太短,可以在設置里調整至多 60 天;如果你覺得太長,也可以調整至最短 7 天。
除此以外,設置內還增加了一個日志功能,讓你知道 ShotClean 在什么時間點干了什么事情。
▍適合誰、不適合誰
截圖量比較大、又不想靠「每周手動清理相冊」來維持秩序的人,應該會覺得它有用。如果你打開相冊、圖片選擇器時只想看到照片和視頻,它能幫你把截圖這塊理清楚。
但它專注于截圖管理這一個場景,不是大而全的文件清理工具,清理緩存、管理下載文件這些它幫不上忙。
ShotClean 現已上線 Google Play應用商店,歡迎下載體驗~
▍寫在最后
截圖作為一種「臨時性內容」,一直有點尷尬——不值得精心管理,但也不該被粗暴刪除,大多數相冊工具也沒有專門對它做什么。ShotClean 的思路是幫它找個合適的落腳點:離開相冊的時間線,但還在你能找到的地方。
![]()
Pixel Telo
? Mystery0 | Android | 下載鏈接
給「類原生」用戶的來電攔截工具:Pixel Telo
▍Pixel 用戶的來電攔截問題
在之前,我寫過一篇為了在 Pixel 上優雅地看網速,我讓 Gemini 幫我寫了 90% 的代碼 向大家自薦了我開發的Pixel Meter。在那篇文章里我們聊到過,Pixel 與類原生系統在國內常被稱為「毛坯房」。
如果說 Pixel Meter 解決的是狀態欄的信息焦慮,那么今天我要自薦的新應用 Pixel Telo,解決的則是另一個更讓人頭疼的本地化缺失——來電識別與騷擾攔截。
在這個信息泄露防不勝防的時代,貸款、房產中介、AI 語音推銷的電話總能在你最忙的時候打進來。國內的深度定制 ROM 早已將騷擾攔截做成了系統標配,而 Pixel 雖然有官方的 Screen Call,但在國內由于種種原因基本處于不可用狀態。
老一輩的 Pixel 玩家一定都用過 CC 來電攔截 N+(少數派也曾推薦過)。那是一款真正意義上的神器,它簡單、純粹,陪伴了無數類原生用戶。但遺憾的是,隨著酷安生態的變化和服務器的關停,這款神器如今已無法更新離線數據,甚至連下載都頗為費勁。
每一次接到騷擾電話,都讓我無比懷念 CC。既然找不到好用的替代品,作為獨立開發者,我決定自己動手,在向 CC 致敬的同時,為 Pixel 補齊這最后一塊短板。在某種程度上,你可以將 Pixel Telo 視為 CC 來電攔截精神的繼任者。
▍為現代體驗重新設計
Pixel Telo 的定位很明確:一款專為 Pixel 和類原生系統打造的、極度輕量且隱私優先的來電輔助工具。 相較于老舊的工具或臃腫的互聯網大廠管家,我為它設計了以下核心體驗:
拒絕丑陋懸浮窗:系統級靜默攔截
在國內 App 普遍喜歡用懸浮窗「刷存在感」的今天,Pixel Telo 選擇了克制。它使用了 Android 官方推薦的CallScreeningServiceAPI。這意味著當騷擾電話打進來時,你的屏幕甚至都不會亮起,它會在系統底層直接被靜默掐斷,把清凈還給你的耳朵。
原生撥號盤融合:Directory API
對于那些不確定是否該攔截的電話(比如外賣、快遞),Pixel Telo 同樣不會彈窗。它通過Directory API,將識別到的標簽信息直接注入到系統自帶的 Google 撥號器中。
來電界面的體驗,就像是 Google 官方原生自帶的功能一樣自然。
經典傳承:自定義黑白名單與號段攔截
和 CC 來電攔截一樣,Pixel Telo 同樣支持強大的自定義黑白名單功能。除了云端下發的 38 萬多條基礎騷擾庫,你可以根據自己的需求進行精確號碼匹配,更支持前綴匹配。
煩透了以95或400開頭的營銷號?只需要在 App 中添加一個前綴規則,世界瞬間清凈。
聯網兜底,但不泄露隱私
Pixel Telo 堅持「本地優先」。日常攔截完全依靠本地數據庫,即便斷網也能秒級響應。
同時 App 也預留了聯網查詢的口子。目前由于個人難以申請到優質的商業 API,我借鑒了前輩們的思路實現了一個邏輯:通過靜默請求搜狗搜索,解析搜索結果中的「電話邦」數據來獲取標記。(需要說明的是,這個巧妙的方案并非我的首創,而是社區智慧的結晶)。
在我的實測中,這種方式能非常精準地識別出外賣騎手等動態號碼。當然,所有查詢動作都不涉及你的本地通訊錄,隱私零泄露。
現代化設計與數據備份
作為一款 Pixel 專屬應用,全面適配 Material Design 3 (Monet) 動態取色是必須的,它的界面會隨你的壁紙優雅變色。此外,考慮到未來可能的換機需求(雖然大家換機不頻繁,但有備無患),App 內置了攔截記錄的 ZIP 備份與恢復功能,數據永遠掌握在你自己手里。
![]()
首頁攔截記錄和設置界面
▍AI 再次賦能:Pixel Telo 的誕生
我在上一篇文章中提到過,AI 時代的到來徹底改變了個人開發的門檻。
完成 Pixel Meter 的開發之后,我列出了幾個我想要自己寫 APP 來實現的想法,Pixel Telo 就是其中之一。與之前開發 Pixel Meter 時完全依賴 Antigravity 不同,這一次,我頻繁穿梭在 Gemini 和 Claude Code 之間,我發現 Claude Code 在編碼場景下確實比 Gemini 更勝一籌,因此我決定「壓榨」它們各自的優勢:
構思階段:我依然使用 Gemini 網頁版和我討論 APP 的需求和構思。在這個階段,Gemini 會盡可能地發散思維提出一些有趣的建議或者方案,在討論得差不多之后,我讓 Gemini 輸出了一份 PRD 文檔。
基建搭建:我先使用 Android Studio 創建了一個空項目,然后在 Claude Code 中打開這個項目,讓 Claude 按照 PRD 文檔幫我執行一些基礎的初始化和大部分代碼的生成,在這個過程中我會問它有沒有理解項目的需求,如果沒有理解以咨詢的形式向我提問。
功能打磨:接下來繼續在終端使用 Claude Code,讓它幫我繼續完善剩下的功能細節,比如對接網絡搜索的解析、數據庫升級的邏輯等等,涉及到調試的步驟都切換到 Android Studio 進行編譯和運行。
UI 設計:在設計圖標的時候,我最初嘗試直接在 Antigravity 中讓 Gemini 生成圖片,但效果相較于網頁版很差。于是我果斷切回 Gemini 網頁版,讓它幫我修改 SVG 圖標,甚至讓它給我配色建議。
為了讓大家更直觀地了解這種「多模型協作」的模式,我畫了一張簡單的流程圖:
![]()
一點個人的 AI 結對編程感悟:在我的體驗中,Claude Code 適合做編碼工作,而 Gemini 適合做秘書。
Claude Code 生成的代碼會很完善,基本上不會留下一些Stub或者TODO標識讓你去補全。而 Gemini 在面對復雜需求時,經常會寫一些空實現,然后留個TODO讓你自己寫(這也許是 Claude Code 擁有superpower skills直接讀寫文件的功勞)。
但是,到了實現 UI 界面、生成圖片場景,或者需要提供設計建議時,Claude Code 就明顯不如 Gemini 聰明了。甚至在 App 圖標的配色上,我都在讓 Gemini 給我出謀劃策。
▍如何獲取
為了保證離線數據庫的更新,我部署了一個服務端,未來也規劃允許高級用戶自建服務端的功能,避免重蹈舊時代工具停服的覆轍。
Pixel Telo 現已正式上架 Google Play,你可以直接搜索 Pixel Telo 下載。
同時,我也建立了一個公開的 GitHub 倉庫 用于發布 APK 安裝包以及接收大家的 Issue 反饋。如果你也是國內的 Pixel 或類原生系統用戶,正被騷擾電話困擾,不妨試試這款向經典致敬、又融入了現代設計的工具。
歡迎在評論區或 GitHub 留下你的建議,我會持續優化它。
![]()
Memosly
? whtis | Android | 下載地址
Memosly — 我給 Memos 寫了一個 Android 原生客戶端
▍為什么要造這個輪子
我用 Memos 幾年了。
對于熟悉自托管生態的人來說,Memos 不需要過多介紹——一個開源的、可自部署的輕量備忘錄服務,數據完全掌握在自己手里,沒有賬號體系綁定,沒有云端鎖定,Docker 一行命令就能跑起來。它解決的問題很簡單:快速記下腦子里的東西。服務端功能夠用,但是有個問題,更新很快,且不向前兼容,安卓的三方客戶端經常會用不了,需要等待升級。
隨著 AI 能力的升級,我借助 claude code,寫了一個新的安卓客戶端,項目叫Memosly,已經開源在 GitHub 上,目前也已經上架 Google Play 內測。
▍核心功能一覽 完整的備忘錄管理
作為 Memos 客戶端,基礎功能必須穩:
新建、編輯、歸檔、刪除
可見性設置(公開 / 保護 / 私密)
+ 快速篩選全文搜索
這些在 Web 端能做的事,Memosly 里都能做,而且因為是原生 App,操作體感明顯更流暢。
![]()
備忘錄首頁
Markdown 編輯器
編輯器支持完整的 Markdown 語法——標題、列表、代碼塊、表格、任務清單。底部有一排格式工具欄,不用記語法也能快速排版。
![]()
Markdown 編輯
多媒體附件
圖片、視頻、文件都能上傳。圖片會在備忘卡片里內聯顯示,視頻支持全屏播放,其他文件類型以附件芯片形式展示,點擊即可下載。
編輯已有備忘時,之前上傳的附件也會正確顯示在預覽條里——這個看似理所當然的功能,實現起來其實踩了不少坑。
![]()
詳情頁
社區互動
如果你和朋友共用一個 Memos 實例,「發現」頁面可以瀏覽所有人的公開備忘。支持 Emoji 表情回應和評論。輕量級的社交功能,不喧賓奪主。
![]()
發現頁
多種登錄方式
支持兩種登錄方式:
- 用戶名密碼登錄:最傳統的方式
- Access Token 登錄:適合 OIDC/SSO 用戶,在 Memos Web 端生成一個 Token 就能登錄
![]()
登錄頁可選版本
▍真正的難點:三版本兼容
如果你關注 Memos 的開發,你會知道它的 API 在版本間變化很大。這里「很大」不是客氣話——我列幾個例子:
![]()
連登錄流程都完全不一樣:v0.24 用 Query 參數 + JWT Cookie,v0.25 用 JSON body + Session Cookie,v0.26 又回到了 JSON body 但改用 Response body 里的 Access Token。
Memosly 同時兼容這三個版本。登錄時選擇服務器版本,之后所有 API 調用都會自動走對應版本的分支邏輯。不管你的服務端停留在哪個版本,裝上就能用。
這也是這個項目最花時間的部分——功能開發可能只占 40%,版本兼容和邊界情況處理占了 60%。
▍一些有趣的技術細節
既然是投稿少數派,聊點實現層面的東西,可能對同樣在做 Android 開發或對接 REST API 的朋友有參考價值。
gRPC-gateway 的 base64 陷阱
Memos 的后端用的是 gRPC,通過 gRPC-gateway 暴露 REST API。一個容易踩的坑是:文件上傳不是 multipart form data,而是 JSON body,文件內容用 base64 編碼。因為 gRPC-gateway 會把 protobuf 的bytes字段自動映射成 base64 字符串。
如果你按照常規思路用@Multipart去上傳,服務端會直接返回 400。
Android 進程死亡與 Token 恢復
Android 系統會在內存緊張時殺掉后臺進程,但 Navigation 組件會恢復回退棧。這導致一個隱蔽的 Bug:App 被殺后重新打開,直接跳到主頁面(跳過了登錄頁),但內存里的 Token 已經丟了,所有 API 請求都會 401。
解決方案:Token 管理器在構造函數里就從持久化存儲恢復 Token,而不是等到某個頁面觸發時才讀取。這個模式適用于所有「內存單例 + 認證狀態」的場景。
視頻附件不走 Markdown
Memos 的 Web 端對圖片和視頻的處理方式不同:圖片用嵌入 Markdown 內容,但視頻不嵌入Markdown,而是通過獨立的資源關聯 API 綁定。
這意味著你不能用正則從 Markdown 內容里解析出視頻附件——必須用 API 返回的resources列表。這個坑我踩了一次,希望后來人能繞過去。
▍體驗與設計
- Material You 設計語言:支持 Android 12+ 的動態取色
- 深色模式:跟隨系統
- 兩種導航風格:底部標簽欄或 側邊抽屜,設置里切換
- 中英雙語:跟隨系統或手動指定
下拉刷新、分頁加載、相對時間戳
沒有花哨的動效,就是一個用起來順手的工具 App。
![]()
![]()
▍下載與參與
下載安裝:
Google Play(內測中,正在湊人數滿足上架條件)
GitHub Releases(APK 直接下載)
加入內測:
如果你愿意幫助我盡快上架,可以私聊我你的 gmail,不甚感激!
反饋問題:
GitHub Issues
GitHub Discussions
反饋時請注明你的 Memos 服務端版本(v0.24 / v0.25 / v0.26),這對排查問題幫助很大。
源碼:github.com/whtis/memosly-android
▍寫在最后
做這個 App 的初衷很簡單:自己用 Memos,手機上需要一個好用的客戶端,沒找到合適的,就寫了一個。開源出來,是因為 Memos 社區本身就是開源精神的產物,我也想把這份便利分享給更多人。
如果你也是 Memos 用戶,歡迎試試 Memosly。用得順手的話,去 GitHub 點個 Star 就是最好的支持。
![]()
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.