auto.js 嵌進日常工作流——把手機上的重複操作完全交出去
每天在手機上打開五個 APP 逐個點簽到、收藏文章、備忘記錄,以前固定要花十五分鐘,還經常忘。這篇講我怎麼用 auto.js 把這套流程跑成半自動化,配合飛書機器人通知和網盤備份,斷鏈點怎麼處理、哪些情況下反而不如手動。
auto.js 是什麼——一款讓手機腳本化的開源工具
auto.js文檔 是一款免 Root 就能跑的 Android 腳本框架,本質上是把 Android 的無障礙服務 API 包成了一套容易寫的 JavaScript 介面。它能讀取當前畫面的控制項樹、模擬點擊滑動輸入、監聽介面事件,所以只要你能用腳本描述清楚「要找什麼元素、要做什麼操作」,手機就能自動幫你跑完。
這款工具的定位很明確——它不是給開發者做正式產品用的,而是給普通玩機的人寫小工具、自動化日常重複操作、做腳本匯集站這類場景用的。社區裡主流分支是 AutoJs6(免費開源)和 AutoX.js,兩者都接續了最初 hyb1996 那個專案的思路,生態裡有大量現成的簽到腳本、資料抓取腳本可以直接拿來改。
安裝
auto.js下載 目前穩定分支是 4.1.1,安裝包約 17MB,直接裝 APK 就行,不需要 Root 也不需要解壓密碼。安裝完第一次打開,系統會提示兩個權限:無障礙服務和懸浮窗——這兩個缺一不可,我按自己的手機型號分步驟講:
無障礙服務是核心。沒開它 auto.js 就是個普通的程式碼編輯器,腳本跑不起來任何介面操作。不同品牌的開啟路徑有點不一樣:小米/Redmi 在「更多設定 → 無障礙 → 已下載的服務」;OPPO/vivo 在「無障礙 → 已下載服務」;三星 OneUI 在「無障礙 → 已下載應用」;華為 HarmonyOS 要走「輔助功能 → 無障礙 → 已下載的服務」。開完後通知欄會有常駐通知,這個是系統保護,不是多餘的。
懸浮窗是操作面板——開了之後螢幕邊緣會出現一個小浮球,不用切回主介面就能暫停/繼續腳本、看執行狀態、錄製操作。側拉選單點「懸浮窗」會自動跳轉到「顯示在其他應用上層」的設定頁,開關一打浮球就出來了。
安裝完最後一步是把 auto.js 加進電池白名單和自啟動管理,不然系統清理後無障礙服務會被關掉,腳本跑到一半就斷。我自己小米手機在電池優化裡設成「不限制」、自啟動管理裡打勾、最近任務介面再鎖一下——三重保險基本不會掉。另外要注意:4.1.1 和 Pro 版不能同時裝,包名一樣會衝突,裝新的之前先把舊版卸乾淨。

舊流程——每天手動點五個 APP 的那十五分鐘
我手機上有五個固定要打開的 APP:兩個社區論壇要每日簽到、一個新聞聚合要收藏精選文章、兩個學習類要記錄進度。以前這套流程是這樣的:
早上吃完飯拿起手機,按順序打開每個 APP → 找簽到按鈕(有的在個人中心、有的在首頁角落)→ 點一下等獎勵彈窗 → 關掉彈窗 → 收藏喜歡的帖子 → 退出 → 下一個 APP。
五個 APP 每個大概三分鐘,加起來十五分鐘。問題是這件事完全沒門檻但重複性極高,每天固定時間做很容易忘——週末出去玩或者加班回來太累就跳過,積累下來論壇簽到獎勵斷了就補不回來。收藏的文章偶爾也會漏,事後找起來還得翻好幾頁歷史紀錄。
我試過幾個自動化工具,要麼付費、要麼只能解鎖特定 APP、要麼寫腳本門檻太高。auto.js 不一樣——它靠無障礙服務這個 Android 官方 API,理論上任何 APP 的介面操作它都能模擬,而且腳本就是 JavaScript,對會寫網頁的人來說幾乎零學習門檻。
新流程——把 auto.js 嵌進工作流的哪一環
我現在的工作流長這樣:
上游觸發:晚上十一點手機進充電狀態,自動化工具(Tasker 之類的)偵測到充電事件,觸發 auto.js 跑每日腳本。充電狀態觸發的好處是不會耗電、也不會在白天手機正忙的時候打擾。
auto.js 執行層:腳本第一行固定寫 auto.waitFor() 等無障礙服務就緒,然後按順序跑五個 APP。每個 APP 的流程是:打開 → 等待首頁載入(用 text("簽到").waitFor() 而不是硬 sleep)→ 點簽到 → 把今天的進度寫進一個本地 JSON 檔 → 退出。收藏文章的部分比較簡單,腳本只抓當天熱門區塊前三條的標題和連結,存到手機的「自動化/收藏」資料夾裡。
下游通知:腳本跑完之後用 http 模組把今天的執行結果(幾個成功、幾個失敗、每個 APP 的簽到連續天數)POST 到我在飛書建的一個機器人 Webhook。早上醒來翻一下飛書,一眼就知道昨天的流程有沒有跑完。如果有失敗的,旁邊會有紅色標記,點進去看 JSON 裡的錯誤訊息就能定位是哪個環節斷了。
備份層:每週日的腳本會把「自動化/收藏」資料夾整包上傳到我網盤的固定目錄,名稱帶日期(比如 2026-10-19-收藏備份.zip)。這個上傳我用的是手機網盤客戶端的「自動備份」功能,auto.js 只負責產生資料,上傳交給專門的工具——保持每個工具只做自己擅長的事。
整套流程的邏輯是:觸發條件(充電)→ 執行引擎(auto.js)→ 通知管道(飛書)→ 備份落點(網盤)。四個環節互不依賴,某個環節掛了不影響其他。比如飛書機器人掛了,auto.js 腳本還是會正常跑完,只是少了通知;auto.js 掛了,充電觸發不到就自然跳過,第二天手動補一下也不費事。

