国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

Android 開(kāi)發(fā)者們最近自薦了這 3 個(gè)好用的 App

0
分享至


編注:本期內(nèi)容為少數(shù)派 Matrix 社區(qū)應(yīng)用自薦文章合集。文章代表作者個(gè)人觀點(diǎn),作者與文中產(chǎn)品有直接的利益相關(guān)(開(kāi)發(fā)者、自家產(chǎn)品等),少數(shù)派僅對(duì)標(biāo)題和排版略作修改。

本期目錄

ShotClean:Android 自動(dòng)化管理截圖

?? Pixel Telo:給「類原生」用戶的來(lái)電攔截工具

Memosly:Memos 第三方 Android 原生客戶端


ShotClean

? 燒餅 | Android | 應(yīng)用下載

裝上它、然后忘掉它:用 ShotClean 自動(dòng)化管理截圖

▍為什么我要做這個(gè)應(yīng)用

得益于高效優(yōu)秀的圖像分類模型,手機(jī)相冊(cè)在 GPT 和大模型流行起來(lái)之前,就已經(jīng)具備了讓 AI 按旅行、人像、寵物類別自動(dòng)整理,用關(guān)鍵詞快速搜索出二維碼、賬單、甚至特定菜肴等分類和檢索特性。

但很多社交媒體應(yīng)用的圖片選擇器,往往會(huì)把照片、「屏幕截圖」以及其他應(yīng)用保存的圖片混合在同一條時(shí)間線上供你選擇,這當(dāng)中又以「屏幕截圖」最為煩人:它們常作為臨時(shí)分享的內(nèi)容,例如文章片段、點(diǎn)餐訂單、地圖導(dǎo)航、軟件 Bug 截圖等……我們并不會(huì)多次使用,所以過(guò)了三五天,這些截圖就會(huì)變成相冊(cè)里的「噪聲」。

大多數(shù)人應(yīng)對(duì)這些「噪聲」的方式是攢夠了再清或者干脆不管,我甚至聽(tīng)說(shuō)有人在漫長(zhǎng)的飛行時(shí)間中無(wú)聊沒(méi)事干也會(huì)清理相冊(cè)來(lái)打發(fā)時(shí)間。在開(kāi)發(fā)這個(gè)應(yīng)用之前我也是干脆不管的那群人,如果某天發(fā)現(xiàn)存儲(chǔ)塞滿了,我才會(huì)試著刪截圖看看能騰出多少空間來(lái)。

但現(xiàn)在有了 ShotClean,混亂的相冊(cè)、無(wú)用的截圖和存儲(chǔ)告急亡羊補(bǔ)牢的體驗(yàn),從此都可以消失不見(jiàn)。

▍給你的截圖「搬個(gè)家」

ShotClean 是一款 Android 截圖整理工具,它做的事情很簡(jiǎn)單:把截圖從你的系統(tǒng)相冊(cè)里「搬走」,放到一個(gè)你指定好的獨(dú)立目錄中「歸檔」。如此一來(lái)讓相冊(cè)恢復(fù)清爽。在設(shè)定的保留期之后,ShotClean 才會(huì)自動(dòng)清理掉歸檔區(qū)里的截圖。

「隱藏」和「刪除」是兩種不同的處理方式,ShotClean 把兩者結(jié)合起來(lái)作為「歸檔」——截圖離開(kāi)了系統(tǒng)相冊(cè)的時(shí)間線、也不會(huì)出現(xiàn)在第三方應(yīng)用的圖片選取當(dāng)中。但這些截圖并沒(méi)有消失,它們?cè)谀氵x定的文件夾里暫存,過(guò)期之前可以隨時(shí)找回來(lái)。

我把工作原理總結(jié)成了三點(diǎn):定時(shí)自動(dòng)歸檔、到期提醒與審查、安全歸檔存儲(chǔ)。


▍整理有序,靈活處理

現(xiàn)代很多 Android 系統(tǒng)截圖交互都會(huì)在截圖后彈出一個(gè)懸浮預(yù)覽,你可以在預(yù)覽界面中快速分享到微信、微博或者其它社交通訊軟件,分享完如果可以快速或自動(dòng)刪除,那截圖清理問(wèn)題本身其實(shí)并不存在,我們本不必再另外安裝清理工具。

但我們都知道 Android 分享界面使用效率實(shí)在低下,在 App 圖標(biāo)海洋快速尋找到目標(biāo)應(yīng)用,跳轉(zhuǎn)到目標(biāo)應(yīng)用后還要找到聯(lián)系人發(fā)送,有時(shí)候還可能會(huì)被 Android 原生特性「快速分享」糟糕的延遲更新交互干擾一下——至少對(duì)于我來(lái)說(shuō),我是不太愿意使用懸浮預(yù)覽截圖里的「分享」功能。截圖完畢后,我只需要切回剛剛的聊天界面,就能快速、準(zhǔn)確地發(fā)送出去。


以 Pixel 為例,使用截圖預(yù)覽操作中的分享功能后,這張截圖其實(shí)并不會(huì)被刪除

更重要的是,有時(shí)候我們分享完截圖可能并不會(huì)再返回到截圖預(yù)覽或編輯界面。截圖就這樣留在了相冊(cè)里。

在截圖清理的時(shí)間窗口上,ShotClean 換了一種節(jié)奏,你不需要在分享后馬上就刪除截圖,所有截圖默認(rèn)保留 30 天,并且剛截好的圖不會(huì)被立刻處理,它們放在待歸檔區(qū)域內(nèi),默認(rèn)情況下次日深夜才會(huì)進(jìn)入歸檔隊(duì)列。歸檔后當(dāng)截圖真正「過(guò)期」時(shí),ShotClean 才會(huì)安靜地幫你搬走。


可以手動(dòng)長(zhǎng)按將特定圖片加入排除范圍

所以如果某張截圖你實(shí)在想多留一陣,也可以手動(dòng)加入「排除名單」,ShotClean 就不會(huì)再碰它;覺(jué)得某些截圖已經(jīng)沒(méi)用了不想等,也可以直接點(diǎn)「提前執(zhí)行」立刻歸檔。

▍放心歸檔,也能隨時(shí)反悔

點(diǎn)進(jìn)「歸檔區(qū)」,被搬走的截圖按日期排列,縮略圖一目了然。這些截圖已經(jīng)從系統(tǒng)相冊(cè)里移除了——打開(kāi) Google 相冊(cè)或者系統(tǒng)圖庫(kù)不會(huì)再看到它們——但它們還在手機(jī)里,只是換了個(gè)地方。

歸檔后的截圖保存在你自己選定的外部目錄中,不依賴 ShotClean 的私有存儲(chǔ)。也就是說(shuō),即使卸載了這個(gè) App,歸檔過(guò)的文件依然存在,不會(huì)因?yàn)?App 本身的變化而丟失。在歸檔區(qū)里,你可以恢復(fù)任意截圖恢復(fù)(放回系統(tǒng)相冊(cè))或永久刪除。如果歸檔后突然想起某張截圖還有用,幾秒鐘就能找回來(lái)。


▍一目了然,但也可以裝完即忘

