原创 如何優雅的實現“查看更多”

開始前 大家做一些文本簡介展示需求時可能會遇到文本過長的場景,這時視覺同學可能會要求設置最大行數並在末尾展示"查看更多"(後面簡稱 MoreText)。廢話不多說,先看下要求實現的效果(圖爲實現後的Demo效果): 通過看效果很明顯簡單的

原创 記一次優雅的回調方式

最近在用 Lifecycle 時學到了一種優雅的回調寫法,特此記錄一下。 普通回調 我們在寫業務邏輯時難免會遇到需要設置回調的場景,也就是觀察者模式,例如下面這個觀察者: public interface Observer {

原创 Android Transform API

上一章知道如何自定義 Gradle插件後,我們到底可以用來做什麼呢?難道只是用來定義一些簡單的 Task?本章給你答案! 什麼是 Transform API Android Gradle 工具從 1.5.0-beta1 版本開始,包含了

原创 Android ASM 插樁實踐

上一章知道了如何獲取 class 文件,那該如何進行插樁呢?本章告訴你! 什麼是 ASM? ASM 是一個字節碼操作庫,它可以直接修改已經存在的 class 文件或者生成 class 文件。 ASM 提供了一系列便捷的功能來操作字節碼內

原创 Android Gradle 插件基礎

本章跟大家一起探討下 Gradle 基礎知識:Project、Task和插件,由於是作爲插樁的鋪墊,所以我們重點放在 Gradle 插件 上,其他基礎知識自行查閱。 Project(項目) 以咱們熟悉的 Android 項目舉例說明:

原创 快速上手 Kotlin 開發系列之什麼是協程

站在巨人的肩膀上做個筆記,摘錄自:https://kaixue.io/kotlin-coroutines-1 協程是什麼 協程的概念並沒有官方的或者統一的定義,協程原本是一個跟線程非常類似的用於處理多任務的概念,是一種編程思想,並不侷

原创 快速上手 Kotlin 開發系列之類型映射

本節介紹 Kotlin 中類型映射。 Kotlin 中有一個比較有意思的關鍵字:typealias,有點類似於 C/C++ 代碼中的 define,可以將一個類映射到另一類上,但是不同的是 C/C++ define 是宏定義會在編譯時轉

原创 快速上手 Kotlin 開發系列之協程的掛起

站在巨人的肩膀上做個筆記,摘錄自:https://kaixue.io/kotlin-coroutines-2 前言 上一節中我們提到了下面的示例,它使用了 async 關鍵字來創建一個協程。 launch(Dispatchers.Mai

原创 快速上手 Kotlin 開發系列之反引號

本節詳細介紹 Kotlin 中的反引號。 首先需要明確反引號是哪個,反引號:鍵盤左上角與波浪線在一起的符號。 在 Kotlin 中反引號有兩個特性: 可以解決關鍵字衝突的問題 可以強行將一個不合法的字符變爲合法 其中第 1 個特性在

原创 快速上手 Kotlin 開發系列之集合操作符 (2)

本節接上一篇繼續介紹 Kotlin 的集合操作符和如何自定義集合操作符。 通過上一節 Rxjava 的示例,我們把同樣的功能使用 Kotlin 來實現。 Kotlin 示例 附上整體代碼: fun main() { val a

原创 快速上手 Kotlin 開發系列之比較對象

本節介紹 Kotlin 中對象的比較。 Java 比較對象 我們知道 Java 在比較對象的時候,是通過 == 來判斷兩個對象是否完全相同,通過 equals 方法判斷兩個對象的值是否相同: public static void mai

原创 快速上手 Kotlin 開發系列之作用域函數(1)

本節介紹 Kotlin 中的作用域函數。 作用域函數是什麼 作用域函數是 Kotlin 內置的可以對數據做一系列變換的函數。它們與集合的操作符非常的相似,但是集合的操作符只能用於集合的數據變換,而作用域函數可以應用於所有對象,它可以對所

原创 上手 Kotlin 開發系列之集合操作符 (1)

本節通過 RxJava 的集合操作引入 Kotlin 的集合操作符。 如果大家有用過 RxJava 一定對操作符的概念並不陌生,RxJava 允許我們對數據做一系列的鏈式調用,在每一步中改變數據的格式,最終得到我們想要的數據。Kotli

原创 手擼一個簡單的網絡框架

開始前 網絡訪問框架關心的問題: 能併發接受多個請求,並返回"用戶"需要的數據 重試機制 實現方式: 隊列 線程池 網絡框架實現步驟 創建線程池管理類(隊列,線程池) 封裝請求參數 封裝響應數據 封裝請求任務 封裝"使用工具" 添

原创 Git常用命令

拉取代碼 git pull 提交代碼 git push 切換分支 git checkout dev(分支名稱) 查看代碼提價狀態 git status 查看log git log 查看當前本地分支 git branch 查看修改內容 git