實操細節——兩個最容易斷鏈的環節
跑了三個月下來,這套流程有兩個地方最容易出問題,我踩過坑之後總結出了處理辦法:
斷鏈點一:無障礙服務被系統殺掉。這是最常見的——我小米手機偶爾清理後台時會把無障礙服務一起關掉,腳本跑到一半就突然停了。解法是三層保險:電池優化設成「不限制」、自啟動打勾、最近任務介面鎖一下。另外腳本裡加一段檢查,開頭先看 auto.service 是不是 null,是的話就彈提示並跳轉到無障礙設定頁,不會默默失敗。
斷鏈點二:APP 更新後按鈕位置變了。這是寫腳本時最容易犯的錯——很多人圖省事用坐標硬編碼(比如 click(500, 800)),但 APP 一更新、按鈕挪了位置,腳本就點錯地方。我的做法是全部改用選擇器,比如 text("簽到").click() 或 id("checkin_btn").click(),找不到就加 waitFor() 等載入,實在找不到就寫進錯誤日誌然後跳過這個 APP,不會卡住整個流程。
另外有個小技巧:腳本裡的 sleep 不要寫死時間。以前我寫 sleep(2000) 固定等兩秒,後來發現有的 APP 載入快有的慢,改成用 text("某個確定會出現的元素").waitFor() 會更穩——元素出現就往下走,不會浪費時間也不會太早操作。
效果與邊界——省了多少事、什麼情況下不如手動
三個月下來,這套流程實際幫我省了大約 18 小時——每天 15 分鐘乘以 180 天,扣掉腳本故障需要手動補救的時間(大概十分之一),淨省 16 小時左右。更重要的是心裡負擔減了——以前每天睡覺前還要想「今天簽到了沒」,現在翻一下飛書通知就知道,忘了也沒關係,腳本會自動跑。
不過這套流程也有邊界。我試過把它擴展到自動回訊息、自動點讚朋友動態,結果發現這些操作需要判斷內容——比如回訊息要看對方說了什麼、點讚要判斷是不是值得讚的內容,auto.js 只能模擬操作但不會理解語義,硬上的話很容易鬧笑話。另外銀行 APP、支付類應用會標記自己的介面不允許無障礙操作,這是應用自身的安全策略,繞不過去。還有一些遊戲會檢測自動化腳本,觸發封號風險,這個也是紅線。
總結下來,auto.js 最適合嵌進工作流的場景是:有固定節奏、有明確操作步驟、不需要複雜判斷的重複任務。每天定時跑的簽到、每週固定時間要整理的資料、每月要導出的報表——這些都可以交給它。但需要理解內容、需要創造性、需要跟人互動的環節,還是得自己來。把工具放在它擅長的位置,才是真正的效率提升。
本文为个人基于网络公开资料整理编写,非官方内容,仅供学习交流参考;软件版权归原作者所有,请支持正版;使用过程中遇到问题请查阅官方渠道,本文不承担任何责任。


