envsetup.sh編譯過程

来源:https://www.cnblogs.com/lanjiabin/archive/2020/04/30/12807416.html
-Advertisement-
Play Games

載入命令,以下是envsetup.sh的部分文件,封裝了命令的腳本文件 選擇分支,得到這些基本信息 得到詳細的信息 編程中我們會遇到多少挫折?表放棄,沙漠盡頭必是綠洲。 ...


source bulid/envsetup.sh
載入命令,以下是envsetup.sh的部分文件,封裝了命令的腳本文件

Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- lunch:      lunch <product_name>-<build_variant>
              Selects <product_name> as the product to build, and <build_variant> as the variant to
              build, and stores those selections in the environment to be read by subsequent
              invocations of 'm' etc.
- tapas:      tapas [<App1> <App2> ...] [arm|x86|mips|arm64|x86_64|mips64] [eng|userdebug|user]
- croot:      Changes directory to the top of the tree, or a subdirectory thereof.
- m:          Makes from the top of the tree.
- mm:         Builds all of the modules in the current directory, but not their dependencies.
- mmm:        Builds all of the modules in the supplied directories, but not their dependencies.
              To limit the modules being built use the syntax: mmm dir/:target1,target2.
- mma:        Builds all of the modules in the current directory, and their dependencies.
- mmma:       Builds all of the modules in the supplied directories, and their dependencies.
- provision:  Flash device with all required partitions. Options will be passed on to fastboot.
- cgrep:      Greps on all local C/C++ files.
- ggrep:      Greps on all local Gradle files.
- jgrep:      Greps on all local Java files.
- resgrep:    Greps on all local res/*.xml files.
- mangrep:    Greps on all local AndroidManifest.xml files.
- mgrep:      Greps on all local Makefiles files.
- sepgrep:    Greps on all local sepolicy files.
- sgrep:      Greps on all local source files.
- godir:      Go to the directory containing a file.
- allmod:     List all modules.
- gomod:      Go to the directory containing a module.
- pathmod:    Get the directory containing a module.
- refreshmod: Refresh list of modules for allmod/gomod.

Environment options:
- SANITIZE_HOST: Set to 'true' to use ASAN for all host modules. Note that
                 ASAN_OPTIONS=detect_leaks=0 will be set by default until the
                 build is leak-check clean.
- ANDROID_QUIET_BUILD: set to 'true' to display only the essential messages.

lunch
選擇分支,得到這些基本信息

============================================
PLATFORM_VERSION_CODENAME=REL  //平臺版本代號
PLATFORM_VERSION=10  //Android版本
TARGET_PRODUCT=aosp_x86_64  //生成的目標
TARGET_BUILD_VARIANT=eng   //構建版本
TARGET_BUILD_TYPE=release  //構建類型
TARGET_ARCH=x86_64
TARGET_ARCH_VARIANT=x86_64 //工具鏈
TARGET_2ND_ARCH=x86
TARGET_2ND_ARCH_VARIANT=x86_64
HOST_ARCH=x86_64  //架構
HOST_OS=darwin  //編譯伺服器
HOST_OS_EXTRA=Darwin-19.4.0-x86_64-10.15.4
HOST_BUILD_TYPE=release
BUILD_ID=QQ2A.200405.005
OUT_DIR=out   //輸出目錄
============================================

export
得到詳細的信息

lanjiabindeMBP:AOSP lanjiabin$ export
declare -x ANDROID_BUILD_PATHS="/Volumes/lanjiabin/AOSP/out/soong/host/darwin-x86/bin:/Volumes/lanjiabin/AOSP/out/host/darwin-x86/bin:/Volumes/lanjiabin/AOSP/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9/bin:/Volumes/lanjiabin/AOSP/development/scripts:/Volumes/lanjiabin/AOSP/prebuilts/devtools/tools:/Volumes/lanjiabin/AOSP/external/selinux/prebuilts/bin:/Volumes/lanjiabin/AOSP/prebuilts/android-emulator/darwin-x86_64:/Volumes/lanjiabin/AOSP/prebuilts/asuite/acloud/darwin-x86:/Volumes/lanjiabin/AOSP/prebuilts/asuite/aidegen/darwin-x86:/Volumes/lanjiabin/AOSP/prebuilts/asuite/atest/darwin-x86:"
declare -x ANDROID_BUILD_TOP="/Volumes/lanjiabin/AOSP"
declare -x ANDROID_DEV_SCRIPTS="/Volumes/lanjiabin/AOSP/development/scripts:/Volumes/lanjiabin/AOSP/prebuilts/devtools/tools:/Volumes/lanjiabin/AOSP/external/selinux/prebuilts/bin"
declare -x ANDROID_EMULATOR_PREBUILTS="/Volumes/lanjiabin/AOSP/prebuilts/android-emulator/darwin-x86_64"
declare -x ANDROID_HOST_OUT="/Volumes/lanjiabin/AOSP/out/host/darwin-x86"
declare -x ANDROID_HOST_OUT_TESTCASES="/Volumes/lanjiabin/AOSP/out/host/darwin-x86/testcases"
declare -x ANDROID_JAVA_HOME="/Volumes/lanjiabin/AOSP/prebuilts/jdk/jdk9/darwin-x86"
declare -x ANDROID_JAVA_TOOLCHAIN="/Volumes/lanjiabin/AOSP/prebuilts/jdk/jdk9/darwin-x86/bin"
declare -x ANDROID_PRE_BUILD_PATHS="/Volumes/lanjiabin/AOSP/prebuilts/jdk/jdk9/darwin-x86/bin:"
declare -x ANDROID_PRODUCT_OUT="/Volumes/lanjiabin/AOSP/out/target/product/generic_x86_64"
declare -x ANDROID_PYTHONPATH="/Volumes/lanjiabin/AOSP/development/python-packages:"
declare -x ANDROID_TARGET_OUT_TESTCASES="/Volumes/lanjiabin/AOSP/out/target/product/generic_x86_64/testcases"
declare -x ANDROID_TOOLCHAIN="/Volumes/lanjiabin/AOSP/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9/bin"
declare -x ANDROID_TOOLCHAIN_2ND_ARCH=""
declare -x ASAN_OPTIONS="detect_leaks=0"
declare -x BUILD_ENV_SEQUENCE_NUMBER="13"
declare -x GCC_COLORS="error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01"
declare -x HOME="/Users/lanjiabin"
declare -x HOMEBREW_NO_AUTO_UPDATE="true"
declare -x JAVA8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home"
declare -x JAVA_HOME="/Volumes/lanjiabin/AOSP/prebuilts/jdk/jdk9/darwin-x86"
declare -x LANG="zh_CN.UTF-8"
declare -x LOGNAME="lanjiabin"
declare -x M2_HOME="/Users/lanjiabin/lanjiabin/Maven"
declare -x OLDPWD="/Volumes/lanjiabin/AOSP/build"
declare -x OUT="/Volumes/lanjiabin/AOSP/out/target/product/generic_x86_64"
declare -x PATH="/Volumes/lanjiabin/AOSP/prebuilts/jdk/jdk9/darwin-x86/bin:/Volumes/lanjiabin/AOSP/out/soong/host/darwin-x86/bin:/Volumes/lanjiabin/AOSP/out/host/darwin-x86/bin:/Volumes/lanjiabin/AOSP/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9/bin:/Volumes/lanjiabin/AOSP/development/scripts:/Volumes/lanjiabin/AOSP/prebuilts/devtools/tools:/Volumes/lanjiabin/AOSP/external/selinux/prebuilts/bin:/Volumes/lanjiabin/AOSP/prebuilts/android-emulator/darwin-x86_64:/Volumes/lanjiabin/AOSP/prebuilts/asuite/acloud/darwin-x86:/Volumes/lanjiabin/AOSP/prebuilts/asuite/aidegen/darwin-x86:/Volumes/lanjiabin/AOSP/prebuilts/asuite/atest/darwin-x86:/opt/local/bin:/opt/local/sbin:/opt/local/sbin:/opt/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/aria2/bin:/Library/Apple/usr/bin:/Users/lanjiabin/lanjiabin/Maven/bin"
declare -x PWD="/Volumes/lanjiabin/AOSP"
declare -x PYTHONPATH="/Volumes/lanjiabin/AOSP/development/python-packages:"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_AUTH_SOCK="/private/tmp/com.apple.launchd.xAJWJn9M1j/Listeners"
declare -x TARGET_BUILD_APPS=""
declare -x TARGET_BUILD_TYPE="release"
declare -x TARGET_BUILD_VARIANT="eng"
declare -x TARGET_GCC_VERSION="4.9"
declare -x TARGET_PRODUCT="aosp_x86_64"
declare -x TERM="xterm-256color"
declare -x TERM_PROGRAM="Apple_Terminal"
declare -x TERM_PROGRAM_VERSION="433"
declare -x TERM_SESSION_ID="2A78A8CE-2D67-46C6-AE56-6AA3E7288E84"
declare -x TMPDIR="/var/folders/hp/gv0fjq5j5n72fppcl_fw21br0000gn/T/"
declare -x USER="lanjiabin"
declare -x XPC_FLAGS="0x0"
declare -x XPC_SERVICE_NAME="0"
lanjiabindeMBP:AOSP lanjiabin$ 

編程中我們會遇到多少挫折?表放棄,沙漠盡頭必是綠洲。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 解決方法就是在AppDelegate.h中按照以前的方法添加一個UIWindow *window的屬性即可,因為iOS13以下根本沒有UIScene這一層 在AppDelegate.h中少了@property (strong, nonatomic) UIWindow * window; ...
  • 前言 本文是給想進入“BAT”等企業的開發朋友們提供思路的,內容全部來自於真實經歷。 關於我(化名) 大家好,我是小白(化名),一名 iOS 開發工程師。 有些人在畢業的時候就能順利進入“BAT”、“TMD”、“FLAG”,但是更多的人並沒有這個機會,比如,最典型的——我。 努力就能改變命運。這是真 ...
  • 微信逆向時,想要使用runtime的方法交換去HOOK微信的登陸方法onNext,發現由於找不到方法而崩潰 解決方法如下: 1.添加方法 2.方法替換(class_replaceMethod) 使用方法替換的方式去解決的話有一個問題,就是如果想要HOOK的原來的類裡面沒有這個onNext方法的話,r ...
  • 不知不覺,做 iOS 開發也有一年多時間了,算是經歷了從入門到初級的過程,最近也感到些許迷茫,不知道以後的路怎麼走。下周馬上就要加入一家新公司去獨立開發一個項目了,希望接下來這一年能有不錯的收穫,交得出一份拿得出手的成績單。趁這兩天有空,找了些業內前輩們的經驗分享,看看他們怎麼說的,希望自己能靜下心 ...
  • runloop 推薦相關文章 iOS 對於Run Loop的理解? 2019 iOS面試題 RunLoop數據結構、RunLoop的實現機制、RunLoop的Mode、RunLoop與NSTimer和線程 1.app如何接收到觸摸事件的2.為什麼只有主線程的runloop是開啟的3.為什麼只在主線程 ...
  • Android.mk引入各種庫 項目中引用系統的庫: LOCAL_SHARED_LIBRARIES += libxxxxx: 將系統庫文件名添加到Android.mk中 實例:LOCAL_SHARED_LIBRARIES += liblog //添加Log的庫,可以列印日誌 引入第三方庫: LOCA ...
  • Android.mk的第一部分內容 將工程下的所有源碼文件添加到變數中: 1.將每個文件添加到Android.mk中 2.使用系統提供的函數處理 文件build/core/definitions.mk all cpp files under LOCAL_C_ALL_FILES := $(call a ...
  • Android.mk可以生產的基本文件 LOCAL_PATH:P=$(call my dir) //返回該Android.mk所在目錄的路徑,必須放在第一行 定義了當前模塊的相對路徑 include $(CLEAR_VARS) //清除變數 清空當前環境變數 LOCAL_MODULE:=test / ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...