久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

專欄中心

EEPW首頁 > 專欄 > 基于NXP iMX8 進行安卓Android編譯和開發(fā)

基于NXP iMX8 進行安卓Android編譯和開發(fā)

發(fā)布人:toradex 時間:2019-10-18 來源:工程師 發(fā)布文章

By Toradex 胡珊逢

簡介

安卓 Android 因其豐富的生態(tài)環(huán)境,以及快捷的應(yīng)用開發(fā)和分發(fā),獲得了廣泛的市場關(guān)注。Toradex最新基于 NXP iMX8 處理器的Apalis iMX8QM Colibri iMX8QXP 也提供給了Android 9.0 (Pie) 支持。下面我們將介紹如從源碼開始編譯安卓。

 

安卓系統(tǒng)目前并非Toradex 官方直接提供技術(shù)支持的操作系統(tǒng)而由合作伙伴 Kynetics 進行移植和維護。并對用戶免費提供源碼下載,結(jié)合NXP的發(fā)布情況不定期進行升級維護,甚至是 OTA 更新服務(wù)和增值技術(shù)支持。

 

構(gòu)建 Docker 鏡像

安卓編譯是一個很復(fù)雜的過程,無論是編譯安卓本身涉及的配置,還是對編譯電腦的性能和網(wǎng)絡(luò)(需要從Google服務(wù)器下載資源)。因此我們建議采用高性能CPU電腦,空余磁盤空間至少250GB。為了減少對編譯環(huán)境的配置的難度,我們提供了 Docker 鏡像,里面集成了編譯安卓所需的工具。如果你的Ubuntu電腦之前沒有安裝過 Docker ,可以參考下面命令。

使用apt 安裝:

----------------------------

$ sudo apt-get update

$ sudo apt-get install docker-ce

----------------------------

 

啟動Docker

----------------------------

$ sudo systemctl enable docker

$ sudo systemctl start docker

----------------------------

 

建立 docker 用戶組

----------------------------

$ sudo groupadd docker

$ sudo usermod -aG docker $USER

----------------------------

 

驗證Docker安裝

----------------------------

$ docker run hello-world

----------------------------

 

在完成Docker安裝后,下載Dockerfile,用其編譯Docker鏡像。

----------------------------

$ docker build -t android-build-env .

----------------------------

 

當編譯完成后可以看到已經(jīng)生成了android-build-env 鏡像,接下來我們將在這個Docker 鏡像中完成安卓編譯。

----------------------------

$ docker images

REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE

android-build-env             latest              9c9ea78b1f48        2 days ago          1.17GB

gradle                        jdk8                c7745382f42e        6 days ago          553MB

----------------------------

 

我們也將該鏡像上傳到了FTP,你可以直接下載并導(dǎo)入。

----------------------------

$ docker load -i android-build.tar

----------------------------

 

 

獲取安卓源碼

Kynetics 網(wǎng)站注冊,24小時內(nèi)會通過審核。然后下載所需的源碼包。解壓后將其中的fetch_script.sh文件和projects文件夾復(fù)制到~/android-build 目錄。從 NXP 網(wǎng)站下載補丁文件位于BSP, Drivers and Middleware 板塊的P9.0.0_2.0.1_PATCH_ANDROID_SOURCE文件。同樣將其放到~/android-build目錄。我們將在該目錄里使用Docker 鏡像android-build-env編譯安卓。

 

運行Docker 鏡像

執(zhí)行下面命令,啟動Docker 鏡像,并將~/android-build掛載到Docker 鏡像的 /android-build 目錄。

----------------------------

$ cd ~/android-build

$ docker run --rm -it -v ${PWD}:/android-build android-build-env bash

----------------------------

你將會看到一個Bash會話終端。

 

編譯安卓

接下來的編譯操作都將在Docker 鏡像中完成,即上面打開的Bash會話終端。

設(shè)置BUILD_HOME變量

----------------------------

# export BUILD_HOME=/android-build

----------------------------

 

你將可以看到BUILD_HOM 目錄下的文件。

----------------------------

# ls -lh $BUILD_HOME

-rwxrwxr-x  1 gradle gradle 5.3K Aug 27 12:42 fetch_script.sh

-rwxrwxr-x  1 gradle gradle  42M Oct 16 03:06 imx-p9.0.0_2.0.1-ga.tar.gz

drwxrwxr-x  5 gradle gradle 4.0K Oct  4 15:20 projects

----------------------------

 

配置 git 信息

----------------------------

# git config --global user.email "you@example.com"

# git config --global user.name "Your Name"

----------------------------

 

下載repo 工具

----------------------------

# mkdir ~/bin

# curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

# chmod a+x ~/bin/repo

# export PATH=${PATH}:~/bin

----------------------------

由于該工具需要從Google 服務(wù)器上下載。你也可以在Docker鏡像外下載,或者從我們的FTP服務(wù)器上下載,然后放在~/android-build目錄中Docke鏡像的/android-build目錄中看到。

 

進入編譯目錄BUILD_HOME

----------------------------

# source fetch_script.sh apalis_8qm-p9.0.0_2.0.1-snapshot-20190726

----------------------------

該過程中將會下載所需編譯工具文件,根據(jù)你的網(wǎng)速不同,可能需要數(shù)個小時,期間會從眾多的服務(wù)器下載資源,包括Google的服務(wù)器,請保證網(wǎng)絡(luò)的可用性。此時還未開始下載Android系統(tǒng)自身的源代碼。

 

上述過程結(jié)束后,生成以下目錄

----------------------------

# $BUILD_HOME/android_build

----------------------------

如果下載失敗,可以刪除android_build目錄再次嘗試。

 

然后啟動最后的編譯

----------------------------

# cd $BUILD_HOME/android_build

# source build/envsetup.sh

# lunch apalis_8qm-userdebug

----------------------------

 

接受Kynetics EULA協(xié)議,根據(jù)編譯電腦的CPU核數(shù)進行編譯

----------------------------

# make -j8

----------------------------

這個過程也將消耗數(shù)個小時之多。

 

期間會下載所有涉及的源代碼,包括從https://android.googlesource.com/下載大量Android 源碼。如果你的網(wǎng)絡(luò)帶寬(首次會下載30GB左右的數(shù)據(jù))不容樂觀,可以切換國內(nèi)的鏡像站點。

 

修改aosp-p9.0.0_2.0.0-ga.xml文件。該文件可以在Ubuntu主機上,或者在Docker鏡像中修改。Ubuntu 上位于~/android-build/android_build/.repo/manifestsDocker鏡像位于/android-build/android_build/.repo/manifests。將其中的https://android.googlesource.com/ 使用 https://aosp.tuna.tsinghua.edu.cn/替換。

----------------------------

<remote  name="aosp"

           fetch="https://aosp.tuna.tsinghua.edu.cn/"

           review="https://android-review.googlesource.com/" />

----------------------------

 

詳細的說明請參考網(wǎng)站說明。

 

 

IMX8 上安裝安卓

借助Toradex Easy Installer 可以很方便地在線直接將Android 安裝到IMX8 模塊上。

                                              image001.png

 

在完成了安卓編譯和安裝后,下面我們將簡單介紹如何在IMX8 上開發(fā)一個安卓APP

 

 

 

硬件連接

通過Ixora 底板上的OTG,將IMX8連接到開發(fā)電腦。

image002.jpg

 

Ubuntu上安裝adb后即可訪問iMX8 上的安卓系統(tǒng)。

----------------------------

$ sudo apt-get install adb

$ adb shell

apalis_8qm:/ $

----------------------------

 

 

Android Studio 配置

下載最新的Android Studio并安裝。在撰寫本文是,Android Studio的默認安裝已經(jīng)選擇了Android 10 SDK,所以需要手動安裝Android 9 SDKAndroid Studio SDK安裝過程也會訪問Google服務(wù)器,請注意網(wǎng)絡(luò)環(huán)境。

 

