原创 View 繪製流程和刷新機制

1. 前言 當 Activity 啓動時候,會調用到 ActivityThread 的 handleResumeActivity 方法。在瞭解此篇文章的時候,先了解 Activity 、 Window 、 View 之間的關係,從這裏可以

原创 WebView 使用與優化

1.前言 之前開發過一款軟件是 Android 原生 + Vue,裏面就涉及到使用 WebView 加載 web 的頁面。對於 Android 端來說,涉及到的技術就是 Android 原生調用 Web 以及 Web 如何調用 Andro

原创 Android Jetpack 之 App Startup

1. 概述 最近這幾天關注的幾個公衆號陸續推送關於 App Startup 的相關文章,就知道又要學習新知識了。App Startup  和 Lifecycle 、DataBinding 一樣都是 Jetpack 的組件之一。目前 App

原创 Leetcode: 實現 strStr()

題目: 實現 strStr() 函數。 給定一個 haystack 字符串和一個 needle 字符串,在 haystack 字符串中找出 needle 字符串出現的第一個位置 (從0開始)。如果不存在,則返回  -1。 示例 1: 輸入

原创 Leetcode: 羅馬數字轉整數

題目: 羅馬數字包含以下七種字符: I, V, X, L,C,D 和 M。 字符          數值 I             1 V             5 X             10 L             50

原创 Leetcode: 最長公共前綴

題目: 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 ""。 示例 1: 輸入: ["flower","flow","flight"] 輸出: "fl" 示例 2: 輸入: ["dog","rac

原创 Java數據結構:樹基礎及二叉樹

1. 樹的簡介 1.1 樹的定義 樹是一種特殊的數據結構,它可以用來描述有分支的結構,是由一個或一個以上的節點所組成的有限集合。 1.2 樹的特點 a. 存在一個特殊的節點,稱爲根節點; b. 沒有父節點的節點稱爲根節點; c. 每一個非

原创 Kotlin 學習:基本語法

1. 函數 1.1 函數的聲明 函數定義使用關鍵字 fun,參數格式爲:參數 : 類型 fun sum(a: Int, b: Int): Int { return a + b } 1.2 省略返回值類型

原创 Android 約束佈局(ConstraintLayout)的使用

1. 概述 在Android中有許多的佈局,比如 RelativeLayout,LinearLayout,FrameLayout 等,但是這些佈局使用起來,需要一層層的嵌套。ConstraintLayout的誕生,是爲了解決在開發中的複雜

原创 Android Jetpack 之 Paging(未完成)

1.概述 The Paging Library helps you load and display small chunks of data at a time. Loading partial data on demand reduc

原创 Kotlin 學習:Hello Kotlin

雖然 Kotlin 推出來幾年了,說來慚愧,至今都沒去學習過。以前做的是 Android 系統APP的開發,在公司的項目不會用到,都是用Java語言進行開發。雖然換了一家做手機APP的公司,但是項目已經存在很久並且穩定,無法再去做大規模的

原创 Android 熱修復:阿里Sophix的集成

1. 前言 當我們剛發佈一個版本後,突然發現了一個嚴重的bug。由於剛發佈版本,這時候如果再緊接着發佈一個版本,這時候給用戶的體驗肯定很差。而熱修復技術可以在用戶不知道的情況下修復已知的bug。目前各大廠都推出了自己的熱修復方案,各個方案

原创 Android Bitmap 的優化

1. 概述 Android 中的圖片是以 Bitmap 方式存在的,繪製的時候也是 Bitmap,直接影響到app運行時的內存。通過 ImageView 來顯示圖片,很多時候 ImageView 並沒有原始圖片的尺寸那麼大,這個時候把整個

原创 Android 自定義控件:組合控件

自定義組合控件就是多個控件組合起來成爲一個新的控件,用來解決多次重複的使用同一類型的佈局,比如對話框、APP的標題欄等。這裏列舉一個最近項目開發中自定義的組合控件。 先看做好的效果: 自定義的選擇按鈕 按鈕選中的樣式: <?xml v

原创 Android App 啓動流程梳理(基於 Android 10)

1. 概述 當我們點擊桌面的應用圖標,直到應用的啓動頁出來,這期間的在源代碼的流程中到底是什麼樣子的?之前追過 Android App 啓動的相關源碼,由於沒有做相關記錄,時間一久,已經忘得差不多了。現在有時間,也下載了 Android