原创 Android的IPC機制(六)—— BroadcastReceiver的使用

綜述   在Android的四大組件中除了ContentProvider能夠用於進程間的通信外,還有一個也能夠用於進程間的通信,那就是BroadcastReceiver。BroadcastReceiver翻譯成中文爲廣播接收器,既

原创 Android的消息機制——Handler的工作過程

綜述   在Android系統中,出於對性能優化的考慮,對於Android的UI操作並不是線程安全的。也就是說若是有多個線程來操作UI組件,就會有可能導致線程安全問題。所以在Android中規定只能在UI線程中對UI進行操作。這個

原创 Android的IPC機制(三)——Binder連接池

綜述   前兩篇說到AIDL的使用方法,但是當我們的項目很大時,很多模塊都需要用到Service,我們總不能爲每一個模塊都創建一個Service吧,這樣一來我們的應用就會顯得很笨重。那麼有沒有一種解決方案叫我們只需要創建一個Ser

原创 Android的IPC機制(七)—— Socket的原理簡析與使用

綜述   在前面的幾篇文章中,我們介紹了許多在Android中有關進程間通信的方式,但都是在一個設備上進行的進程間通信,而這時候我們兩個應用在不同的設備上的時候,在這個時候我們就不能通過前方介紹的那些方法來解決了。但是我們通過網絡

原创 IntentService——Handler與Service的結合

綜述   我們都知道Service是作爲後臺服務運行再程序中的。但是Service他依然是運行在主線程中的,所以我們依然不能在Service中進行耗時的操作。所以當我們在Service處理時,我們需要在Service中開啓一個子線

原创 Android的IPC機制(二)——AIDL實現原理簡析

綜述   上篇說到AIDL的使用方法,我們不能僅僅只是滿足對AIDL的使用,那麼對於AIDL到底是如何實現的呢?爲什麼我們只是創建一個AIDL文件,系統就會爲我們自動生成一個Java文件,那麼這個Java文件裏面到底包含了哪些內容

原创 EventBus3.0使用詳解

綜述   這裏所介紹的EventBus指的是greenrobot的EventBus,它是一款針對Android的發佈/訂閱事件總線。它能夠讓我們很輕鬆的實現在Android的各個組件以及線程之間進行傳遞消息。並且將事件的發送者與接

原创 Android的IPC機制(五)—— ContentProvider的使用

綜述   對於前面一些的ipc過程都是Service與客戶端進行通信。那麼在不同應用之間ipc可以採用哪些方式呢?首先我們會想到ContentProvider,因爲我們平時獲取手機上的聯繫人,圖片等等都是通過ContentProv

原创 Java類加載機制

綜述 在前面兩篇文章主要分析了Java的內存以及Java的垃圾回收機制。在這篇文章中分析一下類是如何加載的。 類加載時機 類從被加載到虛擬機內存開始,到卸載出內存爲止。它的整個生命週期包括:加載(Loading)、驗證(Verific

原创 Java內存劃分和分配

綜述 在這邊文章中我們將瞭解一下Java的內存區域是怎麼劃分的以及每個區域的功能。在瞭解Java每個內存區域的功能之後,進一步分析Java對象如何的創建和對象的內存分配,以及如何訪問對象中的內存。最後學習一下Java堆內存的分代劃分和

原创 Java垃圾回收機制

綜述 在上篇文章中我們分析了Java內存空間的劃分和分配,在這篇文章中我們來了解一下Java對於不再使用的對象是如何回收的。 回收的內存區域 在Java內存運行時,其中程序計數器、虛擬機棧、本地方法棧3個區域隨線程而生,隨線程而滅。棧

原创 Retrofit2源碼解讀

綜述   Retrofit2的用法在Retrofit2.0使用詳解這篇文章中已經詳細介紹過了。那麼在這就來看一下Retrofit2它是如何實現的。Retrofit2中它的內部網絡請求是依賴於OKHttp,所以Retrofit2可以看做是對

原创 Android官方MVP架構解讀

綜述   對於MVP (Model View Presenter)架構是從著名的MVC(Model View Controller)架構演變而來的。而對於Android應用的開發中本身可視爲一種MVC架構。通常在開發中將XML文件視爲MV

原创 Android視圖的繪製流程(下)——View的Layout與Draw過程

綜述   在上篇文章中Android視圖的繪製流程(上)——View的測量對View的Measure過程進行了詳細的說明。對於在View的繪製的整個過程中,在對View的大小進行測量以後,便開始確定View的位置並且將其繪製到屏幕上。也就

原创 使用Kotlin優雅的添加Fragment

綜述 在上面文章聊一聊Kotlin擴展函數run,with,let,also和apply的使用和區別中講解Kotlin的幾個擴展函數的使用和區別。那麼在這篇文章中去自己定義一些擴展函數來更加優雅的去將添加Fragment到Activity