国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Mac下編譯Android源碼,并導(dǎo)入IntelliJ IDEA進行源碼閱讀

lingdududu / 3259人閱讀

摘要:本文使用清華大學(xué)鏡像下載源碼,具體步驟參考清華大學(xué)鏡像提供的教程。

macOS High Sierra 版本 10.13.4

Xcode 9.3

aosp分支:android-8.1.0_r20

準備編譯環(huán)境

具體參考官方文檔

安裝 jdk8u45 or newer

安裝xcode命令行

xcode-select --install

安裝編譯需要用到的其他包

使用Homebrew安裝(官方文檔使用的是MacPorts)

brew install gmake libsdl git gnupg

_NOTE_: gmake 可以不用安裝,使用xcode自帶的就可以

設(shè)置可以同時打開的文件數(shù)限制,避免編譯時超出限制

在 ~/.bash_profile 添加如下語句

# set the number of open files to be 1024
ulimit -S -n 1024

創(chuàng)建區(qū)分大小寫的APFS宗卷

官方文檔創(chuàng)建的是區(qū)分大小寫HFS+磁盤鏡像,我們這邊使用區(qū)分大小寫的APFS卷宗

1. 打開磁盤工具按下圖步驟操作:

2. 設(shè)置宗卷大小

具體大小根據(jù)自己情況設(shè)定,配額大小最好不要小于200G

下載源碼

具體參考官方文檔-下載源碼。
本文使用清華大學(xué)aosp鏡像下載源碼,具體步驟參考清華大學(xué)aosp鏡像提供的教程。

下載repo

mkdir ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod +x ~/bin/repo

在~/.bash_profile中將剛才創(chuàng)建的~/bin目錄添加進PATH

export PATH=~/bin:$PATH

建立工作目錄

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

初始化倉庫

指定master分支

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

若要指定android版本,如下:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.1.0_r20

同步源碼樹

repo sync 或者 repo sync -j4 # 指定并發(fā)數(shù)
NOTE: repo sync有時會失敗,可能要運行多次,才能同步完源碼,可以使用以下循環(huán)腳本:

#!/usr/bin/env bash
repo sync -j4
while [ $? -ne 0 ]
do
    repo sync -j4
done
編譯源碼

具體參考官方文檔-編譯源碼

source build/envsetup.sh
lunch aosp_x86_64-eng # 或者直接運行l(wèi)unch, 在出現(xiàn)的選項中選擇編譯目標
make -j8 # 根據(jù)cpu核心數(shù)(物理線程)選擇并發(fā)數(shù),公式:并發(fā)數(shù)=cpu核心數(shù)(物理線程) x 2

編譯過程比較漫長,在我的機子上大概用了2個多小時

編譯遇到的問題

mac sdk10.13 不支持編譯,如下:

internal error: Could not find a supported mac sdk: ["10.10" "10.11" "10.12"]

[44/44] bootstrap out/soong/.minibootstrap/build.ninja.in
[4/4] out/soong/.bootstrap/bin/minibp out/soong/.bootstrap/build.ninja
[860/861] glob external/clang/utils/TableGen/Android.bp
[54/54] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -b out/soong -d out/soong/build.ninja.d -o out/soong/build.ninja Android.bp
internal error: Could not find a supported mac sdk: ["10.10" "10.11" "10.12"]
ninja: build stopped: subcommand failed.
20:24:32 soong failed with: exit status 1

解決方法
修改AOSP/build/soong/cc/config/x86_darwin_host.go文件,添加10.13支持,如下

darwinSupportedSdkVersions = []string{
    "10.10",
    "10.11",
    "10.12",
    "10.13", // 添加mac sdk 10.13
}

遇到bison錯誤

FAILED: out/soong/.intermediates/external/selinux/checkpolicy/checkpolicy/darwin_x86_64/gen/yacc/external/selinux/checkpolicy/policy_parse.c out/soong/.intermediates/external/selinux/checkpolicy/checkpolicy/darwin_x86_64/gen/yacc/external/selinux/checkpolicy/policy_parse.h 
BISON_PKGDATADIR=external/bison/data prebuilts/misc/darwin-x86/bison/bison -d --defines=out/soong/.intermediates/external/selinux/checkpolicy/checkpolicy/darwin_x86_64/gen/yacc/external/selinux/checkpolicy/policy_parse.h -o out/soong/.intermediates/external/selinux/checkpolicy/checkpolicy/darwin_x86_64/gen/yacc/external/selinux/checkpolicy/policy_parse.c external/selinux/checkpolicy/policy_parse.y

解決方法
bison打補丁,重新編譯(Patch bison fix for High Sierra and build bison:):

