原创 一種簡單易懂的 Android 項目模塊間解藕方案

在 Android 開發中,當項目增加一定規模之後,一般都會採用多模塊的項目結構。當然也能採用插件化的開發模式,具體採用什麼開發模式,開發者可以自行定奪。這裏將介紹下我所熟悉的一種模塊化開發機制。本質是基於 gradle 的 Multi-P

原创 移動化你的 Merge Request 操作, Flutter GitLab 客戶端 F4Lab

F4Lab Flutter for GitLab. 歡迎參加一起完成 🎉🎉🎉🎉 Flutter4GitLab 爲啥做 GitLab 客戶端 🙈 現在很多同學公司應該都是用 GitLab 來做代碼管理的,如果手機上有客戶端能方便的合下

原创 解析 JVM 字節碼結構

按照JVM 字節碼的存儲格式 https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html 規範,使用 Java 實現 https://github.com/stefanJi/

原创 Android LruCache 緩存機制實現原理 LRU 算法描述 LinkedHashMap 的實現 總結

通過使用 LruCache, 查看 LinkedHashMap 源碼, 分析 LRU 算法的具體實現細節. LRU 算法描述 當序列達到設置的內存上限時, 丟棄序列中最近最少使用的元素. LruCache Android SDK 提

原创 使用 Flutter 自定義一個 ProgressBar - IntervalProgressBar

一個支持間隔,多色,圓角,水平,豎直的進度條 特點 支持水平和豎直方向 支持進度條間隔顏色 支持多色設置 支持起始圓角 使用方式 Center( child: Row( mainAxisAlignment: M

原创 理解 Flutter 中的 Key

通過實際案列理解 Flutter 中 Key 在其渲染機制中起到的作用,從而達到能在合理的時間和地點使用合理的 Key. 概覽 在 Flutter 中,大概大家都知道如何更新界面視圖: 通過修改 State 去觸發 Widget 重建,

原创 Android LruCache 緩存機制實現原理

通過使用 LruCache, 查看 LinkedHashMap 源碼, 分析 LRU 算法的具體實現細節. LRU 算法描述 當序列達到設置的內存上限時, 丟棄序列中最近最少使用的元素. LruCache Android SDK 提

原创 Flutter 自定義繪製 View

在 Flutter 中自定義 View 有兩種方式: 組合已有控件 自定義繪製 如何自定義繪製 有兩個類做這件事情: CustomPaint :會在繪製階段提供一個 Canvas 畫布 CustomPainter : 具體的畫筆,

原创 Flutter自定義View Canvas 繪製例子

實例代碼另有工具項目: GitLab Flutter 客戶端

原创 Android Binder 應用層調用過程分析

Android 上的多進程情景 Android 中每個應用的進程都 fork 自 Zygote 進程, Zygote 進程在啓動時自己會創建一個虛擬機,從而也就讓每個應用擁有了自己的虛擬機。 當應用涉及多進程時,想當於啓動了多個虛擬機,在單

原创 來一發 Flutter 練手項目,一個 GitLab 客戶端,歡迎一起寫

logo.png F4Lab Flutter for GitLab. 歡迎參加一起完成下面的功能 🎉🎉🎉🎉 Repo: Flutter4GitLab Features App [x] Login by Personal

原创 從 LayoutInflater 看 Android 中的單例模式

經常使用 Context.getSystemService(String name) 獲取一些系統服務。 其實這些服務都是以單例的方式註冊在系統中的。 獲取到的都是單例對象。 LayoutInflater 爲例 在 View 中經常通過 L

原创 Android貝塞爾曲線應用-跳動的水滴

jumpWater 主要通過6個控制點實現。 val startPoint = PointF() val endPoint = PointF() val control1 = PointF() val control2 = Po

原创 使用Kotlin命令行工具學習Kotlin

1. 安裝Kotlin compiler 1. 手動操作 從Github Releases下載最新版。 解壓得到: ├── bin │ ├── kotlin │ ├── kotlin.bat │ ├── kotlinc │

原创 RecyclerView 通用 Adapter

先看使用方法 👀 Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositori