原创 安卓代碼學習錄

1.爲什麼有一些代碼在Actviity不做任何的操作,但是在Activity上填充一個Fragment去實現? 彪友大神回答:Fragment利於後續的擴展,比如你有多個頁面內顯示同一個fragment ,只是根據不同的類型就可以顯示不同

原创 View繪製流程源碼解析-第一篇

文章目錄繪製流程概覽Android啓動流程分析 繪製流程概覽 Android程序啓動 -> Activity加載並調用生命週期onCreate -> Activity調用setContentView -> UI繪製 Android

原创 Xposed模塊初體驗——第一篇

注:所有的資源可以在文章末尾下載 什麼是Xposed框架 ? Xposed框架是一套開源的、在Android高權限模式下運行的框架服務,可以在不修改APK文件的情況下影響程序運行(修改系統)的框架服務,基於它可以製作出許多功能強大

原创 劍指Offer數組習題-合併兩個有序數組

劍指Offer數組習題-合併兩個有序數組題目描述題目題解(Java) 題目描述 有兩個排序的數組A1和A2,內存在A1的末尾有足夠多的空餘空間容納A2。請實現一個函數,把A2中所有的數字插入到A1中並且所有的數字是排序的。 題目題

原创 如何創建Android Studio工程的git本地倉庫——初級篇

由於我使用的是Mac,所以僅僅針對今天學習的Mac上的創建git本地倉庫經驗來分享一下。 貼個鏈接,git入門好幫手   http://rogerdudler.github.io/git-guide/index.zh.html 首先是安裝

原创 學習項目代碼總結(一)—— ListView的自定義Adapter的性能提升與注意事項

1.關於 getCount()這個方法:首先要判斷填充的數據是否爲null,其次填充數據的size是否爲0。 @Override public int getCount() { if (mList != null && mLis

原创 Xposed問題合集

1、Xposed框架xx版已安裝,但未激活。請檢查日誌的詳細信息。 問題場景:在使用VirtualXposed安裝Xposed的時候報錯,偶現。 解決辦法:重裝 VirtualXposed App

原创 View繪製流程源碼分析-第二篇

關於:getLayoutInflater().inflate,這是自己看源碼的筆記,作爲記錄篇,最近會將其整理出來 activity.getlayoutinflater getWindow(PhoneWindow).getlayout

原创 八大排序之快速排序

八大排序之快速排序快速排序(Quick Sort)樞軸(pivot)函數構成算法圖解代碼(java)實現 快速排序(Quick Sort) 通過一趟排序將待排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小,則

原创 Handler源碼解析系列一

Handler源碼解析系列一什麼是Handler消息機制Handler消息機制的工作流程圖Handler的源碼解析Handler使用案例Handler是如何將消息加入到消息隊列?Handler如何從消息隊列獲取消息?主線程的Loope

原创 Enum源碼解析

Enum源碼解析前言enum關鍵字到底爲我們幹了什麼?Enum類是怎麼保證線程安全的呢?Enum類是怎麼保證反射安全的呢?Enum類是怎麼保證序列化安全的呢?結束語 前言 真正想要去了解枚舉是因爲最近在研究單例模式,瞭解到枚舉可以做到

原创 單例模式深入解析(Java)

單例模式深入解析前言單例模式的五種寫法方案一: 餓漢式方案二:懶漢式方案三:線程安全方案四:雙重校驗鎖方案五:靜態內部類方案六:枚舉單例模式的線程安全volatile單例模式的反射安全單例模式的序列化安全總結推薦閱讀 前言 相信各位對

原创 LeetCode練習記錄- 兩數相加(kotlin)

LeetCode練習記錄- 兩數相加題目描述題目題解(kotlin)解一:遞歸代碼源碼反思解二:循環代碼源碼反思 題目描述 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節

原创 Handler源碼分析

Handler源碼分析 首先分析主線程調用Handler的流程 一般在Activity中,創建一個靜態內部類,Handler的子類 在Activity中使用的時候,直接調用構造函數創建實例 /** * 默認構造函數,將

原创 JAVA名字正則表達式(包含新疆姓名)

名字正則表達式(包含新疆)普遍的寫法生僻字 普遍的寫法 private static final Pattern CHINESE_XINJIANG_PATTERN = Pattern.compile("^[\u