Blog 系列文章導覽

Something Record · 全系列文章導覽目錄

本導覽將站點十年來(2015 – 2026)沉澱之 82 篇硬核長文,完全依據「工程內容本質」精確收斂為五大實戰領域。拒絕湊數重播,每篇文章皆有唯一所屬座標與現場除錯脈絡。

全站文章 82 篇
實戰領域 5 大主題
覆蓋範圍 AOSP 內核 ~ 宣告式 UI ~ 邊緣 AI
重複率 0% 唯一索引

一、 邊緣 AI、受限硬體與多模態感知 (Edge AI & Spatial Computing)

旗艦實錄 · 系統級

在百元級高通低階晶片(4 顆 Cortex-A53、2GB RAM)極度受限環境下,從系統水線裁剪、Linux 內核抗壓、零拷貝向量運算到 ToF 3D 空間點雲與工控連線之完整工程實錄。

EDGE AIGUIDE

導覽首篇
《爛裝置想跑 AI》全系列架構導覽:百元晶片的極限壓榨與破局地圖 ↗

專案全景硬體規格、系統拓撲與破局地圖 17 篇長文總入口

19 篇總入口

階段 1:算力瓶頸量測與系統裁剪
4GB ➔ 2GB 硬體裁切 · 釋放 200MB+ 物理常駐空間

Android 爛裝置想跑人臉辨識0 – 到底有多爛?

QM215 算力極限與硬體瓶頸真實量測

Current

Android 爛裝置想跑人臉辨識1 – 評估第一

BOM Cost 成本、選型決策與算力邊界分析

Current

Android 爛裝置想跑人臉辨識2 – 記憶體優化:無用系統服務徹底剔除

裁剪 20+ 無用系統服務徹底釋放實體記憶體

Current

階段 2:Linux 核心抗壓、記憶體控場與保活
720h 穩態 0 GC Thrashing · 內核 LMKD 水位線治理

Android 爛裝置想跑人臉辨識3 – 系統優化:ZRAM, SWAP, KSM 擴張最大值

ZRAM、SWAP 與 KSM 擴張記憶體最大容許量

Current

Android 爛裝置想跑人臉辨識4 – 記憶體控場師LMKD

LMKD 自定義殺進程策略與防 OOM 實戰

Current

Android 爛裝置想跑人臉辨識5 – GC 是唯一會關心你 OOM 的好人

主動觸發與被動 GC 策略抉擇與記憶體哲學

Current

Android 爛裝置想跑人臉辨識 – GC Thrashing 思路補充

頻繁 GC 造成 CPU 空轉之調度優化

Current

Android 爛裝置想跑人臉辨識7 – 物理世界需要 watchdog

物理世界硬體級 watchdog 防假死守護進程

Current

階段 3:零拷貝資料流與 SIMD 向量極限榨汁
150ms ➔ 3.0ms(50x 矩陣搜尋加速)· 零拷貝 DirectBuffer

Android 爛裝置想跑人臉辨識6 – 三路高頻影像流:三倍蓋亞,趕快 GC

RGB / IR / ToF 三路影像 DirectBuffer 跨層零拷貝

Current

Android 爛裝置想跑人臉辨識8 – YUV_420_888 還能怎樣加速:QFastCV

高通晶片特化 QFastCV 色彩空間極速轉換

Current

Android 爛裝置想跑人臉辨識9 – 兄弟齊心,軟硬兼施:ARM Compute Library (ACL)

ARM Compute Library SGEMM 特徵矩陣併發比對

Current

Android 爛裝置想跑人臉辨識 番外篇 – 從 50ms 到 3ms:ARM NEON、FastCV 與記憶體極限榨汁指南

ARM NEON 向量指令集與 Cacheline 記憶體排布調優

Current

階段 4:雙鏡時空同步、3D 空間感知與邊緣連線
Sony iToF 四相位解調 · 30fps 即時點雲 · 離線雙寫架構

Android 爛裝置想跑人臉辨識10 – 雙鏡頭的時空修羅場:RGB 與 ToF

RGB 與 iToF 跨感測器毫秒級時空同步對齊

Current

Android 爛裝置想跑人臉辨識11 – ToF RAW12 轉 3D 點雲

RAW12 深度圖轉 3D 空間點雲與 OpenGL 即時渲染

Current

SLAM Note – NDT_TKU

機器人 3D 雷達 SLAM NDT(正態分佈變換)配準演算法

Current

Android 爛裝置想跑人臉辨識12 – 說到底還是一台 IOT:WebSocket 篇

工控終端 WebSocket 離線雙寫與 CursorWindow 規避

Current

Android 爛裝置想跑人臉辨識13 – 為了幾乎不會用到的功能需要大改特改的 WebRTC

視訊對講 WebRTC 底層管道深度魔改

Current

Android 爛裝置想跑人臉辨識14 – 門禁機當 BLE Peripheral 的現場踩坑記

門禁終端當 BLE Peripheral 協議防抖與近場配網實戰

Current

二、 軟體工程哲學、產品演進與技術生態拓荒 (Craftsmanship & Evolution)

工匠素養 · 經典演進

從大師經典的代碼審美與職業素養,到獨立產品 Funny Vote 的多年架構遷移史,並完整梳理 Android 生態十年技術選型演進與代碼考古對照。

軟體工程哲學與代碼整潔之道 (5 篇)

經典大師著作研讀:代碼命名、錯誤邊界、工程師職業承諾與產出哲學。

Clean code: 無瑕的程式碼 – 書摘心得(一)

Clean Code:有意義的命名、函式只做一件事與職責精準

Current

Clean code: 無瑕的程式碼 – 書摘心得(二)

Clean Code:錯誤處理代替回傳錯誤碼、邊界與單元測試

Current

The Clean coder: 無瑕的程式碼 番外篇 – 書摘心得

The Clean Coder:專業程式設計師的生存法則、Say No 與承諾

Current

約爾趣談軟體-筆記

約爾趣談軟體:軟體規格、獵犬法排錯與工程人性管理

Current

CRAFTPRINCIPIA

Android 好文整理

2015 早期 Android 核心架構技術精選與知識萃取

Current

Funny Vote 十年架構演進系列(全七部曲)

專題導覽頁 ➔

獨立 App 從零到一上線、Java MVP 架構解耦到全專案遷移 Kotlin 之完整歷程。

Funny Vote 開發雜記

獨立產品 Funny Vote 從零到一構想與初始開發實錄

Contextual

Funny vote APP -MVP 更新雜記

引入 MVP 架構分離 UI 與業務邏輯之解耦實戰

Contextual

Funny vote APP -MVP Kotlin 改版雜記

全專案 Java 程式碼遷移重構至 Kotlin 現代語言實錄

Contextual

經典技術生態拓荒:Android 十年選型演進 (12 篇 · 標記 Legacy / Contextual)

早期網路庫、ORM 資料庫、視圖綁定與跨平台橋接,作為現代架構設計決策的歷史參照物。
LEGACYARCHIVE

Retrofit 2 — How to Upload Files and Parameter list to Server

Retrofit 2 檔案上傳與 Multipart 傳輸(Contextual)

Contextual

LEGACYARCHIVE

Android volley customize request : gzip and gson.

Volley 請求自定義 Gzip 壓縮與 Gson 解析(Legacy)

Legacy

LEGACYARCHIVE

GreenDao 3 Introduction

GreenDao 3 SQLite ORM 實體生成架構(Legacy)

Legacy

LEGACYARCHIVE

Android ORM Library- Green DAO(一) introduction

GreenDAO 1 早期 ORM 資料庫初探(Legacy)

Legacy

LEGACYARCHIVE

Android ORM Library – Green DAO(二)Question: Why can’t set default value for entities

GreenDAO 實體預設值無效問題探討(Legacy)

Legacy

LEGACYARCHIVE

Android ButterKnife introduction

ButterKnife 註解 View 注入綁定機制(Legacy)

Legacy

IOTHYBRID

React Native 學習筆記

早期 React Native 跨平台機制研讀(Contextual)

Contextual

IOTHYBRID

React native Native android module – my god , many issue.

React Native Android 原生模組橋接坑點(Contextual)

Contextual

LEGACYARCHIVE

Facebook api on Android : Login FB AP on device , but account manager not show.

Facebook SDK 登入與帳號管理器異常(Contextual)

Contextual

LEGACYARCHIVE

Google Analytics Individual Qualification(GAIQ) GET !

Google Analytics 個人認證考照心得(Contextual)

Contextual

LEGACYARCHIVE

Android google analyze 使用教學(一) 初始化

Google Analytics SDK 行動端埋點初始化(Contextual)

Contextual

LEGACYARCHIVE

Android studio release jar by gradle

Gradle 腳本自動發布 Release JAR 模組(Contextual)

Contextual