ShotClean 首頁(yè)直接把幾個(gè)核心數(shù)字?jǐn)[出來(lái):待歸檔數(shù)量、歸檔區(qū)數(shù)量、已排除數(shù)量、已發(fā)現(xiàn)截圖總數(shù)、可釋放空間大小,底部還有「已清理」和「最近動(dòng)作」的入口。

同時(shí)也顯示權(quán)限授予狀態(tài)——媒體訪問(wèn)、媒體管理、通知權(quán)限是否已授權(quán)一目了然,首次設(shè)置時(shí)按提示逐項(xiàng)授權(quán),之后就可以讓它按天自動(dòng)運(yùn)行了。


主頁(yè)界面

▍讓人安心的小設(shè)計(jì)

用自動(dòng)化工具管理文件,多少會(huì)有點(diǎn)不踏實(shí),考慮到可靠性我加了一些小設(shè)計(jì):

每次歸檔完成后,通知欄會(huì)彈出提示,比如「有 21 張截圖已歸檔,點(diǎn)擊打開(kāi)歸檔區(qū),快速恢復(fù)或刪除」。不需要打開(kāi) App 也能知道剛剛發(fā)生了什么。

歸檔前會(huì)先復(fù)制再移除,而不是直接刪除,即使中途意外中斷,原文件也不會(huì)丟。


歸檔結(jié)果通知

歸檔后的截圖還有一段保存期(默認(rèn) 30 天后徹底刪除),到期前同樣會(huì)有通知提醒,讓你有機(jī)會(huì)再看一眼。如果 30 天太短,可以在設(shè)置里調(diào)整至多 60 天;如果你覺(jué)得太長(zhǎng),也可以調(diào)整至最短 7 天。

除此以外,設(shè)置內(nèi)還增加了一個(gè)日志功能,讓你知道 ShotClean 在什么時(shí)間點(diǎn)干了什么事情。

▍適合誰(shuí)、不適合誰(shuí)

截圖量比較大、又不想靠「每周手動(dòng)清理相冊(cè)」來(lái)維持秩序的人,應(yīng)該會(huì)覺(jué)得它有用。如果你打開(kāi)相冊(cè)、圖片選擇器時(shí)只想看到照片和視頻,它能幫你把截圖這塊理清楚。

但它專注于截圖管理這一個(gè)場(chǎng)景,不是大而全的文件清理工具,清理緩存、管理下載文件這些它幫不上忙。

ShotClean 現(xiàn)已上線 Google Play應(yīng)用商店,歡迎下載體驗(yàn)~

寫(xiě)在最后

截圖作為一種「臨時(shí)性內(nèi)容」,一直有點(diǎn)尷尬——不值得精心管理,但也不該被粗暴刪除,大多數(shù)相冊(cè)工具也沒(méi)有專門對(duì)它做什么。ShotClean 的思路是幫它找個(gè)合適的落腳點(diǎn):離開(kāi)相冊(cè)的時(shí)間線,但還在你能找到的地方。


Pixel Telo

? Mystery0 | Android | 下載鏈接

給「類原生」用戶的來(lái)電攔截工具:Pixel Telo

Pixel 用戶的來(lái)電攔截問(wèn)題

在之前,我寫(xiě)過(guò)一篇為了在 Pixel 上優(yōu)雅地看網(wǎng)速,我讓 Gemini 幫我寫(xiě)了 90% 的代碼 向大家自薦了我開(kāi)發(fā)的Pixel Meter。在那篇文章里我們聊到過(guò),Pixel 與類原生系統(tǒng)在國(guó)內(nèi)常被稱為「毛坯房」。

如果說(shuō) Pixel Meter 解決的是狀態(tài)欄的信息焦慮,那么今天我要自薦的新應(yīng)用 Pixel Telo,解決的則是另一個(gè)更讓人頭疼的本地化缺失——來(lái)電識(shí)別與騷擾攔截。

在這個(gè)信息泄露防不勝防的時(shí)代,貸款、房產(chǎn)中介、AI 語(yǔ)音推銷的電話總能在你最忙的時(shí)候打進(jìn)來(lái)。國(guó)內(nèi)的深度定制 ROM 早已將騷擾攔截做成了系統(tǒng)標(biāo)配,而 Pixel 雖然有官方的 Screen Call,但在國(guó)內(nèi)由于種種原因基本處于不可用狀態(tài)。

老一輩的 Pixel 玩家一定都用過(guò) CC 來(lái)電攔截 N+(少數(shù)派也曾推薦過(guò))。那是一款真正意義上的神器,它簡(jiǎn)單、純粹,陪伴了無(wú)數(shù)類原生用戶。但遺憾的是,隨著酷安生態(tài)的變化和服務(wù)器的關(guān)停,這款神器如今已無(wú)法更新離線數(shù)據(jù),甚至連下載都頗為費(fèi)勁。

每一次接到騷擾電話,都讓我無(wú)比懷念 CC。既然找不到好用的替代品,作為獨(dú)立開(kāi)發(fā)者,我決定自己動(dòng)手,在向 CC 致敬的同時(shí),為 Pixel 補(bǔ)齊這最后一塊短板。在某種程度上,你可以將 Pixel Telo 視為 CC 來(lái)電攔截精神的繼任者。

▍為現(xiàn)代體驗(yàn)重新設(shè)計(jì)

Pixel Telo 的定位很明確:一款專為 Pixel 和類原生系統(tǒng)打造的、極度輕量且隱私優(yōu)先的來(lái)電輔助工具。 相較于老舊的工具或臃腫的互聯(lián)網(wǎng)大廠管家,我為它設(shè)計(jì)了以下核心體驗(yàn):

拒絕丑陋懸浮窗:系統(tǒng)級(jí)靜默攔截

在國(guó)內(nèi) App 普遍喜歡用懸浮窗「刷存在感」的今天,Pixel Telo 選擇了克制。它使用了 Android 官方推薦的CallScreeningServiceAPI。這意味著當(dāng)騷擾電話打進(jìn)來(lái)時(shí),你的屏幕甚至都不會(huì)亮起,它會(huì)在系統(tǒng)底層直接被靜默掐斷,把清凈還給你的耳朵。

原生撥號(hào)盤(pán)融合:Directory API

對(duì)于那些不確定是否該攔截的電話(比如外賣、快遞),Pixel Telo 同樣不會(huì)彈窗。它通過(guò)Directory API,將識(shí)別到的標(biāo)簽信息直接注入到系統(tǒng)自帶的 Google 撥號(hào)器中。

來(lái)電界面的體驗(yàn),就像是 Google 官方原生自帶的功能一樣自然。

經(jīng)典傳承:自定義黑白名單與號(hào)段攔截

和 CC 來(lái)電攔截一樣,Pixel Telo 同樣支持強(qiáng)大的自定義黑白名單功能。除了云端下發(fā)的 38 萬(wàn)多條基礎(chǔ)騷擾庫(kù),你可以根據(jù)自己的需求進(jìn)行精確號(hào)碼匹配,更支持前綴匹配。

煩透了以95400開(kāi)頭的營(yíng)銷號(hào)?只需要在 App 中添加一個(gè)前綴規(guī)則,世界瞬間清凈。

聯(lián)網(wǎng)兜底,但不泄露隱私

Pixel Telo 堅(jiān)持「本地優(yōu)先」。日常攔截完全依靠本地?cái)?shù)據(jù)庫(kù),即便斷網(wǎng)也能秒級(jí)響應(yīng)。

