TECH NOTES

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

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

前一陣子,我收到 Google Play 寄來的一封通知信。

系統偵測到您的應用程式「發票載具手機條碼」以舊版 Android 為目標。為了讓使用者享有安全體驗,Google Play 要求所有應用程式必須在 2026 年 8 月 31 日前符合目標 API 級別規定。

看到這封信,我才想到,自己這個在 2024 年開發的 Android App ,也到了該更新的時候了。

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

我這個 App 的使用目的很單純,
就是把自己的手機載具條碼放在手機裡,
需要結帳時,可以直接透過桌面 Widget,或快速打開 App 顯示手機載具條碼。

所以沒有什麼複雜的功能,
它可以:

  • 顯示自己的手機載具條碼
  • 點一下即可複製載具號碼
  • 支援 Android 桌面 Widget
  • 更新條碼後同步更新 Widget
  • 所有資料都保存在本機,不需要登入帳號,也沒資料要存放在哪個雲端服務的隱私疑慮

儘管功能簡單,
App 還是要符合 Google Play 的政策,
我原本這次只是打算配合最新規範,
把 App 更新到 Android 16(API 36)。

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

不過在進行這次更新時,
我突然想到,
既然都要更新 Target API,
不如乾脆一次升級到最新版本,
也就是 Android 17(API 37,Google 這命名真的有點繞 XD)。

當 App 更新到 Android 17(Target API 37)後,
就會採用 Android 17 的最新應用程式行為。

每一次 Target API 更新,
通常都要重新確認 App 是否受到新的系統限制影響。

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

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 時可以確認檔案完整性,
也算是順手把供應鏈安全補強了一下。

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

我一直都蠻喜歡這個小工具。
雖然每天可能只會用到幾秒鐘,
但只要結帳時不用手忙腳亂,
我就覺得它已經完成自己的使命了。

如果你剛好也有這個需求,
歡迎下載試試:
發票載具手機條碼 https://play.google.com/store/apps/details?id=com.ddsakura.einvoice