三、 現代 Android:Compose 渲染機制、Kotlin 併發與當代架構 (Modern Stack)

現代核心 · 進階

聚焦 Jetpack Compose 三階段渲染模型與重組邊界、Kotlin 協程調度與編譯期展開、以及當代 Android 職責分離 (SOC) 與依賴注入實務。

Jetpack Compose 渲染本質與優化 (4 篇)

三階段管線、衍生狀態、重組防護合約與底層 Modifier 繪製。

Compose 三階段渲染管線

Composition ➔ Layout ➔ Draw 三階段排程

Current

Jetpack Compose: 何時該用 derivedStateOf?

避免無效重組:精準判斷衍生狀態計算時機

Current

@Immutable @Stable 如果 immutableList 內包含 list .這樣會造成 recompstion 嗎?

@Immutable / @Stable 穩定性合約與 List 重組穿透

Current

Modifier 效能 Draw 啥比較好:drawBehind , drawWithContent,drawWithCache

drawBehind vs drawWithContent vs drawWithCache

Current

Kotlin 語言底層與非同步併發 (7 篇)

協程調度成本、防抖防競態、編譯器字節碼內聯與初始化陷阱。

Thread 和 Coroutine 的理解

Thread 與 Coroutine 的實體記憶體與切換開銷對比

Current

Kotlin 如何預防 Launch 連發,搜尋任務

協程取消機制防止搜尋任務連發與狀態競態

Current

inline, noinline, crossinline:存在即合理

高階函式展開、非局部返回與位元組碼優化

Current

lateinit vs lazy

延遲初始化底層位元組碼與執行時記憶體差異

Current

Difference between constructors and init in kotlin

次要建構函式與 init 程式碼區塊之底層生成順序

Current

kotlin init 前初始化屬性會發生啥事

屬性在 init 區塊前初始化的未定義危險行為

Current

id(“org.kotlin.xxxx”) version “2.1.0” apply false 這不要你還特地寫上去啊?.

Gradle Kotlin DSL 插件聲明 apply false 的真正意圖

Current

現代架構邊界與依賴注入 (7 篇)

Scope 職責劃分、異常傳播、Hilt 模組化與 ViewModel 生命週期邊界。

viewModelScope vs rememberCoroutineScope 其實沒啥好 versus ,就是 SOC 職責分離

viewModelScope 與 rememberCoroutineScope 的 SOC 職責分離

Current

SupervisorJob 不就是 viewModelScope嗎?

SupervisorJob 的異常邊界隔離與生命週期守護

Current

Hilt 指南 組內分享

大型多模組架構下的 Hilt 依賴注入工程實踐

Current

麻煩 ViewModelProvider.Factory 你了,因為系統不讓我直接 new 一個 ViewModel

ViewModelProvider.Factory 的歷史原罪與實例生成

Current

fun GameScreen(gameViewModel: GameViewModel = GameViewModel()) 這樣寫有啥問題?

Composable 預設參數 new ViewModel 的反模式

Current

handle all repostiory operation that out of Composable/ViewModel scope

超越 Composable/ViewModel 生命週期的 Repository 治理

Current

CreationExtras.inventoryApplication() 這有點跳

CreationExtras 於現代 ViewModel 實例注入解耦

Current

四、 AOSP 系統底層框架、驅動與多媒體 (AOSP Framework & Multimedia)

系統底層 · 系統級

從 AOSP 相機 HAL3 管道化模型、原生硬體服務與中斷通訊,到底層 RRO 動態替換與執行緒池架構原罪反思。

相機子系統與 HAL3 管道化演進 (3 篇)

從經典 Camera 1 到現代 Camera 2 管道化模型之完整剖析。
CAMERAHAL3

Android Camera analyze (一) – Camera 1 Architecture

Camera 1 傳統驅動架構與通訊管線

Contextual

CAMERAHAL3

Android Camera analyze (二) – Camera 2 Introduction.

Camera 2 HAL3 管道化與 Request/Result 異步模型

Current

CAMERAHAL3

Android Camera analyze (三) – How to create Camera 2.

CaptureSession、Surface 配置與 Camera2 完整建立實戰

Current

AOSP 原生硬體服務與中斷通訊 (5 篇)

AOSP 原生 FMRadio 系統服務深度拆解:跨進程 AIDL、音訊焦點與生命週期。
CAMERAHAL3

FMRadio 開發筆記 (一)-概論

FMRadio 原生硬體架構與系統服務概論

Contextual