同時(shí) App 也預(yù)留了聯(lián)網(wǎng)查詢的口子。目前由于個(gè)人難以申請(qǐng)到優(yōu)質(zhì)的商業(yè) API,我借鑒了前輩們的思路實(shí)現(xiàn)了一個(gè)邏輯:通過(guò)靜默請(qǐng)求搜狗搜索,解析搜索結(jié)果中的「電話邦」數(shù)據(jù)來(lái)獲取標(biāo)記。(需要說(shuō)明的是,這個(gè)巧妙的方案并非我的首創(chuàng),而是社區(qū)智慧的結(jié)晶)。

在我的實(shí)測(cè)中,這種方式能非常精準(zhǔn)地識(shí)別出外賣騎手等動(dòng)態(tài)號(hào)碼。當(dāng)然,所有查詢動(dòng)作都不涉及你的本地通訊錄,隱私零泄露。

現(xiàn)代化設(shè)計(jì)與數(shù)據(jù)備份

作為一款 Pixel 專屬應(yīng)用,全面適配 Material Design 3 (Monet) 動(dòng)態(tài)取色是必須的,它的界面會(huì)隨你的壁紙優(yōu)雅變色。此外,考慮到未來(lái)可能的換機(jī)需求(雖然大家換機(jī)不頻繁,但有備無(wú)患),App 內(nèi)置了攔截記錄的 ZIP 備份與恢復(fù)功能,數(shù)據(jù)永遠(yuǎn)掌握在你自己手里。


首頁(yè)攔截記錄和設(shè)置界面

▍AI 再次賦能:Pixel Telo 的誕生

我在上一篇文章中提到過(guò),AI 時(shí)代的到來(lái)徹底改變了個(gè)人開(kāi)發(fā)的門檻。

完成 Pixel Meter 的開(kāi)發(fā)之后,我列出了幾個(gè)我想要自己寫(xiě) APP 來(lái)實(shí)現(xiàn)的想法,Pixel Telo 就是其中之一。與之前開(kāi)發(fā) Pixel Meter 時(shí)完全依賴 Antigravity 不同,這一次,我頻繁穿梭在 Gemini 和 Claude Code 之間,我發(fā)現(xiàn) Claude Code 在編碼場(chǎng)景下確實(shí)比 Gemini 更勝一籌,因此我決定「壓榨」它們各自的優(yōu)勢(shì):

構(gòu)思階段:我依然使用 Gemini 網(wǎng)頁(yè)版和我討論 APP 的需求和構(gòu)思。在這個(gè)階段,Gemini 會(huì)盡可能地發(fā)散思維提出一些有趣的建議或者方案,在討論得差不多之后,我讓 Gemini 輸出了一份 PRD 文檔。

基建搭建:我先使用 Android Studio 創(chuàng)建了一個(gè)空項(xiàng)目,然后在 Claude Code 中打開(kāi)這個(gè)項(xiàng)目,讓 Claude 按照 PRD 文檔幫我執(zhí)行一些基礎(chǔ)的初始化和大部分代碼的生成,在這個(gè)過(guò)程中我會(huì)問(wèn)它有沒(méi)有理解項(xiàng)目的需求,如果沒(méi)有理解以咨詢的形式向我提問(wèn)。

功能打磨:接下來(lái)繼續(xù)在終端使用 Claude Code,讓它幫我繼續(xù)完善剩下的功能細(xì)節(jié),比如對(duì)接網(wǎng)絡(luò)搜索的解析、數(shù)據(jù)庫(kù)升級(jí)的邏輯等等,涉及到調(diào)試的步驟都切換到 Android Studio 進(jìn)行編譯和運(yùn)行。

UI 設(shè)計(jì):在設(shè)計(jì)圖標(biāo)的時(shí)候,我最初嘗試直接在 Antigravity 中讓 Gemini 生成圖片,但效果相較于網(wǎng)頁(yè)版很差。于是我果斷切回 Gemini 網(wǎng)頁(yè)版,讓它幫我修改 SVG 圖標(biāo),甚至讓它給我配色建議。

為了讓大家更直觀地了解這種「多模型協(xié)作」的模式,我畫(huà)了一張簡(jiǎn)單的流程圖:


一點(diǎn)個(gè)人的 AI 結(jié)對(duì)編程感悟:在我的體驗(yàn)中,Claude Code 適合做編碼工作,而 Gemini 適合做秘書(shū)。

Claude Code 生成的代碼會(huì)很完善,基本上不會(huì)留下一些Stub或者TODO標(biāo)識(shí)讓你去補(bǔ)全。而 Gemini 在面對(duì)復(fù)雜需求時(shí),經(jīng)常會(huì)寫(xiě)一些空實(shí)現(xiàn),然后留個(gè)TODO讓你自己寫(xiě)(這也許是 Claude Code 擁有superpower skills直接讀寫(xiě)文件的功勞)。

但是,到了實(shí)現(xiàn) UI 界面、生成圖片場(chǎng)景,或者需要提供設(shè)計(jì)建議時(shí),Claude Code 就明顯不如 Gemini 聰明了。甚至在 App 圖標(biāo)的配色上,我都在讓 Gemini 給我出謀劃策。

▍如何獲取

為了保證離線數(shù)據(jù)庫(kù)的更新,我部署了一個(gè)服務(wù)端,未來(lái)也規(guī)劃允許高級(jí)用戶自建服務(wù)端的功能,避免重蹈舊時(shí)代工具停服的覆轍。

Pixel Telo 現(xiàn)已正式上架 Google Play,你可以直接搜索 Pixel Telo 下載。

同時(shí),我也建立了一個(gè)公開(kāi)的 GitHub 倉(cāng)庫(kù) 用于發(fā)布 APK 安裝包以及接收大家的 Issue 反饋。如果你也是國(guó)內(nèi)的 Pixel 或類原生系統(tǒng)用戶,正被騷擾電話困擾,不妨試試這款向經(jīng)典致敬、又融入了現(xiàn)代設(shè)計(jì)的工具。

歡迎在評(píng)論區(qū)或 GitHub 留下你的建議,我會(huì)持續(xù)優(yōu)化它。


Memosly

? whtis | Android | 下載地址

Memosly — 我給 Memos 寫(xiě)了一個(gè) Android 原生客戶端

▍為什么要造這個(gè)輪子

我用 Memos 幾年了。

對(duì)于熟悉自托管生態(tài)的人來(lái)說(shuō),Memos 不需要過(guò)多介紹——一個(gè)開(kāi)源的、可自部署的輕量備忘錄服務(wù),數(shù)據(jù)完全掌握在自己手里,沒(méi)有賬號(hào)體系綁定,沒(méi)有云端鎖定,Docker 一行命令就能跑起來(lái)。它解決的問(wèn)題很簡(jiǎn)單:快速記下腦子里的東西。服務(wù)端功能夠用,但是有個(gè)問(wèn)題,更新很快,且不向前兼容,安卓的三方客戶端經(jīng)常會(huì)用不了,需要等待升級(jí)。

隨著 AI 能力的升級(jí),我借助 claude code,寫(xiě)了一個(gè)新的安卓客戶端,項(xiàng)目叫Memosly,已經(jīng)開(kāi)源在 GitHub 上,目前也已經(jīng)上架 Google Play 內(nèi)測(cè)。

▍核心功能一覽 完整的備忘錄管理

作為 Memos 客戶端,基礎(chǔ)功能必須穩(wěn):

  • 新建、編輯、歸檔、刪除

  • 可見(jiàn)性設(shè)置(公開(kāi) / 保護(hù) / 私密)

  • + 快速篩選
  • 全文搜索

這些在 Web 端能做的事,Memosly 里都能做,而且因?yàn)槭窃?App,操作體感明顯更流暢。


備忘錄首頁(yè)

Markdown 編輯器

編輯器支持完整的 Markdown 語(yǔ)法——標(biāo)題、列表、代碼塊、表格、任務(wù)清單。底部有一排格式工具欄,不用記語(yǔ)法也能快速排版。


Markdown 編輯

多媒體附件

圖片、視頻、文件都能上傳。圖片會(huì)在備忘卡片里內(nèi)聯(lián)顯示,視頻支持全屏播放,其他文件類型以附件芯片形式展示,點(diǎn)擊即可下載。

