原创 WeakHashMap與Java引用相關

記得在很久之前有寫過一篇《Java中的Reference解析》,主要講的是Java中的四種引用方式與引用隊列,不過這些都是基礎的理論知識,最近開發項目中有使用到WeakHashMap,對於Java的引用以及引用隊列有了更深的瞭解,

原创 Java中Lambda表達式解析

在大部分開發者看來,Lambda表達式只是一種語法糖,簡化了書寫匿名內部類的寫法。實際上Lambda表達式並不僅僅是匿名內部類的語法糖,JVM內部是通過invokedynamic指令來實現Lambda表達式的,與內部類的實現有很大

原创 Android LeanCloud 從簡單的單聊、羣聊、收發圖文消息開始 Connection Lost錯誤

官方文檔寫的真是把人搞得沒脾氣…… 6.0之後看這份官方文檔走起-> https://leancloud.cn/docs/realtime-guide-beginner.html 結果Connction Lost錯誤,文檔也沒有說

原创 Java中的Reference解析

前言 Java執行GC判斷對象是否存活有兩種方式其中一種是引用計數。 引用計數:Java堆中每一個對象都有一個引用計數屬性,引用每新增1次計數加1,引用每釋放1次計數減1。 在JDK 1.2以前的版本中,若一個對象不被任何變量引用

原创 《費馬大定理》-站在巨人的肩膀上

大約在1637年左右,法國學者費馬在閱讀丟番圖《算術》拉丁文譯本時,曾在第11卷第8命題旁寫道: 將一個立方數分成兩個立方數之和,或一個四次冪分成兩個四次冪之和,或者一般地將一個高於二次的冪分成兩個同次冪之和,這是不可能的。關於

原创 想統計自己總共提交了多少行代碼?

作爲一名程序員,我們很想知道自己到底提交了多少行代碼到遠程倉庫,有沒有什麼工具能夠幫我們統計自己寫過的代碼行數呢?答案是有的。這是本次博文的最終效果。 對於代碼提交行數統計,通過git 的系統命令就能做到,如下代碼所示 git

原创 從奶酪夾心餅乾生產中來學習Android 中的gradle構建

最近終於有機會做一些關於Android plugin相關的東西,之前雖然有學習過《Android 權威指南》一書,但是並沒有進行一個實戰操作,都是一些理論相關的學習。最近做了一個plugin主要是爲了提取class文件裏面的註解信

原创 一款快速生成安卓shape的插件--NoCodeShape

一、NoCodeShape介紹 NoCodeShape是一個能可視化界面操作生成Android中Shape.xml的Android Studio插件。對於新手能更好的去接受Android中相對應的屬性,對於資深程序員則能簡化操作,

原创 Android骨架屏效果的實現與原理解析

0、前言 大家在使用淘寶的時候,如下圖所示有遇到這樣的效果,其會只展示一部分骨架大致圖,等數據加載完畢之後再展示真正的頁面數據。與菊花圖相比起來,這樣的實現能更好的提升用戶的體驗,這種效果稱做:Skeleton Screen Lo

原创 Android插件化之DexClassLoader

0、前言: 插件化要解決的三個核心問題:類加載、資源加載、組件生命週期管理。 在Android插件化中其原理實際是 Java ClassLoader的原理,此博文主要對Android插件化中類加載中的DexClassLoader做

原创 報錯:Binary XML file line #0: Attempt to invoke virtual method 'boolean java.lang.String.equals

完整報錯: Binary XML file line #0: Attempt to invoke virtual method ‘boolean java.lang.String.equals(java.lang.Object)’

原创 Android監聽系統截屏的坑

最近有做在監聽系統截屏操作,然後對截屏的圖片獲取到,再在其底部加入二維碼或者其他信息生成分享海報。這裏面最不好做的就是監聽系統截屏的操作了,系統沒有提供相關api,所以得靠“騷操作”,目前業內主流的操作,像這篇博文寫的那樣:htt

原创 單例模式的設計

我們都知道單例模式很簡單,大概是這樣: //單線程單例模式實現 public class Singleton { private static Singleton instance=null; public sta

原创 Android監聽截屏事件之媒體讀取的探索

最近做了一個需求:監聽用戶截屏,然後生成相關海報。 參考了Android 截屏事件監聽的文章,大致思路是: 1、利用ContentObserver用來監聽指定Uri的所有資源變化,當媒體庫中有相關圖片新增的時候,則發送相關的通知。

原创 基於Volley框架的返回數據的範型處理

在平時最普通的Volley的網絡請求中,我們StringRequest是這樣請求網絡數據的: StringRequest stringRequest = new StringRequest("http://www.baidu.com"