原创 UI繪製過程(一) -- APP如何啓動的

源代碼是28版本,使用的軟件是AS 入口是ActivityThread.main()方法 attachApplication 在main()方法中會調用一個attach方法在這個方法裏面會使用一個IActivityMannager

原创 UI繪製流程(二)-- 測量、佈局、繪製方法

上一篇中 ActivityThread 的handleResumeActivity 執行了Activity的onResume方法大概的路徑是 performResumeActivity() -> activity.performR

原创 Rxjava的調用邏輯以及線程切換原理

一、基礎知識 RxJavaPlugins.onAssembly(new SingleJust<T>(item)); 這個方法的作用設什麼呢,其實它的作用就是一個轉換作用。使用的hook技術,這裏原理比較難懂 暫時理解成會轉換成 n

原创 小試牛刀 --- Tinker集成教程

項目中我們總會遇到這樣的問題剛剛發佈版本就發現了一個嚴重錯誤,對用戶的使用體驗非常的差,所以需要立馬更新. 但是如果全量更新的話,小則就是20M APK大小, 多則 50多 M. 這樣頻繁的讓用戶下載非常影響用戶體驗。 事實

原创 再一次看Handler源碼的一些收穫

Handler原理的大致描述 一、APP啓動 在ActivityThread 類的main方法(這是APP啓動入口方法),會有下面代碼 ActivityThread.java public static void main(Str

原创 Android studio Error:Error: ' ' is not a valid resource name character

run gradle with —stacktrace提示的錯誤消息如下,但是沒有指明錯誤的位置。 ···· :dax_android_Lib:processDebugAndroidTestManifest /Users/dsh/De

原创 自己動手實現一個簡易版本的ButterKnife

上一篇 ButterKnife源碼分析- 涉及元註解和AbstractProcessor和javapoet 我們已經瞭解了Butterknife的源碼,總體來講這個框架理解起來並不難, 思路很清晰,基本就是一條線沒有很繞的地方。 接

原创 git 使用記錄筆記

一、常用的git命令 版本回退 git reset 方式一 git reset --hard 1094a(commit id號) 方式二 git reset --hard HEAD^(上一個版本就是HEAD^,上上一個版本就是

原创 ButterKnife源碼分析- 涉及元註解和AbstractProcessor和javapoet

一 、 從調用端分析 爲了方便理解我們從最簡單最常用的findViewById入手,通常我們只需要寫下這樣一份代碼就可以替代繁瑣的findViewById方法。 @BindView(R.id.toolbar) Toolbar tool

原创 Android apk反編譯步驟

一. apktool 使用這個工具可以幫助你幾乎可以將APK中的 resources.arsc, classes.dex 和 9.png 以及 XMLs 等等源文件反編譯得到. 下載地址: https://ibotpeaches.gi

原创 RecyclerView系列--用ItemTouchHelper實現一個支持上下移動和滑動刪除的列表

列表的上下移動和滑動刪除是不是經常看到,如何實現呢?其實使用ItemTouchHelper可以輕鬆實現。閒話不多說,先看效果。 先看一下官方的介紹 This is a utility class to add swipe to

原创 RecyclerView系列--寫一個屬於你自己的ItemDecoration

前言 相信RecyclerView大家一定很熟悉吧?它是谷歌在高級版本提出一個新的替代ListView、GridView的控件,高度解耦,自帶了ViewHolder性能優化。你可以使用它進行分割線ItemDecoration、佈局La

原创 【adb】常用命令使用

自己以前不知道如何使用adb,現在知道了,記錄備案 adb是Android Debug Bridge,開發當中我們難免會遇到很多關於adb的東西,adb是android sdk目錄下的一個工具軟件 adb.exe,通常我們在使用的時候會

原创 android控件-EditText

大家學習android相信大家每個人都碰到過edittext這個控件,最近碰到了一些屬性,所以分享給大家 默認edittext的光標是隨着輸入的內容向後移動,需要修改,點擊前面的內容,光標會自動移動到前面,我前幾天sb了不知道這些,花了

原创 HandlerThread源碼解析

HandlerThread源碼 1、 run() HandlerThread應用 1、HandlerThread的用處 2、如何使用呢? HandlerThread源碼 它是一個Thread的子類,源碼很簡單,只有100