編輯已有備忘時(shí),之前上傳的附件也會(huì)正確顯示在預(yù)覽條里——這個(gè)看似理所當(dāng)然的功能,實(shí)現(xiàn)起來(lái)其實(shí)踩了不少坑。


詳情頁(yè)

社區(qū)互動(dòng)

如果你和朋友共用一個(gè) Memos 實(shí)例,「發(fā)現(xiàn)」頁(yè)面可以瀏覽所有人的公開(kāi)備忘。支持 Emoji 表情回應(yīng)和評(píng)論。輕量級(jí)的社交功能,不喧賓奪主。


發(fā)現(xiàn)頁(yè)

多種登錄方式

支持兩種登錄方式:

  • 用戶名密碼登錄:最傳統(tǒng)的方式
  • Access Token 登錄:適合 OIDC/SSO 用戶,在 Memos Web 端生成一個(gè) Token 就能登錄


登錄頁(yè)可選版本

▍真正的難點(diǎn):三版本兼容

如果你關(guān)注 Memos 的開(kāi)發(fā),你會(huì)知道它的 API 在版本間變化很大。這里「很大」不是客氣話——我列幾個(gè)例子:


連登錄流程都完全不一樣:v0.24 用 Query 參數(shù) + JWT Cookie,v0.25 用 JSON body + Session Cookie,v0.26 又回到了 JSON body 但改用 Response body 里的 Access Token。

Memosly 同時(shí)兼容這三個(gè)版本。登錄時(shí)選擇服務(wù)器版本,之后所有 API 調(diào)用都會(huì)自動(dòng)走對(duì)應(yīng)版本的分支邏輯。不管你的服務(wù)端停留在哪個(gè)版本,裝上就能用。

這也是這個(gè)項(xiàng)目最花時(shí)間的部分——功能開(kāi)發(fā)可能只占 40%,版本兼容和邊界情況處理占了 60%。

▍一些有趣的技術(shù)細(xì)節(jié)

既然是投稿少數(shù)派,聊點(diǎn)實(shí)現(xiàn)層面的東西,可能對(duì)同樣在做 Android 開(kāi)發(fā)或?qū)?REST API 的朋友有參考價(jià)值。

gRPC-gateway 的 base64 陷阱

Memos 的后端用的是 gRPC,通過(guò) gRPC-gateway 暴露 REST API。一個(gè)容易踩的坑是:文件上傳不是 multipart form data,而是 JSON body,文件內(nèi)容用 base64 編碼。因?yàn)?gRPC-gateway 會(huì)把 protobuf 的bytes字段自動(dòng)映射成 base64 字符串。

如果你按照常規(guī)思路用@Multipart去上傳,服務(wù)端會(huì)直接返回 400。

Android 進(jìn)程死亡與 Token 恢復(fù)

Android 系統(tǒng)會(huì)在內(nèi)存緊張時(shí)殺掉后臺(tái)進(jìn)程,但 Navigation 組件會(huì)恢復(fù)回退棧。這導(dǎo)致一個(gè)隱蔽的 Bug:App 被殺后重新打開(kāi),直接跳到主頁(yè)面(跳過(guò)了登錄頁(yè)),但內(nèi)存里的 Token 已經(jīng)丟了,所有 API 請(qǐng)求都會(huì) 401。

解決方案:Token 管理器在構(gòu)造函數(shù)里就從持久化存儲(chǔ)恢復(fù) Token,而不是等到某個(gè)頁(yè)面觸發(fā)時(shí)才讀取。這個(gè)模式適用于所有「內(nèi)存單例 + 認(rèn)證狀態(tài)」的場(chǎng)景。

視頻附件不走 Markdown

Memos 的 Web 端對(duì)圖片和視頻的處理方式不同:圖片用![](url)嵌入 Markdown 內(nèi)容,但視頻不嵌入Markdown,而是通過(guò)獨(dú)立的資源關(guān)聯(lián) API 綁定。

這意味著你不能用正則從 Markdown 內(nèi)容里解析出視頻附件——必須用 API 返回的resources列表。這個(gè)坑我踩了一次,希望后來(lái)人能繞過(guò)去。

▍體驗(yàn)與設(shè)計(jì)

  • Material You 設(shè)計(jì)語(yǔ)言:支持 Android 12+ 的動(dòng)態(tài)取色
  • 深色模式:跟隨系統(tǒng)
  • 兩種導(dǎo)航風(fēng)格:底部標(biāo)簽欄或 側(cè)邊抽屜,設(shè)置里切換
  • 中英雙語(yǔ):跟隨系統(tǒng)或手動(dòng)指定
  • 下拉刷新、分頁(yè)加載、相對(duì)時(shí)間戳

