原创 APP的啓動過程(附圖)

點擊桌面APP圖標時,Launcher的startActivity()方法,通過Binder通信,調用system_server進程中AMS服務的startActivity方法,發起啓動請求 system_server進程接收到請求後,

原创 EventBus3.0注意事項

1、父類中定義的訂閱方法不能被重寫 比如你在父類中定義了一個訂閱方法  @Subscribe(threadMode = ThreadMode.MAIN) public void onEvent(Item item) { } 那麼不能在子

原创 Java類成員初始化順序

首先看下這段測試代碼 public class ClassLoader { public static void main(String[] args) { // 3.第四步,new一個類,但在new之前要處理

原创 Rxjava2入門教程二:Observable與Observer響應式編程在Rxjava2中的典型實現

 如需下載源碼,請訪問https://github.com/fengchuanfang/Rxjava2Tutorial 在RxJava中,函數響應式編程具體表現爲一個觀察者(Observer)訂閱一個可觀察對象(Observable),

原创 Rxjava2入門教程五:Flowable背壓支持——對Flowable最全面而詳細的講解

背壓(backpressure) 當上下游在不同的線程中,通過Observable發射,處理,響應數據流時,如果上游發射數據的速度快於下游接收處理數據的速度,這樣對於那些沒來得及處理的數據就會造成積壓,這些數據既不會丟失,也不會被垃圾回收

原创 Rxjava2入門教程一:函數響應式編程及概述

如需下載源碼,請訪問https://github.com/fengchuanfang/Rxjava2Tutorial RxJava是函數響應式編程思想在java語言上的具體實現。RxJava2在這一實現下,對Rxjava1進行了全面重寫

原创 Rxjava2入門教程三:Operators操作符

Operators操作符 操作符(Operators):其實質是函數式編程中的高階函數,是對響應式編程的各個過程拆分封裝後的產物。以便於我們操作數據流。 按照其作用具體可分爲以下幾類: 創建:創建一個可觀察對象Observable併發射數

原创 Rxjava2入門教程六:Single、Completable、Maybe——簡化版的Observable

在Rxjava2中,Observale和Flowable都是用來發射數據流的,但是,我們在實際應用中,很多時候,需要發射的數據並不是數據流的形式,而只是一條單一的數據,或者一條完成通知,或者一條錯誤通知。在這種情況下,我們再使用Obser

原创 Rxjava2入門教程四:Scheduler線程調度器

Scheduler(線程調度器)賦予RxJava簡潔明瞭的異步操作,可以說是RxJava中最值得稱道的地方。 在之前的代碼中,Observable發射數據流,Observer接收響應數據流,以及Operators加工數據流均是在同一個線程

原创 Android SQLDatabase類中的insert方法nullColumnHack字段的含義

table 要插入數據的表的名稱 values:一個ContentValues對象,類似一個map.通過鍵值對的形式存儲值。 conflictAlgon:衝突解決方案。例如當數據表主鍵的唯一性檢測出錯的時候,就會按照該值設定的值進行處理。

原创 什麼是HTTP協議?

HTTP協議全稱Hyper Text Transfer Protocol,翻譯過來就是超文本傳輸協議,位於TCP/IP四層模型當中的應用層。       HTTP協議通過請求/響應的方式,在客戶端和服務端之間進行通信。       這

原创 線程中的wait() 與 鎖的關係

我們先看一段代碼: /** * 計算輸出其他線程鎖計算的數據 * */ public class ThreadA { public static void main(String[] args) throws Interr

原创 編程的智慧

編程是一種創造性的工作,是一門藝術。精通任何一門藝術,都需要很多的練習和領悟,所以這裏提出的“智慧”,並不是號稱一天瘦十斤的減肥藥,它並不能代替你自己的勤奮。然而由於軟件行業喜歡標新立異,喜歡把簡單的事情搞複雜,我希望這些文字能給迷惑中的

原创 Kotlin學習筆記:run、apply、let、also、with的用法和區別

run 、 apply 、 let 、 also 和 with 五個函數均位於 kotlin 包下的 Standard 文件中,其含義和用法比較相似,現分別介紹如下。 run 用法1 函數定義: public inline fun <R>

原创 Java8新特性--CompletableFuture

併發與並行 Java 5併發庫主要關注於異步任務的處理,它採用了這樣一種模式,producer線程創建任務並且利用阻塞隊列將其傳遞給任務的consumer。這種模型在Java 7和8中進一步發展,並且開始支持另外一種風格的任務執行,那就是