原创 JsBridge 原生和Html交互

android與js的交互之jsbridge使用 JsBridge-總結和優化

原创 RxBus 簡單分析

文章目錄RxBus的實現如何解決RxBus存在內存泄露的問題? RxBus 可用於組件通訊。 前面解說了eventBus的實現,註冊、取消註冊、發送消息,監聽消息。 RxBus的實現 RxBus 並不是一個框架,而是一種使用 Rx

原创 Rxlifecycle 2.1.0原理分析

文章目錄簡單使用源碼分析如何監聽activity/fragment的生命週期請求如何進行截斷Observable#compose(composer)方法解析composer是LifecycleTransformer對象Lifecy

原创 RxPermission 0.10.2 原理分析

文章目錄爲什麼要進行權限申請?系統提供的權限申請方式RxPermissions的實現方式單個權限申請多個權限申請源碼分析創建RxPermissions的實例 爲什麼要進行權限申請? Android 6.0 ( API23 Mar

原创 retrofit 2.6.1源碼解析(一)

文章目錄實例講解源碼解析創建Retrofit實例(構造者模式)PlatForm的獲取動態代理得到接口的實例serviceMethod的獲取構建OkHttpCall對象 Retrofit2 github地址 實例講解 Retrofi

原创 Gson 2.8.5源碼解析(二)

文章目錄實例:源碼解析:JsonSerializer & JsonDeserializer自定義TypeAdapter 上一篇是默認的Gson對象,默認的TypeAdapter對象 這一篇,通過GsonBuilder註冊TypeA

原创 Canvas繪圖之PorterDuffXfermode使用

使用案例: 引導頁的蒙層遮罩 刮刮卡效果 PorterDuff.Mode有16種 public enum Mode { CLEAR (0), SRC (1),

原创 AIDL實現原理

AIDL(Android Interface Definition Language) 安卓接口定義語言。 是實現Binder機制,跨進程通訊的一個模板。 定義一個IRemoteService.aidl文件 package com

原创 FrameLayout嵌套CardView,導致View顯示層級異常

FrameLayout嵌套CardView,會影響View顯示層級。 CardView繼承自FrameLayout,可以顯示圓角和陰影。 因爲陰影的緣故,cardView會置於父View的頂層,導致層級顯示不正確,添加 app:c

原创 apk安裝

apk安裝安裝界面權限提示安裝和卸載應用應用安裝流程PackageManager對象 安裝界面權限提示 apk(Android Package)是用於android平臺上的一種壓縮包 Android系統中,有一個類似註冊表的東西,

原创 Context詳解(API28)

Context是一個抽象類,我們通過這個Context可以訪問包內的資源(res和assets)和啓動其他組件(activity、service、broadcast)以及系統服務(systemService)等。所以Context

原创 Android自定義View——彈性的圓

效果圖: 一次快動作,一次慢動作分解 原理: 貝塞爾曲線畫圓的係數求值: Approximate a circle with cubic Bézier curves 1、動作分解 不做位移運動,單點動作分解 1.1、從A運動到B

原创 Android自定義View——qq消息氣泡

效果圖: 原理: 控件源碼: public class DragView extends View { private int defaultZoomSize = 8; //初始化圓的大小 priv

原创 Android自定義View——水波紋效果

效果如下: 原理 控制代碼 //這裏用的kotlin //主線程刷新控件 val mHandler = object : Handler() { override fun handleMessage(msg:

原创 Android自定義View——進度條動畫

控件效果 原理: 控制代碼 //更新進度值 val mHandler = object : Handler() { override fun handleMessage(msg: Message?) {