沒(méi)有花哨的動(dòng)效,就是一個(gè)用起來(lái)順手的工具 App。



▍下載與參與

下載安裝:

  • Google Play(內(nèi)測(cè)中,正在湊人數(shù)滿足上架條件)

  • GitHub Releases(APK 直接下載)

加入內(nèi)測(cè):

  • 如果你愿意幫助我盡快上架,可以私聊我你的 gmail,不甚感激!

反饋問(wèn)題:

  • GitHub Issues

  • GitHub Discussions

反饋時(shí)請(qǐng)注明你的 Memos 服務(wù)端版本(v0.24 / v0.25 / v0.26),這對(duì)排查問(wèn)題幫助很大。

源碼:github.com/whtis/memosly-android

▍寫(xiě)在最后

做這個(gè) App 的初衷很簡(jiǎn)單:自己用 Memos,手機(jī)上需要一個(gè)好用的客戶端,沒(méi)找到合適的,就寫(xiě)了一個(gè)。開(kāi)源出來(lái),是因?yàn)?Memos 社區(qū)本身就是開(kāi)源精神的產(chǎn)物,我也想把這份便利分享給更多人。

如果你也是 Memos 用戶,歡迎試試 Memosly。用得順手的話,去 GitHub 點(diǎn)個(gè) Star 就是最好的支持。



特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

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.

相關(guān)推薦
熱點(diǎn)推薦
SE開(kāi)始清算蒂法的3D作品,耶魯沙冷即將走下神壇

SE開(kāi)始清算蒂法的3D作品,耶魯沙冷即將走下神壇

街機(jī)時(shí)代
2026-05-02 19:15:05
中國(guó)3大長(zhǎng)壽食物;雞蛋排第三,第一名超市常見(jiàn),卻被我們忽略了

中國(guó)3大長(zhǎng)壽食物;雞蛋排第三,第一名超市常見(jiàn),卻被我們忽略了

鬼菜生活
2026-05-02 16:49:49
陜西11歲男童溺亡!主動(dòng)去的河邊,把文具送給同學(xué),原因讓人心疼

陜西11歲男童溺亡!主動(dòng)去的河邊,把文具送給同學(xué),原因讓人心疼

阿庫(kù)財(cái)經(jīng)
2026-05-02 15:11:06
五一帶孩子回老家,看到婆婆做的飯菜,我崩潰了:后悔回來(lái)了

五一帶孩子回老家,看到婆婆做的飯菜,我崩潰了:后悔回來(lái)了

餐飲新紀(jì)元
2026-05-02 07:10:00
僅播6集,就拿下全國(guó)收視第一,央視這回又抓到王炸了!

僅播6集,就拿下全國(guó)收視第一,央視這回又抓到王炸了!

藍(lán)莓影視推薦
2026-05-02 13:30:13
皇馬高層認(rèn)可穆帥回歸!姆巴佩想到C羅級(jí)別,魔力鳥(niǎo)是他的幫手

皇馬高層認(rèn)可穆帥回歸!姆巴佩想到C羅級(jí)別,魔力鳥(niǎo)是他的幫手

里芃芃體育
2026-05-02 05:00:10
孫楊工作室發(fā)布嚴(yán)正聲明:孫楊遭受大規(guī)模、有組織、有計(jì)劃的網(wǎng)絡(luò)暴力與造謠誹謗,已就此事向公安機(jī)關(guān)報(bào)案

孫楊工作室發(fā)布嚴(yán)正聲明:孫楊遭受大規(guī)模、有組織、有計(jì)劃的網(wǎng)絡(luò)暴力與造謠誹謗,已就此事向公安機(jī)關(guān)報(bào)案

極目新聞
2026-05-01 11:47:33
特朗普直言伊朗內(nèi)部分裂,不到24小時(shí),伊朗四大最高領(lǐng)導(dǎo)集體駁斥

特朗普直言伊朗內(nèi)部分裂,不到24小時(shí),伊朗四大最高領(lǐng)導(dǎo)集體駁斥

近史談
2026-05-02 19:02:53
奶奶剛死3天,瞎子上門討飯,臨走時(shí)說(shuō):明天你們家要多一口棺材

奶奶剛死3天,瞎子上門討飯,臨走時(shí)說(shuō):明天你們家要多一口棺材

千秋文化
2026-04-27 20:12:24
讓以色列心驚膽戰(zhàn)的對(duì)手,終于猛龍過(guò)江了:既非土耳其,也非伊朗

讓以色列心驚膽戰(zhàn)的對(duì)手,終于猛龍過(guò)江了:既非土耳其,也非伊朗

