原创 記一次解決ANR問題的筆記

記錄一次解決ANR問題的筆記: 起因: 在項目提測之後,QA同學提了一個ANR的bug,然後按照她的步驟走了一遍,發現沒有復現,所以懷疑是機型或者是賬號的問題,於是把QA同學的手機借來又試了一遍,還是沒有復現,於是懷疑跟賬號有關係

原创 路由框架ARouter使用及源碼解析(一)

系列文章: 路由框架ARouter使用及源碼解析(一) 路由框架ARouter使用及源碼解析(二) 文章目錄系列文章:一、什麼是路由?二、阿里ARouter2.1、配置&初始化2.1、基本跳轉2.3、獲取Fragment實例2.4、進

原创 路由框架ARouter使用及源碼解析(二)

系列文章: 路由框架ARouter使用及源碼解析(一) 路由框架ARouter使用及源碼解析(二) 文章目錄ARouter解析註解ARouter初始化ARouter跳轉 上一篇主要介紹了ARouter的使用,本篇來分析一下ARoute

原创 Gradle理論與實踐四:自定義Gradle插件

文章目錄Gradle插件一、Java Gradle插件二、Android Gradle插件2.1、應用Android Gradle插件三、自定義Gradle插件3.1、Build script3.2、buildSrc project3

原创 Gradle理論與實踐三:Gradle構建腳本基礎

文章目錄Gradle構建腳本基礎1、創建一個task2、創建Task的幾種方式3、Task內部執行順序4、Task任務依賴5、自定義屬性 Gradle構建腳本基礎 Project:根據業務抽取出來的一個個獨立的模塊 Task:

原创 Gradle配置中subprojects 和 allprojects 的區別

subprojects 和 allprojects 的區別,先給出結論,然後通過一個例子來佐證結論。 結論:allprojects是對所有project的配置,包括Root Project。而subprojects是對所有Child

原创 Gradle理論與實踐二:Groovy介紹

文章目錄Groovy介紹1、字符串處理2、集合的聲明與操作ListMap3、方法4、閉包 Groovy介紹 Groovy是基於JVM虛擬機的一種動態語言,語法和Java非常相似,Groovy代碼在執行時同樣編譯成Class字節碼在JV

原创 Gradle理論與實踐一:Gradle入門

文章目錄Gradle入門1、配置Gradle環境2、Gradle之Hello World3、gradle 與gradlew的區別4、Gradle命令介紹5、Gradle 工作流程 Gradle入門 Gradle一門DSL(Domain

原创 GIT常用命令總結(持續更新中...)

GIT常用命令總結 刪除遠程分支 git push --delete origin 分支名 修改提交人的姓名和郵箱 全局替換: git config --global user.name 用戶名 git config --gl

原创 Android基於DialogFragment封裝一個通用的Dialog

文章目錄一、背景二、效果圖三、爲什麼選擇DialogFragment?四、UML圖五、使用文檔1、使用內置dialog:2、使用自定義佈局的樣式:3、統一管理多個Dialog依次彈出六、源碼地址 一、背景 Dialog是項目中最常用的

原创 Android使用LruCache、DiskLruCache實現圖片緩存+圖片瀑布流

PS:本文中的例子來源於官網地址:Caching Bitmaps,源碼地址(自備梯子):Caching Bitmaps Demo,並在其基礎上稍微改變了一下。 PPS:本文僅用於學習利用LruCache、DiskLruCache圖片緩存策

原创 Android仿QQ側滑菜單

先上效果圖: GIF圖有點模糊,源碼已上傳Github:Android仿QQ側滑菜單 整體思路: 自定義ItemView的根佈局(SwipeMenuLayout extends LinearLayout),複寫onTouchEvent

原创 深入理解Android渲染機制

基礎知識 渲染機制分析 渲染流程簡介 渲染時間線 渲染常見問題 GPU過度繪製 Android渲染優化 去掉不必要的界面: 佈局層級優化 圖片格式選擇 當背景無法避免,儘量用Color.TRANSPARENT 基礎知識

原创 Java自定義註解及解析

目錄: 註解 定義註解 註解處理器運行時解析註解 編譯時解析註解自動生成.class代碼 總結 註解 註解爲我們在代碼中添加信息提供一種形式化的方法,使我們可以在源碼、編譯時、運行時非常方便的使用這些數據。 註解是在JAVA

原创 Android 採用AOP方式封裝6.0權限管理

本篇文章已授權微信公衆號 hongyangAndroid(鴻洋)獨家發佈 目錄: 【一】背景 【二】效果圖 【三】整體思路 【四】使用舉例 4.1 申請單個權限 4.2 申請多個權限 4.3 跳轉到設置類 【五】總結 【六】源碼