android編譯分析之1 概述

2021-07-07 10:09:58 字數 930 閱讀 4847

最近在研究android的編譯,順著編譯命令一步一步學習了具體makefile中的某些函式功能,記錄了命令執行過程中系統到底發生了什麼,對android系統編譯的整體框架有個大概的了解。

在我認為,android相當於乙個非常龐大的嵌入式軟體,我們沒有那麼多的時間和精力去研究透徹android的方方面面,但是嵌入式軟體的編譯系統將會為我們提供整個軟體的輪廓,軟體由哪些部分組成,包括哪些庫,等等。研究整個編譯系統,可以讓我們胸有成竹。

總的來說,android編譯分兩部分:

1.編譯前的準備工作,主要是在shell環境中提前設定了很多變數和函式;

2.執行make進行編譯,產生各種映象檔案。

注:android的編譯系統其實說白了就是一些shell函式結合一些makefile來實現的。由於使用的是gnu的make,而make的命令非常多,所以我準備了一本gnu中文手冊,隨時查詢。
按照google官方的文件,在編譯android前,首先需要執行,

source build/envsetup.sh
然後執行lunch選擇具體的產品.

lunch
編譯時,直接執行make即可。aosp**的根目錄下有乙個makefile,但是內容只有一句,包含了build/core目錄下的main.mk,正如名字所示,main.mk是android編譯系統中最主要的makefile。

### do

not edit this file ###

include build/core/main.mk

### do

not edit this file ###

而build目錄既是android的編譯系統,核心的部分都在這個目錄下。後續將逐步分析每一步發生了什麼。

Android入門1 概述

1.android系統架構圖 2.android頂層架構圖 3.manifest檔案各語句意義 4.android 四大天王 5.打 例項 android各個基本操作提供的有意圖。如打 發簡訊等等 打 的意圖是android.intent.action.call 所以實現打 的 是 intent i...

編譯原理語法分析概述

讀一段程式和讀一篇文章的處理是有相似之處的 首先需要能夠認出乙個個字元 字,單詞或者標點 然後理解文章的結構 段落,句子,句子內部主謂賓等結構 最後再結合一些前置的知識和上下文,推導 理解每一句的含義,最後理解整個文章的含義 以上就對應了編譯的前三個階段 詞法分析 語法分析 語義分析 但是編譯的目的...

編譯原理 1 3 詞法分析概述

詞法分析是編譯器工作的第乙個階段 詞法分析的主要任務是從左向右逐行掃瞄源程式的字元,識別出各個單詞,確定單詞的型別 將識別出的單詞轉換成統一的機內標識即詞法單元 token 形式。token 種別碼,屬性值 大體分為以下五類 單詞型別 種別種別碼 1關鍵字 program,if,else,then,...