Android 取得裝置資訊

解析如何用 Android Build 類別在 runtime 取得裝置廠牌、製造商、型號與系統版本,全程免特殊權限。說明 BRAND 與 MANUFACTURER 在紅米等子品牌的差異、MODEL 因發行地區而不同的特性,以及 RELEASE 與 SDK_INT 的對應關係。並點出為何 Crashlytics 與 Play Console 的事後聚合資料不足以應付非 crash 的特定機型怪 bug,runtime 自取資訊才能精準輔助除錯。

Published on June 24, 2026 · 1 分鐘 · 131 字 · Daniel Huang

為什麼 Play Console 統計資料日期不一致

解析 Google Play Console 統計資料日期不同步的原因。主因受指標計算信號差異、系統固定擷取時間及 3–7 天處理延遲影響。建議開發者查詢時預留緩衝期,或搭配 Firebase、GA 滿足即時數據需求,有效解決向 PM 或客戶報告時產生的資訊落差。

Published on May 4, 2026 · 1 分鐘 · 104 字 · Daniel Huang

Jetpack Compose Image ContentScale.Crop 如何指定裁剪位置?用 BiasAlignment 解決

在製作縮圖類型的 UI 介面時,Jetpack Compose 的 Image 搭配 ContentScale.Crop 是常見的做法。預設情況下會裁剪圖片中央,但若需要指定裁剪位置,可以透過 alignment 參數來調整。對於基本的上下左右對齊,Alignment 的 companion properties 即可滿足;若需要更精細的控制,則可以使用 BiasAlignment,以 -1f 到 1f 的偏移量來指定水平與垂直方向的裁剪位置。此外,文章也介紹了 BiasAbsoluteAlignment,與 BiasAlignment 的差異在於前者使用絕對的左右方向,後者則會依據 LTR / RTL 語系自動調整,適合需要支援國際化的 UI 設計。

Published on March 22, 2026 · 1 分鐘 · 170 字 · Daniel Huang
用 Android Studio 的內建 WebP 轉檔功能 讓 App 輕鬆瘦身

用 Android Studio 的內建 WebP 轉檔功能 讓 App 輕鬆瘦身

本文示範 Android Studio Convert to WebP 的完整步驟與參數設定(Lossy / Lossless),並透過 APK Analyzer 比較轉檔前後大小,快速完成 App 圖片瘦身。

Published on March 21, 2026 · 1 分鐘 · 78 字 · Daniel Huang

如何檢查與移除 macOS 上的 JDK

本文示範在 macOS 檢查 JDK 版本、查看已安裝的版本清單,並移除指定的 JDK。

Published on March 20, 2026 · 1 分鐘 · 96 字 · Daniel Huang