原创 git bleame、git bisect

概念理解 git blame和git bisect能幫助調試git項目,找到出bug的原因。 操作方法 1、文件標註 使用git blame能顯示任何文件中每行最後一次修改的提交記錄。git blame --help查看具體描述

原创 【學習筆記04】x86架構

先了解計算機底層最基本的工作原理,以便於以後能理解Linux系統的運作模式!! 總體概要 原文中對於x86架構的總結圖片,重點牢記這些寄存器的作用,以及段的工作模式 計算機的工作模式(瞭解一下) 1、 CPU、總線、內存

原创 02 Android系統之添加系統屬性

理解概念 1、基本描述 系統屬性可以簡單的理解爲系統層級的全局變量,以key-value的形式保存, key-value 都是字符串。這些屬性可能是有些資源的使用狀態,進程的執行狀態,系統的特有屬性等。 2、命名規則 幾種特殊前綴

原创 android源碼管理工具

Google使用git和repo管理AOSP源碼。 概念區分 1、Git和git(https://source.android.com/setup/develop#git) Git是版本控制系統,我們使用git工具進行代碼倉庫

原创 【學習筆記03】系統調用

相關概念 1、程序vs進程vs命令 Linux系統上所有的操作由進程完成,進程的運行是動態的,在此之前是一個靜態的程序。用戶用一個程序來啓動一個進程,這個程序可以是別人寫好的(最終被編譯成可執行文件),比如ls、pwd、cat,也

原创 06 Android系統之添加java層系統服務

引入概念 目前對android系統體系瞭解比較少,主要區分一下服務、系統服務這兩個概念 Android服務是一個後臺運行的組件,執行長時間運行且不需要用戶交互的任務。在android開發中作爲一個應用組件,通過繼承類extern

原创 【學習筆記10】進程數據結構內核函數棧

介紹&目的 1、 介紹 在程序執行過程中,一旦調用到系統調用,就需要進入內核繼續執行。無論是進程還是線程,對應到內核裏面,我們統一都叫任務(Task),由一個統一的結構 task_struct 進行管理。 其中,內核棧是和進程運行

原创 【學習筆記09】進程數據結構task_struct

基本概念 在Linux裏面,無論是進程,還是線程,到了內核裏面,我們統一都叫任務(Task),由一個統一的結構task_struct進行管理。 分析task_struct 對源碼檢索stask_struct關鍵字,發現文件inc

原创 【學習筆記08】瞭解與創建線程

介紹&目的 之前瞭解了進程的創建過程,其實進程默認也有一個主線程(也可以包含其他線程)。線程是負責執行二進制指令的,它會根據項目執行計劃書,一行一行執行下去。進程要比線程管的寬多了,除了執行指令之外,內存、文件系統等等都要它來管。

原创 【學習筆記04】BIOS和BootLoader

初步瞭解 1、 回顧 之前理解了x86架構下的工作模式,計算機系統的核心是CPU、內存、總線來幹活的。但是x86提供的是開放的硬件平臺,需要配合對應的操作系統,才能發揮最大的作用。 另外隨着計算機技術的衍變,32位系統之後的x86

原创 【學習筆記05】內核初始化

初步瞭解 1、 回顧 經過了BootLoader階段,此時cpu從實模式轉換成保護模式,有了更強的尋址能力,kernel也已經加載到內存了。系統內核開始運行 在kernel源碼init/main.c文件中,內核的啓動從入口函數st

原创 【學習筆記06】深入瞭解系統調用

目的 進程訪問核心資源通過系統調用。站在系統調用的角度,層層深入下去,就能從某個系統調用的場景出發,瞭解內核中各個模塊的實現機制。 但是在實際開發中不會直接使用系統調用,因爲Linux 還提供了glibc這個中介。它更熟悉系統調用

原创 07 Android系統之Android.bp條件編譯

基本概念 1、 背景 條件編譯爲我們提供了一種一套代碼兼容多個版本的解決方案,提高代碼的複用率。 在Android7.0之前使用的是Makefle編譯,makefile語法支持條件編譯,配置到Android.mk文件。 在那以後,

原创 每週閱讀文章歸檔

目的: 收錄一些閱讀過的文章 2020-4-12 1、Android系統 理解 Android Build 系統 Repo介紹 Logcat - 閱讀錯誤報告 Android源碼的版本與分支詳解 2、Linux系統 Li

原创 git message規範

在正式參與項目開發之前,瞭解並且堅持使用一些規範更方便我們與同事之間的合作。這些通常是約定俗成的。 git提交準則 git源碼中的Documentation/SubmittingPatches列舉了git提交規範相關的說明文檔