安裝完成進入歡迎界面后,選擇Import an Android code sample

image003.png

選擇Sunflower app

image004.png

 

例程會從github上下載。

image005.png

 

等待Gradle build 結(jié)束。然后點擊右上方的 Run按鍵。

image006.png

 

 

Connected Devices中選擇Toradex 計算機模塊。

image007.png

 

IMX8運行Sunflower

image008.jpg

 

 

使用Update Factory 進行OTA更新

Update Factory進行注冊試用。

image009.png

 

 

根據(jù)注冊的賬號信息,修改配置ufConf.conf

----------------------------

tenant=<Your Tenant>

url=https://personal.updatefactory.io/

controllerId=<Chosen Controller ID>

gatewayToken=<From System Config>

targetToken=<From Device Details>

apiMode=true

enable=true

updateFactoryServer=true

----------------------------

 

將配置文件發(fā)送到IMX8。重啟后生效。

----------------------------

$ adb push ufConf.conf /sdcard/UpdateFactoryConfiguration/ufConf.conf

----------------------------

 

 

總結(jié)

通過上面的介紹,您可以很快開啟在IMX8上的安卓應(yīng)用開發(fā)。和手機、平板安卓設(shè)備不同,行業(yè)設(shè)備可能還需要很多的外設(shè)通信,如CANSPII2C等,以及GPIO控制,如果您需要使用這些接口,請聯(lián)系Toradex或者Kynetics

 

 

 

 

 

參考

https://developer.toradex.com/knowledge-base/partner-demo-image-kynetics-android#-apalis-imx6-apalis-imx8qm-v10b-and-colibri-imx8qxp-v10b

https://developer.toradex.cn/knowledge-base/how-to-setup-android-build-environment-using-docker

https://www.kynetics.com/docs/2019/Android_Pie_9.0.0_Toradex_i.MX8QM_Apalis_Ixora_B0/


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。

關(guān)鍵詞:

相關(guān)推薦

PI再現(xiàn)產(chǎn)品佳作:TinySwitch-5打破“Tiny”邊界

全球首款!新型手機OLED面板問世:可發(fā)聲、會變形

34家廠商車規(guī)MCU型號匯總,一圖速覽國產(chǎn)MCU上車進展

DC-DC導(dǎo)致EMI輻射超標案例

EDA/PCB 2025-03-31

C64x+ 網(wǎng)絡(luò)培訓(xùn)(三)

視頻 2010-03-12

C64x+ 網(wǎng)絡(luò)培訓(xùn)(一)

視頻 2010-03-12

CSM100產(chǎn)品數(shù)據(jù)手冊

MCU沒有退路:要么上車,要么出局

DC-DC電感值計算

電源與新能源 2025-03-31

如何理解共模電感?

C64x+ 網(wǎng)絡(luò)培訓(xùn)(五)

視頻 2010-03-12

PV2700:解鎖IT2700的百通道測試潛能,打造高效智能測試體驗

先進的電流和電壓檢測技術(shù)如何實現(xiàn)超精密機器人

CSM100嵌入式CAN轉(zhuǎn)UART芯片的應(yīng)用實例圖

CSM100配置軟件

資源下載 2007-03-30

C64x+ 網(wǎng)絡(luò)培訓(xùn)(四)

視頻 2010-03-12

C64x+ 網(wǎng)絡(luò)培訓(xùn)(二)

視頻 2010-03-12

CrossWorks for ARM快速入門

創(chuàng)新引領(lǐng),智能賦能|奧芯明攜四大技術(shù)矩陣亮劍SEMICON China 2025

2025-03-31

CPLD基礎(chǔ)應(yīng)用教學(xué)實驗室建立推薦方案

更多 培訓(xùn)課堂
更多 焦點
更多 視頻

技術(shù)專區(qū)