CAMERAHAL3

FMRadio 開發筆記 (二)- FMRadioMain

FMRadioMain 介面交互與系統服務通訊綁定

Contextual

CAMERAHAL3

FMRadio 開發筆記 (三)- FMRadioService

FMRadioService 背景服務與底層硬體驅動控制

Contextual

CAMERAHAL3

FMRadio 開發筆記 (四)- AlterActivity

音訊焦點 (Audio Focus) 搶佔與系統級中斷處理

Contextual

CAMERAHAL3

FMRadio 開發筆記 (五)- Other

系統廣播接收、硬體拔插監聽與異常狀態復原

Contextual

Framework 核心機制與並發治理 (7 篇)

RRO 資源替換、沙盒數據隔離、動態加載 APK 與執行緒架構反思。

說到底沒有吐槽以前自己寫的 code 代表你沒進步-ThreadPoolManager 的原罪

全域 ThreadPoolManager 共享執行緒池的歷史原罪與治理

Current

AOSPKERNEL

Naming threads and thread pools of ExecutorService

ExecutorService 命名執行緒與崩潰排障可觀測性

Current

AOSPKERNEL

Android runtime resource overlay

Android Runtime Resource Overlay (RRO) 免重編譯置換資源

Current

AOSPKERNEL

Android 實作 data/control 分離 – createPackageContext()

createPackageContext() 實作數據與控制分離沙盒

Current

AOSPKERNEL

Android home screen life cycle.

Android 桌面 Launcher 啟動時序與生命週期全解

Current

AOSPKERNEL

Java reflection in Android -fast scroll bar in list view / dynamic load apk.

Java 反射機制於動態加載 APK 與 ListView 快速捲動

Current

AOSPKERNEL

Android Nougat introduction (一)

Android 7.0 Nougat 底層機制與系統架構演進

Contextual

五、 生產排障、渲染調校與系統交付規範 (Field Troubleshooting & Delivery)

生產實戰 · 排障硬核

真實工程現場的掉幀診斷、複雜 UI 巢狀滑動衝突、軟鍵盤佈局遮擋、Fragment 生命週期地雷與 CTS 認證失敗排查。

系統級掉幀分析與除錯工具 (3 篇)

Systrace 掉幀診斷、Stetho 除錯橋接與跨進程跳轉。
PERFDEBUG

Analyzing UI Performance with Systrace

Systrace 分析 UI 掉幀、Vsync 訊號與主執行緒卡頓

Current

PERFDEBUG

Chrome dev tool for android – steho

Stetho 橋接 Chrome DevTools 即時檢視網路與資料庫

Current

PERFDEBUG

Android Intents with Chrome

跨進程 Intent 傳遞與 Chrome Custom Tabs 整合

Current

複雜 UI 渲染、邊界與滑動衝突 (3 篇)

巢狀滾動滑動衝突、鍵盤頂起遮擋與元件生命週期傳遞。
PERFDEBUG

How to use RecyclerView inside NestedScrollView?

RecyclerView 置入 NestedScrollView 之高度測量與滑動衝突解決

Current

PERFDEBUG

Android issue – UI佈局被鍵盤擋住

WindowSoftInputMode 與軟鍵盤頂起佈局遮擋排障

Current

Communicate with fragments

Fragment 與 Activity 跨組件通訊與狀態丟失防護

Current

工程交付、組件地雷與 CTS 合規 (4 篇)

Fragment 重建無參建構崩潰、CTS 外部目錄失敗與 Proguard 混淆。
PERFDEBUG

Android issue – Avoid non-default constructors in fragments

避免 Fragment 具參建構函式:系統旋轉反射重建崩潰地雷

Current

PERFDEBUG

Android CTS Fail – cant remove external folder

Android CTS 認證失敗:無法移除 External 資料夾排查

Current

PERFDEBUG

Android AppIntro Proguard issue.

Proguard 程式碼混淆規則遺漏造成執行期 Crash排查

Current

PERFDEBUG

Android Local build- use third parity lib.

Gradle 本地載入第三方 AAR/JAR 依賴庫編譯調校

Current

📌 關於本站文章狀態標示說明:

  • Current:適用於現代生產環境與最新版本架構。
  • Contextual:核心思維與底層原理仍具備高度參考價值,但實作語法已隨框架演進。
  • Legacy:早期經典方案(如 GreenDAO、Volley),不建議在新專案採用,但完整保留其除錯經驗與選型代價,作為現代重構的對照基準。