遁走的兩輪
2026-04-19 19:10:28
普通家庭存款到這個(gè)數(shù),已是人生天花板,以前不信,現(xiàn)在徹底認(rèn)同

普通家庭存款到這個(gè)數(shù),已是人生天花板,以前不信,現(xiàn)在徹底認(rèn)同

小蜜情感說(shuō)
2026-05-02 16:13:34
曼晚:卡里克接近正式接任曼聯(lián)主帥;格林伍德基本不可能回歸

曼晚:卡里克接近正式接任曼聯(lián)主帥;格林伍德基本不可能回歸

懂球帝
2026-05-02 14:39:06
招生超15萬(wàn),在讀博士67.6萬(wàn)人,中國(guó)已經(jīng)成為全球最大博士人才培養(yǎng)國(guó)

招生超15萬(wàn),在讀博士67.6萬(wàn)人,中國(guó)已經(jīng)成為全球最大博士人才培養(yǎng)國(guó)

新浪財(cái)經(jīng)
2026-05-02 11:08:43
“男朋友五一跟我出來(lái)旅游了,結(jié)果他媽媽一直哭!”

“男朋友五一跟我出來(lái)旅游了,結(jié)果他媽媽一直哭!”

匹夫來(lái)搞笑
2026-05-02 13:23:22
兩難啊!兒子月薪6000,兒媳無(wú)業(yè),竟要父母拿30多萬(wàn)養(yǎng)老錢還房貸

兩難??!兒子月薪6000,兒媳無(wú)業(yè),竟要父母拿30多萬(wàn)養(yǎng)老錢還房貸

火山詩(shī)話
2026-04-30 15:03:29
2-0進(jìn)決賽沖冠!中國(guó)女網(wǎng)17歲1米80小花閃耀:追趕鄭欽文王欣瑜?

2-0進(jìn)決賽沖冠!中國(guó)女網(wǎng)17歲1米80小花閃耀:追趕鄭欽文王欣瑜?

李喜林籃球絕殺
2026-05-02 16:10:08
沒(méi)時(shí)間了,中方通牒送進(jìn)東京,斷高市后路,日本人流淚向中國(guó)道歉

沒(méi)時(shí)間了,中方通牒送進(jìn)東京,斷高市后路,日本人流淚向中國(guó)道歉

影孖看世界
2026-05-02 16:40:09
伊朗行我也行?印尼財(cái)長(zhǎng)直言想收馬六甲過(guò)路費(fèi),一開(kāi)口就被新馬否了

伊朗行我也行?印尼財(cái)長(zhǎng)直言想收馬六甲過(guò)路費(fèi),一開(kāi)口就被新馬否了

阿器談史
2026-05-02 18:52:37
日本罕見(jiàn)采購(gòu)俄羅斯石油

日本罕見(jiàn)采購(gòu)俄羅斯石油

參考消息
2026-05-02 12:42:11
五糧液,開(kāi)了個(gè)壞頭

五糧液,開(kāi)了個(gè)壞頭

數(shù)智研究社
2026-05-02 08:00:19
2026-05-02 19:48:49
少數(shù)派sspai incentive-icons
少數(shù)派sspai
高品質(zhì)數(shù)字消費(fèi)指南
5077文章數(shù) 28401關(guān)注度
往期回顧 全部

科技要聞

AI熱潮耗盡庫(kù)存,Mac Mini起售調(diào)高200美元

頭條要聞

美國(guó)制裁5家中企 商務(wù)部發(fā)禁令阻斷

頭條要聞

美國(guó)制裁5家中企 商務(wù)部發(fā)禁令阻斷

體育要聞

休賽期總冠軍,輪到休斯頓火箭

娛樂(lè)要聞

白百何罕曬大兒子 18歲元寶越來(lái)越帥

財(cái)經(jīng)要聞

雷軍很努力 小米還是跌破了30港元大關(guān)

汽車要聞

新紀(jì)錄!零跑汽車4月交付達(dá)71387臺(tái)

態(tài)度原創(chuàng)

本地
手機(jī)
數(shù)碼
藝術(shù)
公開(kāi)課

本地新聞

用青花瓷的方式,打開(kāi)西溪濕地

手機(jī)要聞

Nothing Phone多款手機(jī)在印度漲價(jià),最高漲幅5000盧比

數(shù)碼要聞

威聯(lián)通推出GPU-Ready邊緣AI存儲(chǔ)服務(wù)器QAI-h1290FX

藝術(shù)要聞

色塊與筆觸的激情之旅!

公開(kāi)課

李玫瑾:為什么性格比能力更重要?

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版