原创 pixel 編譯安裝Aosp

其實沒什麼可說,具體可以參考完整指引如何編譯AOSP (Build Android P),整合GMS及刷機 (Pixel 2) 這篇文章, 但是實際操作的時候會有些問題,就是建議一定要先刷一遍官網的ROM,並且rom的版本和你之後

原创 關於源碼分析

弄清楚一個系統源碼,最終要的是要知道系統要做什麼事情, 不要只見樹木只見森林. 我們要先想清楚系統要做什麼. 自己要設計應該怎麼設計. 這樣我們就對源碼的實現方式大概有了一些思路. 順着這個思路在去看代碼就會容易很多 另外一個系統

原创 理解Android資源索引

今天來說說Android的資源索引系統, Android的資源編譯使用aapt工具, 查找則使用AssertManager. Android如何來索引資源呢,首先我們從一個應用程序來找資源進行分析. Android中通過id來進行

原创 安裝openjdk 8

Ctrl+Alt+T 打開終端執行以下命令: sudo add-apt-repository ppa:openjdk-r/ppa 輸入你的sudo密碼繼續 升級系統資源包並安裝openjdk1.8: sudo apt-ge

原创 聊聊對java class 的理解

作爲一門解釋執行的語言,java爲什麼不像python那些直接使用源碼文件來執行呢? 爲什麼java要將java文件編譯成class文件呢? 我想主要的原因有3點: 1 減少程序體積 2 作爲強類型語言,編輯過程中發現錯誤 3 加

原创 qemu內存模型(6)mm實現(一)實模式

前邊分析了qemu對內存的建模, 整個過程有三種內存地址 gpa, hva, gva, 在qemu中 如何表現這三種內存呢, 首先qemu把所有的ram片段(由MemoryRegion生成的RamBlock)平坦的鋪開,串聯起來,

原创 qemu內存模型(7)地址空間的讀寫

建議先讀 qemu內存模型(6)mm實現(一)實模式 對於tcg模式,讀內存將執行accel/tcg/softmmu_template.h下的函數 WORD_TYPE helper_le_ld_name(CPUArchState

原创 標準輸出引起的重定向文件失敗問題

由於輸出很少,程序又不是正常結束(通過ctrl+c結束), 導致標準輸出重定向到文件的內容爲空 原因在於標準輸出的緩衝模式 標準輸出(stdout)的緩衝原理 緩衝類型分爲三種: 無緩衝 行緩衝 全緩衝 stderr默認緩衝就