原创 Binder是怎麼跨進程傳輸的?——源碼分析(三)

Binder是怎麼跨進程傳輸的? Parcel的writeStrongBinder和readStrongBinder Binder在Parcel中存儲原理,flat_binder_object 說清楚binder_node, b

原创 Binder完整的IPC通信流程——源碼分析(二)

今天這篇文章是通過看源碼的方式做總結: 從客戶端的應用層到binder驅動,然後從binder驅動在到服務端的應用層 Binder的協議通信流程 還是根據這幅圖,我們來看下源碼,從客戶端到服務端的流程: 1、客戶端Proxy

原创 EventBus實現原理(手寫核心邏輯)

解釋一下反射: JAVA反射機制是在運行狀態中,對於任意一個實體類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意方法和屬性;這種動態獲取信息以及動態調用對象方法的功能稱爲java語言的反射機制。 Ev

原创 java 數組實現單項隊列和環形隊列!

數組實現隊列: 普通單項隊列 環形隊列 一、實現普通隊列 1) 將尾指針往後移:rear+1 , 當 front == rear 【空】 2) 若尾指針 rear 小於隊列的最大下標 maxSize-1,則將數據存

原创 一篇文章讓你清楚DVM、JVM、ART、JIT、ODEX、VDEX、DEX、oat

DVM 和 JVM的區別      1、DVM基於寄存器,JVM基於棧。  DVM效率要更高         解釋爲什麼寄存器效率更高?       a、 因爲寄存器是CPU中的一部分, 堆棧是內存的一種結構。 內存是CPU和硬盤之間的通

原创 數組實現棧、中綴計算器、逆波蘭後綴計算器、 中綴轉後綴完整版本!

棧的介紹: 棧的英文爲(stack) 棧是一個先入後出(FILO-First In Last Out)的有序列表。 棧(stack)是限制線性表中元素的插入和刪除只能在線性表的同一端進行的一種特殊線性表。允許插入和刪除的 一端,

原创 Java虛擬機、Minot GC、Full GC機制的總結(完整版)

JVM結構圖 類加載器把字節碼文件(.class)文件加載JVM虛擬機中的過程 以上是Java虛擬機的結構,和編譯加載流程。 JVM內存管理 Java棧區: 作用: 它存放的是Java方法執行時的所有的數據 組成: 由

原创 Android_ClassLoader加載機制、雙親委託、類加載共享、隔離等功能

ClassLoader種類: -BootClassLoader -PathClassLoader -DexClassLoader -BaseDexClassLoader BootClassLoader: 主要用於加載系統的類,包括

原创 Binder的基本介紹,Linux進程通信的幾種方式、手寫進程通信代碼(一)

Binder的概述: Binder是幹嘛的? 爲什麼選擇Binder作爲最主要的IPC通信機制 繪製Binder的通信架構圖,講述原理 手寫一個AIDL Linux系統的通信方式 先介紹Linux進程通信的方式: 管道 S

原创 Binder的基本介紹,Linux進程通信的幾種方式、手寫進程通信代碼

Binder的概述: Binder是幹嘛的? 爲什麼選擇Binder作爲最主要的IPC通信機制 繪製Binder的通信架構圖,講述原理 手寫一個AIDL Linux系統的通信方式 先介紹Linux進程通信的方式: 管道 S

原创 Binder完整的IPC通信流程——源碼分析

今天這篇文章是通過看源碼的方式做總結: 從客戶端的應用層到binder驅動,然後從binder驅動在到服務端的應用層 Binder的協議通信流程 還是根據這幅圖,我們來看下源碼,從客戶端到服務端的流程: 1、客戶端Proxy

原创 Binder是怎麼跨進程傳輸的?——源碼分析

Binder是怎麼跨進程傳輸的? Parcel的writeStrongBinder和readStrongBinder Binder在Parcel中存儲原理,flat_binder_object 說清楚binder_node, b

原创 java 實現單鏈表、雙鏈表增刪改查、排序、約瑟夫等功能實現

總結: 1、鏈表中每個結點的next引用都相當於一個指針指向另一個結點 2、在單鏈表中通常使用head引用指向單鏈表的首結點,由head引用完成對整個鏈表中所有結點的訪問 3、單鏈表的一個重要特性就是隻能通過前驅結點找到後續結點,

原创 Android系統啓動過程分析

主要流程 init進程啓動過程 init進程是Android系統中用戶空間的第一個進程。進程號爲1。 第一步:啓動電源 當電源按下,引導芯片代碼開始從預定義的地方(固化在ROM)開始執行。加載引導程序到RAM,然後執行。 第二

原创 快速排序、歸併排序、基數排序(桶排序)!

快速排序分析推導圖 class Untitled { public static void main(String[] args) { System.out.println("hello htt