原创 RadioButton的簡單實踐

前言 今天來實現一個設計圖中的tab切換按鈕,只需要點擊切換不需要滑動,所以我直接鎖定了RadioButton來實現。 樣式 背景圖 上面的tab切換可以看見外觀是矩形圓角,但是我用RadioButton是左右兩個按鈕,所以需要

原创 JetPack系列之ViewModel進行數據共享

前言 目前Fragment的傳值可以使用Bundle,JetPack使用數據分離的思想,利用ViewModel來達到Fragment之間傳值的目的,下面我來講解下。 開始 這篇文章涉及了Databing,Navigation,Vi

原创 性能優化系列——內存泄漏

前言 之前寫了一篇《性能優化系列-內存抖動》簡單實用Memory Profiler工具解決內存抖動的情況,這邊文章寫實用工具配合MAT解決內存泄漏。 內存泄漏介紹 定義:內存中存在已經沒有用的對象 表現:內存泄漏引起,內存泄漏,

原创 使用圖片混合模式改變點亮圖標

前言 今天使用ImageView.setColorFilter()方法的時候,在A界面改變一個drawable狀態,其他B,C,D…若引用了這個drawable則會同樣的進行狀態改變,我想這應該是android的內存優化的機制,下

原创 Java技巧-簡單狀態機編寫

前言 最近項目中需要對上傳的接口進行順序上傳和步驟記錄,所以這裏編寫一個狀態機用例。 實戰 public class StatusMachine { //重點1:狀態值是固定的寫法 @Retention(Retentio

原创 性能優化系列——內存抖動

前言 通常在我們編寫程序的時候,如果對象頻繁的創建或者銷燬就會出現內存抖動的現象,如果我們熟悉Java虛擬機的內存回收機制的話,會造成下面兩種現象。 頻繁創建對象,導致內存不足以碎片(不連續) 不連續的內存片無法被分配,導致OO

原创 安卓打包APK簡單配置流程

前言 最近項目需要進行簽名打包的時候比較多,簡單記錄下打包需要編寫的文件,方便以後拷貝和查詢。 打包流程 編寫app模塊下的build.gradle文件 首先,gradle是線性翻譯的語音,這裏需要注意下閉包的編寫順序。整個打包入

原创 adb常用命令

前言 最近在開發當中會經常使用adb命令去進行日誌排查,這裏列舉一下常用的命令。方便後期使用,這裏實時更新。 常用命令 卸載應用: adb uninstall 包名 例:卸載微信 adb uninstall com.tencen

原创 【解析Glide2.0源碼】Glide中的單元測試

前言 其實,爲什麼要寫一篇文章來專門講解一下Glide的單元測試呢,主要還是我看了下Glide版本的變遷,發現他做了很多單元測試。這也提醒了我,如果要編寫一個性能好的框架,單元測試絕對是必不可少的,所以我想以這邊文章來做一些單元測試方

原创 定製化ROM採坑之路:git的常用命令

前言 最近在查看源碼的時候,大多數是在窗口中去使用git,這裏記錄下我在日常中經常使用的一些命令,方便以後查詢。這篇文章分爲三個部分: 第一個部分介紹Git的一些必備的基礎概念。 第二個部分介紹一些常用的命令 第三個部分根據介紹的常

原创 shell腳本調試工具的安裝和使用

前言 目前在查看Android源碼時候發現有很多shell腳本,由於方便我自己去調試腳本,就去查找了下腳本調試工具bashdb,如果大家之前使用過gdb的調試工具可以很容易的掌握,下面是我對常用命令的使用心得分享,更詳細的內容可以查看

原创 解決iTerm2在MacOS 最新系統Mojave亂碼問題

更新Mojave後,突然發現遠程連接原來linux服務器,報一個警告:-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or

原创 從0開始學大數據(6):HDFS的數據流

前言 通過上一章《從0開始學大數據(5):HDFS文件系統和常用API》我們學習了一些常用的API進行分析,這章我們來分析HDFS的數據流的寫入和讀取流程。 1 HDFS寫數據的流程 1.1 剖析文件寫入 1.2 網絡拓撲概念 在海

原创 定製化ROM採坑之路:makefile簡單入門

1.前言 最近在看Android源碼中涉及到了大量的Makefile文件,想通過這篇文章的學習掃如何編寫一個簡單的makefile文件,在後續的學習過程中,如果還有其他問題可以直接去官網繼續學習,國內的教程還有一個陳皓大神寫的《跟我一

原创 定製化ROM採坑之路:自己動手調試Android源碼(超簡單)

前言 這篇文章轉載的是一篇簡書上的文章自己動手調試Android源碼(超簡單),作者寫得很詳細由於方便查詢我在這裏把他的內容完整的轉載到我的博客中,如果喜歡的就直接區看下原文吧。 下面,我們來說說如何調試源碼.同樣這裏的工作平臺還是u