原创 Java線程Dump分析

Thread Dump介紹 什麼是Thread Dump Thread Dump是非常有用的診斷Java應用問題的工具。每一個Java虛擬機都有及時生成所有線程在某一點狀態的thread-dump的能力,雖然各個 Java虛擬機打

原创 如何在Activity中獲取調用者 -- getReferrer()

如何在Activity中獲取調用者 – getReferrer() 前言 爲什麼要在Activity中獲取調用者? 主要是安全和定製兩個方面的需求吧。 安全需求: 一般Activity如果已經對外開放了(即exported爲t

原创 Android應用程序的啓動過程

前言 在Android系統中,Activity和Service是應用程序的核心組件,它們以鬆藕合的方式組合在一起構成了一個完整的應用程序,這得益於應用程序框架層提供了一套完整的機制來協助應用程序啓動這些Activity和Servi

原创 git 出現 error Missing tree 的處理辦法

問題 公司搭建了 gerrit 代碼審覈服務器.有較低的概率(目前團隊中出現過兩例),在 git push 提交時,出現如下錯誤: git push --receive-pack='git receive-pack --revie

原创 在 Android Studio 上實時調試數據庫( SQLite )

SQLScout 安裝 SQLScout 是一個 Android Studio 的插件,通過點擊: Setting —> Plugings —> Browse Repositories 搜索 SQLScout 安裝即可。 要是下

原创 JAVA設計模式之單例模式

概念 java中單例模式是一種常見的設計模式,單例模式的寫法有好幾種,這裏主要介紹三種:懶漢式單例、餓漢式單例、登記式單例。 單例模式有以下特點: 單例類只能有一個實例。 單例類必須自己創建自己的唯一實例。 單例類必須給所有其

原创 Android開發@IntDef完美替代Enum (枚舉)

概要 Enum 是 java 中一種包含固定常數的類型,當我們需要預先定義一些值時,我們使用 Enum,這樣做通常爲了在編譯時期避免接受額外常量引起的錯誤。 而且,Enum 增加了APK 的大小,比常量多5到10倍的內存佔用,這是

原创 HashMap工作原理

前言 幾乎每個Java程序員都知道HashMap,都知道哪裏要用HashMap,知道Hashtable和HashMap之間的區別 ,那麼爲何這個問題如此特殊呢?是因爲這個問題的深度很深。ConcurrentHashMap和其它同

原创 JAVA / Android 設計模式之適配器(Adapter)模式

簡介 定義 適配器模式,即定義一個包裝類,用於包裝不兼容接口的對象 包裝類 = 適配器Adapter; 被包裝對象 = 適配者Adaptee = 被適配的類 主要作用 把一個類的接口變換成客戶端所期待的另一種接口,從而使原本

原创 JAVA / Android 設計模式之建造者(Builder)模式

前言 在使用一些熱門第三方框架的時候,我們往往會發現,比如okHttp的client,初始化retrofit 對象,初始化 glide 對象等等,都用了這樣: Retrofit.Builder() .baseUrl(baseUrl

原创 JAVA / Android 設計模式之策略模式

前言 策略模式屬於對象的行爲模式。其用意是針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,從而使得它們可以相互替換。策略模式使得算法可以在不影響到客戶端的情況下發生變化。 背景 在軟件開發中常常遇到這種情況,實現某一個

原创 源碼解析view的顯示判斷用isShown()還是View.VISIBLE

前言 平時我們對View的顯示判斷都是用簡要的方式去判斷,那麼,究竟是用view.isShown()去判斷還是用view. getVisibility() == View.VISIBLE 判斷好呢?其實可以來看看源碼 源碼 i

原创 編譯出錯 ninja: build stopped: subcommand failed Android

解決方法 錯誤:ninja: build stopped: subcommand failed. 辦法一:按照提示:ulimit -c unlimited 該命令的詳細解釋參考:https://www.cnblogs.com/q

原创 Android 適配之FileProvider的使用

Android 7.0 文件權限的變化 爲了提高私有文件的安全性,在targetSdk版本爲N或者以後版本的app中,其私有目錄將會限制訪問。這可以防止私有文件元數據的泄露,比如文件大小或者是文件是否存在。但這給開發者帶來了一些不

原创 使用Android Studio批量轉換圖片爲Webp格式

簡介 Webp是一個現代的圖片格式提供優秀的無損和有損壓縮。使用Webp我們可以創建更小更豐富的圖片。 Webp無損圖片比PNG圖片的size小26%。Webp有損圖片在同等SSIM(結構化相似)質量下比JPEG小25-34%。無