cd AOSP/external/bison
git cherry-pick c0c852bd6fe462b148475476d9124fd740eba160
mm
cp AOSP/out/host/darwin-x86/bin/bison AOSP/prebuilts/misc/darwin-x86/bison/
將源碼導(dǎo)入IntelliJ IDEA 導(dǎo)入IDEA前 - 配置

運行如下命令,生成IDE工程信息文件 android.iprandroid.iml

source build/envsetup.sh # 在新終端下需要執(zhí)行這一步
mmma development/tools/idegen
development/tools/idegen/idegen.sh

由于aosp工程很大,在導(dǎo)入IDEA前需要先修改配置:

修改VM內(nèi)存大小
打開IDEA 菜單欄 Help > Edit Custom VM Options,添加

-Xms1g 
-Xmx5g

修改文件大小限制,打開區(qū)分大小寫選項

打開IDEA 菜單欄 Help -> Edit custom properties, 添加

idea.max.intellisense.filesize=100000
idea.case.sensitive.fs=true

NOTE: 重啟IDEA使配置生效

用IDEA找到AOSP目錄下的android.ipr文件,打開AOSP工程,耐心等待,索引需要一定時間

導(dǎo)入IDEA后 - 配置

創(chuàng)建SDK 1.8 (No Libraries),確保代碼跳轉(zhuǎn)到是aosp源碼,而不是系統(tǒng)安裝的JDK,如下

NOTE 注意要刪掉Classpath里面所有的jar

刪除Modules中的dependencies,只保留1.8 (No Libraries)

將生成的資源文件ID目錄out/target/common/R添加進源碼目錄,避免R資源索引找不到,如圖:

最后 Synchronize 整個工程同步下(打開IDEA菜單 File -> Synchronize),稍稍等待后就可以愉快的閱讀Android源碼了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/69461.html

相關(guān)文章

  • IntelliJ IDEA 超實用使用技巧分享

    摘要:超實用使用技巧分享長篇前言工欲善其事必先利其器最近受部門的邀請,給入職新人統(tǒng)一培訓(xùn),發(fā)現(xiàn)有很多新人雖然日常開發(fā)使用的是,但是還是很多好用的技巧沒有用到,只是用到一些基本的功能,蠻浪費這個優(yōu)秀的。 IDEA 超實用使用技巧分享(長篇) showImg(https://segmentfault.com/img/remote/1460000019977268?w=1280&h=800); 前...

    fevin 評論0 收藏0
  • [轉(zhuǎn)載]使用IntelliJ IDEA開發(fā)SpringMVC網(wǎng)站(一)開發(fā)環(huán)境

    摘要:最近在做某在線教育平臺網(wǎng)站的開發(fā),按師兄的建議要用來搞?,F(xiàn)在把開發(fā)過程中的一些相關(guān)經(jīng)驗貼出來。事先聲明,請確保和都已經(jīng)安裝好。對于不使用的開發(fā)者,可以直接建一個簡單的項目。使用的話,請按照圖進行操作。 訪問GitHub下載最新源碼:https://github.com/gaussic/Sp... 文章已針對IDEA 2016做了一定的更新,部分更新較為重要,請重新閱讀文章并下載最新源碼...

    Ali_ 評論0 收藏0
  • Spring源碼導(dǎo)入IDEA

    摘要:項目環(huán)境源碼地址可以下載壓縮包解壓到相應(yīng)文件夾,或者用蕩下來,導(dǎo)入步驟在項目的根目錄下使用進行預(yù)編譯這期間要下載一下依賴,時間稍微有點長視網(wǎng)速情況而定,要耐心等待一下。 項目環(huán)境 Jdk1.8 、Gradle5.0、IntelliJ IDEA 2018.2.3 Steps spring源碼GitHub地址可以下載壓縮包解壓到相應(yīng)文件夾,或者用git蕩下來,導(dǎo)入步驟: 在項目的根目錄...

    inapt 評論0 收藏0
  • [轉(zhuǎn)載]使用IntelliJ IDEA開發(fā)SpringMVC網(wǎng)站(二)框架配置

    摘要:為了能夠處理中文的請求,再配置一個,以避免請求中文出現(xiàn)亂碼情況至此,配置完畢。一般為一些基本的,用于進行相應(yīng)的頁面顯示,用于處理網(wǎng)站的請求?,F(xiàn)在,需要配置來運行該項目。 摘要講解如何配置SpringMVC框架xml,以及如何在Tomcat中運行轉(zhuǎn)載請注明出處:Gaussic(一個致力于AI研究卻不得不兼顧項目的研究生)。 注:此文承接上一文:使用IntelliJ IDEA開發(fā)Sprin...

    baukh789 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<