原创 ARouter源碼分析(一)—— 路由跳轉分析

相關工程githubhttps://github.com/AlexMahao/ARouter 邏輯分析 Arouter的路由跳轉整體可分爲三個步驟: 編譯時期利用Processor生成路由清單文件。 運行時期加載路由清單文件

原创 Android 單元測試實戰(3)—— 基於Cobertra&sonarqube的單元測試覆蓋率統計

Jacoco 在聊到單元測試覆蓋率的時候,基本上都會使用jacoco做覆蓋率檢測,但通過集成發現與Powermock有兼容性問題。 對於Powermock上使用@PrepareForTest的類,都無法檢測覆蓋率。導致覆蓋率幾乎爲

原创 解決Gradle下載慢的問題

gradle在更新版本時,下載的會非常的慢,往往半個多小時還不能下載成功。 現在gradle提供了加速的下載點。只需要修改工程目錄的gradle目錄下的gradle-wrapper.properties的下載鏈接。 從servic

原创 Android jni 集成 Address Sanitizer

Address Sanitizer 該工具是google開源,用於對c++中的代碼進行質量檢測。 具體介紹:https://developer.android.google.cn/ndk/guides/asan?hl=zh_cn

原创 Android 單元測試實戰(2)—— 基於Powermock的常用方法指南

上一篇中,基於調研和分析,決定使用Powermock完成單元測試的編寫。 關於Powermock的使用方式,網上有很多的文章進行解釋,下面僅僅介紹一些在Android上的常用姿勢。 隨着時間推移,該文章會不斷完善。 Mock vs

原创 Android 單元測試實戰(1)—— 調研與選型

Android 單元測試實戰(1)—— 調研與選型 單元測試搞了一段時間,發現網上很多關於單元測試的文章都是講了概念,講了框架的使用,但對於一個實際的項目的操作,因爲項目的複雜性,框架的穩定性等,確往往無法進行。本篇博客從實際出

原创 App Crash崩潰捕獲

參考 https://github.com/android-notes/Cockroach 原理簡述 利用Thread.setDefaultUncaughtExceptionHandler()設置崩潰捕獲。 利用Handle

原创 Android 如何在jni層使用Looper

概述 假設現在有這樣一個需求:在c++層進行定時任務,然後任務回調到主線程運行。對於在java層通過handler.postDelay()就可以實現。而在c層呢? 兩種思路: 通過jni反調java層的handler方法做處理。

原创 Android jni 線程同步

概述 android中可以通過jni調用native的方法,那麼如果在java中存在多個線程調用native的方法,它的展現形式是如何呢? 先說結論: native的默認執行與java調用的線程保持一致,即處於同一個線程中。其次,

原创 多線程 - CountDownLatch總結

問題 當主線程的任務執行,需要依賴多個子線程運行結束後才能往下執行時如何解決,比如文件分段下載,同時開啓多個子線程進行文件的分段下載,當下載完成之後,再進行組裝。 有一種解決方式,便是在子線程下載完成之後,都進行子線程的回調並判斷

原创 Android傳感器簡單總結

後續不斷完善 概述 Android 平臺支持三大類傳感器: 動態傳感器 這類傳感器測量三個軸向上的加速力和旋轉力。這個類別中包含加速度計、重力傳感器、陀螺儀和旋轉矢量傳感器。 環境傳感器 這類傳感器測量各種環境參數,如

原创 設計模式之策略模式

設計模式之策略模式 什麼是策略模式 策略模式定義了一系列算法,並將算法封裝起來,而且使他們可以相互替換。策略模式讓算法獨立於使用它的客戶而獨立變化。 策略模式解決的問題 去往某個目的地,我們有多種出行方式,可以選擇地鐵,公交,步行

原创 RecyclerView封裝Adapter之添加頭部和底部視圖

RecyclerView封裝Adapter之添加頭部和底部視圖 轉載請標明出處: http://blog.csdn.net/lisdye2/article/details/52674879 本文出自:【Alex_MaHa

原创 熱修復框架Tinker的從0到集成之路

熱修復框架Tinker的從0到集成之路 轉載請標明出處: http://blog.csdn.net/lisdye2/article/details/54411727 本文出自:【Alex_MaHao的博客】 項目中

原创 Android 從源碼角度分析消息處理機制(Handler,Looper,Message)

Android 從源碼角度分析消息處理機制(Handler,Looper,Message) 前言 在Android中,修改UI的操作必須要放入到主線程中。而我們的網絡請求往往是長時操作,需要放入到子線程進行請求。可以通過Handl