- 一位 Android 工程師,每天對於如何在茫茫技術海中存活感到憂慮。
- 每次動筆都不斷告訴自已:筆記不是為了別人,而是為了自己。
- 在這裡,我將分享我在開發中經歷的大小事,不論是各種奇怪的 Bug,還是學習過程中的心得與反思;偶爾也會夾雜一些因為興趣而產生的分享。
- 希望每個走進來的朋友,都能在這裡找到對你有幫助的資訊。
Android 取得裝置資訊
解析如何用 Android Build 類別在 runtime 取得裝置廠牌、製造商、型號與系統版本,全程免特殊權限。說明 BRAND 與 MANUFACTURER 在紅米等子品牌的差異、MODEL 因發行地區而不同的特性,以及 RELEASE 與 SDK_INT 的對應關係。並點出為何 Crashlytics 與 Play Console 的事後聚合資料不足以應付非 crash 的特定機型怪 bug,runtime 自取資訊才能精準輔助除錯。

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

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

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

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