日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Android aosp 编译系统基础相关命令

發布時間:2023/12/31 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 Android aosp 编译系统基础相关命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源碼管理

  找到原有的.git 刪除后 添加自己的git

    find ./ -name '.git' | xargs rm -rf

常用命令

  gettop函數 獲取當前編譯環境的work_directory目錄 如下所示,適用于在深層目錄中 跳轉其他目錄

(aosppy2) aosp@ubuntu:~/android/android5.1$ cd packages/apps/gifaLibs/common/
(aosppy2) aosp@ubuntu:~/android/android5.1/packages/apps/gifaLibs/common$ cd $(gettop)
(aosppy2) aosp@ubuntu:~/android/android5.1$ cd packages/apps/gifaLibs/common/
(aosppy2) aosp@ubuntu:~/android/android5.1/packages/apps/gifaLibs/common$ cd $(gettop)/packages
(aosppy2) aosp@ubuntu:~/android/android5.1/packages$ pwd
/home/aosp/android/android5.1/packages
(aosppy2) aosp@ubuntu:~/android/android5.1/packages$

  croot 指令 輸入后 直接回到當前編譯環境的work_directory

  m :make的縮寫 -jx 參數-j 表示job 后面的x:表示工作的線程數

  mm : 表示編譯當前目錄的mk文件

  MMM : 標識編譯指定目錄下的mk文件,例如當修改common文件后,編譯其他目錄的App應用

(aosppy2) aosp@ubuntu:~/android/android5.1/packages/apps/gifaLibs/common$ mmm ../../gifaApps/test1/

  jgrep :只在java文件中查找 指定的字符串 示例: jgrep "Activity"

  cgrep :只在C/C++文件中查找指定的字符串 示例: cgrep "Activity"

  resgrep 只在res資源文件中查找指定的字符串

  godir 查找加跳轉指令 示例 godirctgmath 找到這個文件所在的目錄 并且跳轉進去

    godir 會在第一次執行的時候,在編譯根目錄建立filelist索引文件,若在其他文件夾下執行,只會將所在目錄下的文件建立索引,因此當找不到文件時,可以將根目錄的“filelist”文件刪除,再到編譯根目錄執行一次

  make snod :當編譯部分模塊完成后,輸入此命令標識重新生成img鏡像文件

 emulator & :運行當面環境下的配置的模擬器 參數“&” 標識后臺運行

工作目錄說明

  build/目錄

  core/ aosp整個編譯過程中核心編譯規則文件目錄
envsetup.sh  編譯環境初始化腳本
target / Android自帶模擬器的一些makefile文件目錄
tools 編譯過程中使用的shell及python編寫的一些腳本 

packages/ 一些常用系統APP存放目錄,電話、日歷等
framworks 公共庫

av/  多媒體相關的native目錄
webview/  瀏覽器內核源碼目錄
native/  power、input、binder等服務native實現目錄
base

  core   | framework.jarframework-res.apk libandroid_runtime.so等源文件
  native  | libandroid.so的源代碼目錄 java api的native實現 比如looper、assetmanager
media  |  多媒體相關的javaapi及jni文件目錄
  package  |  settingProvider、SystemUI等不在桌面直接啟動的App源碼目錄
  service  |  services.jar、libandroid_services.so的源文件目錄
  WIFI  |  wifi服務相關的javaAPI、wifiManager、wifiService等

devices/<vendor_name>/<product_name> | 跟硬件廠商相關的內核,硬件配置等
vendor/<vendor_name>/<product_name> | 廠商對AOSP修改或者定制、放在vendor目錄下。包括不限于framework層新增API、APP等業務需求,目前谷歌更推薦放在devices目錄下

AndroidBuildSystem說明 aosp 構建 編譯系統

  Androld Build 系統用來編譯 Androld 系統Androld SDK以及相關文檔。
    該系統主要由如 make 文件, shell 腳本以及 Python 腳本組成,在編譯時能夠支持面向不同的硬件設備,不同的編譯類型,且提供面向各個廠商的定制擴展。  

 什么是makefile

    makefile 是一些有特定語法,可供make命令讀取并執行的腳本性質的配置文件,作用就是定義編譯相關屬性,對哪些源文件進行編譯,怎么編譯,怎么處理他們之間的依賴關系

    makefile可以定義變量,函數,調用系統命令, shen / python腳本,管理module 之間的依賴,整個Android Build系統中的make文件分成三類
  1 . Build 系統核心 Makefile
      這類Makefile定義了整個 Build 系統的框架,而其他所有make文件都是在這個框架的基礎上編寫出來的。位于 build/Core 目錄下.
  2 .針對某個產品的 Makefile
      這類 makefile是針對某個產品 Make文件這些文件通常位于 device/< vendor_name>/< product_name 》 目錄下。
  3 .針對某個模塊的 Makeflle - Android.mk
      第三類是針對某個徽塊的 Moke 文件。 AOSP中,不會針對某一個文件進行編譯,每一個編譯單位都是一個模塊,
      每個模塊由一個名為“ Android.mk ”的 makefile 來聲明。該文件中定義了如何編譯當前模塊。

總結

以上是生活随笔為你收集整理的Android aosp 编译系统基础相关命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。