TECH NOTES
小工具也要持續進化:我的「發票載具手機條碼」完成 Android 17 升級

前一陣子,我收到 Google Play 寄來的一封通知信。
系統偵測到您的應用程式「發票載具手機條碼」以舊版 Android 為目標。為了讓使用者享有安全體驗,Google Play 要求所有應用程式必須在 2026 年 8 月 31 日前符合目標 API 級別規定。
看到這封信,我才想到,自己這個在 2024 年開發的 Android App ,也到了該更新的時候了。

我這個 App 的使用目的很單純,
就是把自己的手機載具條碼放在手機裡,
需要結帳時,可以直接透過桌面 Widget,或快速打開 App 顯示手機載具條碼。
所以沒有什麼複雜的功能,
它可以:
- 顯示自己的手機載具條碼
- 點一下即可複製載具號碼
- 支援 Android 桌面 Widget
- 更新條碼後同步更新 Widget
- 所有資料都保存在本機,不需要登入帳號,也沒資料要存放在哪個雲端服務的隱私疑慮
儘管功能簡單,
App 還是要符合 Google Play 的政策,
我原本這次只是打算配合最新規範,
把 App 更新到 Android 16(API 36)。

不過在進行這次更新時,
我突然想到,
既然都要更新 Target API,
不如乾脆一次升級到最新版本,
也就是 Android 17(API 37,Google 這命名真的有點繞 XD)。
當 App 更新到 Android 17(Target API 37)後,
就會採用 Android 17 的最新應用程式行為。
每一次 Target API 更新,
通常都要重新確認 App 是否受到新的系統限制影響。

Android 17 對安全性、背景行為、藍牙、網路、動態程式載入等都有新的規範。
還好現在有 AI 幫忙,整理官方文件、檢查受影響的 API 都比以前容易許多。
在確認 App 使用到的權限與 API 沒有受到影響,也不需要額外要求使用者授權後,
就順利完成了這次升級。
趁著這次更新,
也把整個開發環境一起整理到最新版,包括:
- Android Gradle Plugin 9.3
- Gradle 9.6.1
- Kotlin 2.4.10
- 最新穩定版 Compose BOM
- AndroidX Core 1.19
- AndroidX Lifecycle 2.11
- Navigation Compose 2.9.8
- MockK 與測試工具
另外也替 Gradle Wrapper 加上官方提供的 SHA-256 Checksum 驗證,
讓下載 Gradle 時可以確認檔案完整性,
也算是順手把供應鏈安全補強了一下。

我一直都蠻喜歡這個小工具。
雖然每天可能只會用到幾秒鐘,
但只要結帳時不用手忙腳亂,
我就覺得它已經完成自己的使命了。
如果你剛好也有這個需求,
歡迎下載試試:
發票載具手機條碼 https://play.google.com/store/apps/details?id=com.ddsakura.einvoice