Something Record – 部落格全系列文章導覽目錄
本導覽目錄將本站自 2015 年至今發布的 80 篇正式技術文章與 12 篇深入草稿,依技術深度、系統演進與模組邊界精細拆解為十大專題,供同行專家、面試複盤與系統化查閱。
一、 邊緣 AI 與人臉辨識硬核實戰(17 篇)
記錄在百元級高通低階晶片(QM215 4 顆弱雞 A53)、極度匱乏記憶體環境下榨乾硬體極限的完整工程實錄。
階段 1:硬體瓶頸量測與系統減磅
階段 2:底層記憶體抗壓、防爆與排程守護
- 03 篇:系統優化:ZRAM, SWAP, KSM 擴張記憶體最大值
- 04 篇:記憶體控場師:LMKD 策略與防 OOM 實戰
- 05 篇:GC 是唯一會關心你 OOM 的好人
- 06 篇:三路高頻影像流,三倍蓋亞,趕快 GC
- 07 篇:守護進程:物理世界需要 watchdog
- 補充篇:GC Thrashing 思路補充
階段 3:影像演算法與異質運算極限榨汁
- 08 篇:YUV 420 888 還能怎樣加速:QFastCV 實戰
- 09 篇:兄弟齊心,軟硬兼施:ARM Compute Lib (ACL)
- 番外篇:從 50ms 到 3ms:ARM NEON、FastCV 與記憶體極限榨汁指南
階段 4:雙目 3D 視覺與深度感知
階段 5:工控物聯網長連線、串流與近場配網
- 12 篇:說到底還是一台 IOT:WebSocket 篇
- 13 篇:為了幾乎不會用到的功能需要大改特改的 WebRTC 視訊對講
- 14 篇:門禁機當 BLE Peripheral 的現場踩坑記(即將發布)
二、 Jetpack Compose 深度原理與效能調校(4 篇)
- 渲染管線:Compose 三階段渲染管線剖析
- 狀態衍生:Jetpack Compose 何時該用 derivedStateOf?
- 重組防護:@Immutable @Stable 如果 immutableList 內包含 list 會造成 recomposition 嗎?
- 繪製優化:Modifier 效能 Draw 啥比較好:drawBehind, drawWithContent, drawWithCache
三、 Kotlin 語言深水區與非同步併發控制(7 篇)
- 併發概念:Thread 和 Coroutine 的理解與切換成本
- 時序防抖:Kotlin 如何預防 Launch 連發,搜尋任務防抖防競態
- 內聯機制:inline, noinline, crossinline:存在即合理
- 延遲初始化:lateinit vs lazy 底層實現差異
- 建構順序:Difference between constructors and init in kotlin
- 屬性陷阱:kotlin init 前初始化屬性會發生啥事
- Gradle 依賴:id(“org.kotlin.xxxx”) version “2.1.0” apply false 這不要你還特地寫上去啊?
四、 現代 Android 架構設計與依賴注入(7 篇)
- 範疇劃分:viewModelScope vs rememberCoroutineScope 其實是 SOC 職責分離
- 取消機制:SupervisorJob 不就是 viewModelScope 嗎?
- 依賴注入:Hilt 指南 組內分享
- 實例工廠:麻煩 ViewModelProvider.Factory 你了,因為系統不讓我直接 new 一個 ViewModel
- 預設參數陷阱:fun GameScreen(gameViewModel = GameViewModel()) 這樣寫有啥問題?
- 架構邊界:handle all repository operation that out of ComposableViewModel scope
- 實例注入:CreationExtras.inventoryApplication() 這有點跳
五、 Android 系統核心原理與 Framework 原始碼探秘(7 篇)
- 執行緒池原罪:說到底沒有吐槽以前自己寫的 code 代表你沒進步 – ThreadPoolManager 的原罪
- 執行緒命名:Naming threads and thread pools of ExecutorService
- 運行時替換:Android runtime resource overlay (RRO)
- 沙盒隔離:Android 實作 datacontrol 分離 – createPackageContext()
- 系統啟動:Android home screen life cycle
- 反射黑魔法:Java reflection in Android - fast scroll bar in list view dynamic load apk
- 系統演進:Android Nougat introduction (一)
六、 效能診斷、除錯工具與 UI 渲染排障(10 篇)
- 效能檢測:Analyzing UI Performance with Systrace
- 診斷工具:Chrome dev tool for android – stetho
- 跨進程意圖:Android Intents with Chrome
- 元件通訊:Communicate with fragments
- 構造地雷:Android issue – Avoid non-default constructors in fragments
- 佈局衝突:Android issue – UI 佈局被鍵盤擋住
- 滾動巢狀:How to use RecyclerView inside NestedScrollView
- 代碼混淆:Android AppIntro Proguard issue
- 本地相依:Android Local build – use third parity lib
- 相容性測試:Android CTS Fail – cant remove external folder
七、 相機 HAL 與多媒體驅動框架(8 篇)
Android Camera 框架演進
- Android Camera analyze (一) – Camera 1 Architecture
- Android Camera analyze (二) – Camera 2 Introduction
- Android Camera analyze (三) – How to create Camera 2
AOSP 原生 FMRadio 框架拆解
- FMRadio 開發筆記(一)- 概論
- FMRadio 開發筆記(二)- FMRadioMain
- FMRadio 開發筆記(三)- FMRadioService
- FMRadio 開發筆記(四)- AlterActivity
- FMRadio 開發筆記(五)- Other
八、 專案實戰、機器人定位與跨平台探索(6 篇)
- 獨立 App 開發:Funny Vote 開發雜記(2021)
- 架構迭代:Funny vote APP – MVP 更新雜記(2021)
- 語言遷移:Funny vote APP – MVP Kotlin 改版雜記(2022)
- 機器人定位:SLAM Note – NDT TKU(2024)
- 跨平台初探:React Native 學習筆記(2016)
- 原生模組互通:React native Native android module – my god, many issue(2016)
九、 早期經典套件、資料庫 ORM 與生態拓荒史(10 篇)
- 網路庫演進:Retrofit 2 — How to Upload Files and Parameter list to Server
- 網路庫演進:Android volley customize request gzip and gson
- ORM 資料庫:GreenDao 3 Introduction
- ORM 資料庫:Android ORM Library – Green DAO(一) introduction
- ORM 資料庫:Android ORM Library – Green DAO(二) Question Why can’t set default value for entity
- 視圖綁定:Android ButterKnife introduction
- 社群整合:Facebook api on Android Login FB AP on device
- 數據認證:Google Analytics Individual Qualification (GAIQ) GET !
- 數據追蹤:Android google analyze 使用教學(一) 初始化
- 編譯打包:Android studio release jar by gradle
十、 軟體工程思維、大師書摘與漫談(5 篇)
- 代碼整潔之道:Clean Code 無瑕的程式碼 – 書摘心得(一)
- 代碼整潔之道:Clean Code 無瑕的程式碼 – 書摘心得(二)
- 職業素養思維:The Clean Coder 無瑕的程式碼 番外篇 – 書摘心得
- 工程哲學漫談:約爾趣談軟體 – 筆記
- 知識萃取:Android 好文整理(2015)
附錄:待整理深入技術草稿(12 篇)
本區塊為已撰寫核心架構但尚未於 WordPress 線上公開發布的內部深水區技術草稿,已完整導出為 Markdown 存檔於本地。
- [草稿] Jetpack Compose 的性能優化建議(本地存檔 post_625)
- [草稿] Flow vs Channel & SharedFlow vs StateFlow(本地存檔 post_657)
- [草稿] LaunchedEffect 和 rememberUpdatedState and snapshotFlow(本地存檔 post_703)
- [草稿] produceState 橋接非 Flow 的「回呼」或「監聽器」模式(本地存檔 post_707)
- [草稿] 狀態容器、連帶效果 API(LaunchedEffect、rememberUpdatedState、DisposableEffect)(本地存檔 post_711)
- [草稿] Cache the result of the network request(本地存檔 post_781)
- [草稿] ActivityRetainedComponent vs ActivityComponent(本地存檔 post_815)
- [草稿] @EntryPoint 機制,在無法使用標準 @Inject 的類別中手動提取 Hilt 依賴(本地存檔 post_818)
- [草稿] strong skipping mode(本地存檔 post_827)
- [草稿] Android system design(本地存檔 post_860)
- [草稿] Mobile system design 實踐指南(本地存檔 post_862)
- [草稿] 解決 Jetpack Compose 中效能問題的實用做法(本地存檔 post_866)