Android Studio 构建
獲得源碼
分支
當(dāng)前我們具有如下老版本 Android Studio 的分支:
| studio-1.0-dev | studio-1.0-release | idea13-dev | 這是 1.0 的分支,已經(jīng)關(guān)閉 |
| studio-1.1-dev | studio-1.1-release | idea13-1.1-dev | 這是 1.1 的分支,已經(jīng)關(guān)閉 |
| studio-1.2-dev | studio-1.2-release | idea14-1.2-dev | 這是 1.2 的分支,已經(jīng)關(guān)閉 |
| studio-1.3-dev | studio-1.3-release | idea14-1.3-dev | 這是 1.3 的分支,已經(jīng)關(guān)閉 |
| studio-master-dev | studio-master-dev | studio-master-dev |
ub-tools-idea133 和 ub-tools-master 分支已經(jīng)廢棄掉了。我們也不使用 master 分支。
開(kāi)發(fā)分支
像 Android 操作系統(tǒng)一樣,Android Studio 也是開(kāi)源的,且可以自由的控制它。在每個(gè)穩(wěn)定版發(fā)布之后,Android 將源碼發(fā)布到 Android Open Source Project (AOSP),如 這里 描述的那樣。自 Android Studio 1.4 起,Android Studio 使用了相同的在每個(gè)穩(wěn)定版發(fā)布之后發(fā)布源碼的模式。對(duì)于那些為 Android Studio 貢獻(xiàn)代碼的同學(xué)來(lái)說(shuō),代碼提交流程基本上與 Android 平臺(tái)一樣。我們期待繼續(xù)每隔近 2 - 4 個(gè)月發(fā)布一個(gè)穩(wěn)定版本的 Android Studio,且每個(gè)這樣的發(fā)布時(shí),源碼也將變得可用。請(qǐng)繼續(xù)為 Android Studio AOSP 分支提交補(bǔ)丁。我們將做 code review 并把修改合并進(jìn)后續(xù)的 Android Studio 版本。我們非常感激所有社區(qū)中的你們的合作以及在 Android Studio 上的努力工作。
標(biāo)簽
有下列發(fā)布標(biāo)簽可用:
- studio-3.0
- studio-2.3
- studio-2.2
- studio-2.0
- studio-1.5
- studio-1.4
- …
gradle 的如下:
- gradle_3.0.0
- gradle_2.3.0
- gradle_2.2.0
- gradle_2.0.0
- gradle_1.5.0
- …
代碼檢出
首先,你需要為你的平臺(tái)安裝前提條件。這意味著你需要 git,C 編譯器,等等。這里有一些步驟,它們依賴于具體的平臺(tái),因此請(qǐng)?zhí)D(zhuǎn)到官方構(gòu)建指南頁(yè)面,其中有詳細(xì)的指導(dǎo):http://source.android.com/source/initializing.html。
有些要求是不需要的(如大小寫敏感的文件系統(tǒng)),除非你也打算構(gòu)建平臺(tái)。如果你在 Mac 上,你將依然需要 XCode 來(lái)構(gòu)建模擬器。
一旦你已經(jīng)配置了所有東西,則通過(guò)如下的指導(dǎo)下載 repo 工具:http://source.android.com/source/downloading.html。
然后你可以在 shell 中使用如下命令檢出源碼:
$ mkdir studio-master-dev $ cd studio-master-dev $ repo init -u https://android.googlesource.com/platform/manifest -b studio-master-dev $ repo sync(頂級(jí)目錄的名字你可以隨意確定;我們中那些檢出多個(gè)分支的同學(xué)可以根據(jù)分支的名字來(lái)命名目錄。)
在 repo init 期間,它將詢問(wèn)你你的名字和 e-mail 地址;后面如果你決定檢入修改集并上傳它們以 review,這些信息將被用到。
如果你想檢出并構(gòu)建 2.3 發(fā)布版標(biāo)簽,則使用如下的命令:
$ repo init -u https://android.googlesource.com/platform/manifest -b studio-3.0后面是 repo sync,就像前面看到的那樣。
執(zhí)行特定發(fā)布版的檢出
我們開(kāi)始給發(fā)布版打標(biāo)簽。這意味著你可以使用標(biāo)簽來(lái)獲得特定版本的源碼。當(dāng)前我們使用如下標(biāo)簽:
| Studio | studio-x.y |
你可以在這里查看所有可用的標(biāo)簽:https://android.googlesource.com/platform/manifest/+refs。
比如,你可以通過(guò)如下命令檢出 3.0.0 版本的 Gradle 插件:
$ repo init -u https://android.googlesource.com/platform/manifest -b gradle_3.0.0 $ repo sync構(gòu)建
通過(guò) studio-* 分支構(gòu)建的 SDK 部分只有 IDE 組件和 SDK Tools。由于構(gòu)建系統(tǒng)的不同,每個(gè)組件通過(guò)不同的方式構(gòu)建。
它們都不使用平臺(tái)的基于 make 的構(gòu)建系統(tǒng)。
構(gòu)建 Android Studio
在歷史上,構(gòu)建 Android 工具也需要構(gòu)建完整的 Android SDK,因?yàn)?#xff0c;比如系統(tǒng)鏡像所需的模擬器。
然而,我們已經(jīng)很好地遷移了工具源碼為一個(gè)更獨(dú)立的設(shè)置,現(xiàn)在你可以構(gòu)建 Android Studio IDE 而無(wú)需一個(gè)完整 Android 檢出及 C 編譯器等等。
設(shè)置 IntelliJ 以開(kāi)發(fā) Android Studio
- 下載最新的 IJ 社區(qū)版。
給它添加一個(gè) JDK:Project Structure | SDKs | 添加一個(gè)新的 SDK,并命名為 “IDEA jdk”。(注意這個(gè) SDK 應(yīng)該是一個(gè)標(biāo)準(zhǔn)的 JDK,而不是一個(gè)“IntelliJ Platform Plugin SDK”)
- 請(qǐng)使用 JDK 1.6,因?yàn)槲覀円廊恢С謱?IDE 運(yùn)行在 Java 6上。你可以使用更新版本的 JDK,但是你可能偶然地訪問(wèn) 1.6 版不可用的 APIs,因此如果你打算上傳你的改動(dòng)的話,請(qǐng)確保你使用的是 JDK 1.6 作為你的 IDEA 的 jdk。
如果你不是在 Mac OSX 上,請(qǐng)把你的 JDK 中的 tools.jar 也添加 到你的 IDEA jdk 的 classpath 中。(位于 /lib/tools.jar)
(注意:你必須已經(jīng)啟用了 Groovy 和 UI Designer。它們應(yīng)該是,默認(rèn)情況下,但是如果你在 .groovy 文件中遇到了編譯錯(cuò)誤。)
通過(guò)上面的步驟檢出代碼之后,Android 插件的代碼位于 tools/adt/idea,IntelliJ IDE 的源碼位于 tools/idea/,及大量的共享庫(kù)位于 tools/base/。
編譯 IDEA
在 IntelliJ 中,通過(guò)選擇 Open Project 并選擇文件夾 tools/idea/,來(lái)打開(kāi) Android Studio 工程。現(xiàn)在你可以編譯、運(yùn)行及調(diào)試工程了。
通過(guò)如下命令來(lái)編譯:
$ cd tools/idea $ ./build_studio.sh(如果是在 Windows 上,且無(wú)法運(yùn)行 .sh 腳本,則運(yùn)行 “ant” 來(lái)替代;腳本將首先設(shè)置一些環(huán)境變量。)
在 out/artifacts 中查看編譯結(jié)果。
構(gòu)建插件
檢出代碼之后,Gradle Plugin 的代碼位于 tools/base。
所有的工程在一個(gè)多模塊 Gradle 工程中一起構(gòu)建。那個(gè)工程的根目錄是 tools/。
當(dāng)前的 Gradle Plugin 以 Gradle 4.0 構(gòu)建。為了確認(rèn)你正在使用正確的版本,請(qǐng)?jiān)诠こ痰母夸浿袠?gòu)建時(shí),使用 gradle 包裝腳本(gradlew)。
你可以通過(guò)如下命令構(gòu)建 Gradle 插件(及相關(guān)的庫(kù)):
$ ./gradlew assemble如果第一次 assemble 執(zhí)行失敗,則試一下如下命令:
$ ./gradlew clean assemble要測(cè)試插件,你需要運(yùn)行如下的命令:
$ ./gradlew check此外,你應(yīng)該把一個(gè)設(shè)備連接到你的工作站并運(yùn)行:
$ ./gradlew connectedIntegrationTest為了運(yùn)行特定的 connectedIntegrationTest,則運(yùn)行:
$ ./gradlew connectedIntegrationTest -D:base:integration-test:connectedIntegrationTest.single=BasicTest原文:
Build Overview
Building Android Studio
Building the Android Gradle Plugin
打賞
Done.
總結(jié)
以上是生活随笔為你收集整理的Android Studio 构建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何预编译 Android 模拟器专用内
- 下一篇: android sina oauth2.