原创 垃圾收集器與內存分配策略(深入理解Java虛擬機筆記)

目錄 概述 那些java堆對象需要回收? 引用計數算法和可達性回收算法 StrongReference、SoftReference、WeakReference、PhantomReference 不可達對象一定要“死”嗎 回收方法區 垃圾回

原创 java的Lambda、groovy的closure、Kotlin的Lambda和c++2.0的Lambda

目錄 java的Lambda 文法: 舉例: 詳情鏈接: groovy的closure 文法: 舉例: 詳情鏈接: Kotlin的Lambda 文法: 舉例:  詳情鏈接: c++2.0的Lambda 文法: 舉例: 詳情鏈接:   ja

原创 tcp、udp、分包粘包

MTU UDP和TCP報頭使用兩個字節存放端口號,所以端口號的有效範圍是從0到65535。動態端口的範圍是從1024到65535。每個以太網幀都有最小的大小64Bytes最大不能超過1518Bytes,對於小於或者大於這個限制的以太網幀

原创 匿名內存映射

java中的MemoryFile,c++中的MemoryHeapBase都是使用了匿名內存映射,纔可以進程間通信。 但是,它能進程間通信,首先是基於binder通信之上,爲什麼?後面再講。 它的原理是,先註冊一個設備路徑爲“/dev/as

原创 java運行時和對象的內存佈局(深入理解Java虛擬機筆記)

目錄 程序計數器(PC寄存器) Java虛擬機棧 本地方法棧 Java堆 方法區 直接內存 對象內存佈局 對象訪問定位 有的人寫博客給他人看,有的人寫博客給自己看,有的人寫博客只是記錄,有的人寫博客爲了展示,我都有。寫博客還有其他的目的和

原创 Binder in Java and in C++

世界發展這麼快,養尊處優的你跟的上嗎? 我們知道android中有很多服務進程,在面向對象的今天,如果我們想和服務進程通過Binder來通信,那麼我們要持有一些類,拋開業務層的通信不講,基礎的通信層的類有在客戶端這邊的BpBinder,服

原创 init and zygote

“翻翻剩菜,看有什麼沒喫過。”,這是無賴,也是悔悟,不願聽到的人會覺得惡俗。 韓語說:聖人無常師。孔子師郯子、萇弘、師襄、老聃。郯子之徒,其賢不及孔子。孔子曰:三人行,則必有我師。是故弟子不必不如師,師不必賢於弟子,聞道有先後,術業有專攻

原创 Android中opengles,egl庫的結構

目錄 egl,opengl es的軟硬件實現 需要的庫 庫的分工 加載模塊 軟件實現模塊 硬件實現模塊 egl,opengl es的軟硬件實現 需要的庫 //算是android中的egl庫,用來加載具體的實現(軟件實現或者硬件實現)

原创 thread in android ndk

android 高版本加入了c++2.0,和2.0+的標準庫的一些東西,例如:std::thread,當然低版本使用還是Thread,不過他們都封裝了pthread。 我在9.0的Thread源碼中發現瞭如下一段話: 39// DO N

原创 lvm,根目錄擴容

LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制。 邏輯卷管理器(LogicalVolumeManager)本質上是一個虛擬設備驅動,是在內核中塊設備和物理設備之

原创 android的Gralloc模塊

Gralloc模塊是一個HAL模塊,所以他有自定義的module:gralloc_module_t,和自定義的gralloc設備(alloc_device_t來描述) 和自定義的fb設備(framebuffer_device_t 來描述)

原创 相機預覽大致過程

應用界面數據,相機採集的數據,視頻播放數據等,要想把數據畫到屏幕上,就要和SF通信,SF使用HW管理屏幕,並把數據合成到屏幕上。 通信走Binder,ISurface接口是通信接口,相機採集的數據在Camera進程通過Bp端的Surfac

原创 雙重檢測單例的正確寫法

目錄 問題根源 解決方案 不允許2和3重排序 使用同步監視器允許2和3重排序,但不允許其他線程“看到”這個重排序 問題根源 public class DoubleCheckedLocking { // 1 private static

原创 android中apk文件的簽名認證

目錄 基礎 簽名和校驗的大體過程 安全性 簽名相關命令 Apk簽名機制的兩種選擇 基礎 Android提供了兩種對Apk的簽名方式,一種是基於JAR的簽名機制,另一種是基於Apk的簽名機制,它們的主要區別在於使用的簽名文件不一樣:jars

原创 Kotlin學習筆記

目錄 基本類型 1.nullable 2. ==,=== 3. 幾個複合符號 4.內聯類 5. 字符串 包 1. 導入 控制流:if、when、for、while if  When For 類與對象 類與繼承 類 構造函數 屬性與字段 幕