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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Webrtc入门——基于阿里云ubuntu 最新webrtc Android平台编译详细说明

發(fā)布時(shí)間:2024/2/28 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Webrtc入门——基于阿里云ubuntu 最新webrtc Android平台编译详细说明 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

折騰了好多天,終于將webrtc Android平臺(tái)的demo編譯出來(lái)了,發(fā)現(xiàn)即使完全按照webrtc官網(wǎng)的編譯指南,還是會(huì)碰到各種問(wèn)題。而網(wǎng)上又沒(méi)有更全面的說(shuō)明,最后是通過(guò)查看webrtc 批處理腳本才最終一步步解決問(wèn)題。寫(xiě)下這篇文章,希望對(duì)大家有幫助。

? ? ? ? 在編譯的過(guò)程中,感覺(jué)webrtc編譯實(shí)在是太難了, 但是完成了編譯之后,感覺(jué)webrtc編譯其實(shí)是很簡(jiǎn)單的,造成這個(gè)強(qiáng)烈反差的主要原因是,google工程師將幾乎所有編譯過(guò)程中需要使用的軟件、依賴配置、環(huán)境變量,都已經(jīng)寫(xiě)成了腳本,你只要運(yùn)行就可以了。什么JDK、SDK安裝、配置、環(huán)境變量設(shè)置統(tǒng)統(tǒng)不需要,怎樣,簡(jiǎn)單吧,運(yùn)行幾個(gè)命令就搞定了!!等等,別高興太早,我前面說(shuō)的是幾乎,不是全部,比如在命令行條件下用url下載資源的curl及其依賴的一票軟件,人家google認(rèn)為是基礎(chǔ)軟件,不需要給你安裝,但是萬(wàn)一你沒(méi)有安裝呢,那就在下載源碼失敗的地方慢慢找原因吧!!另外,批處理也有壞處,中間某個(gè)環(huán)節(jié)出問(wèn)題了就會(huì)終止(因?yàn)槟阆到y(tǒng)或者網(wǎng)絡(luò)的原因),但是也許你沒(méi)注意,認(rèn)為執(zhí)行結(jié)束了,那就會(huì)在編譯環(huán)節(jié)遇到各種各樣的問(wèn)題,這些問(wèn)題連萬(wàn)能的google可能都沒(méi)有任何答案。當(dāng)然,如果你的網(wǎng)絡(luò)連接美帝很慢,那就更慘了。

? ? ?好了,言歸正傳,編譯之前請(qǐng)大家準(zhǔn)備好環(huán)境:

? ? 1.阿里云Ubuntu 14.04 64bit ?1核4G內(nèi)存,選擇美國(guó)的網(wǎng)絡(luò),按流量收費(fèi),100M網(wǎng)絡(luò):

? ? ? ? ?美國(guó)的網(wǎng)絡(luò)你懂的,4G內(nèi)存是webrtc編譯最低要求

? ? 2.提前執(zhí)行apt-get update,確保源同步過(guò)程不出現(xiàn)錯(cuò)誤

? ?3. 添加新賬戶,并設(shè)置管理員權(quán)限

? ? ? webrtc在源碼下載的過(guò)程中會(huì)識(shí)別是否root用戶,如果是root用戶會(huì)提醒錯(cuò)誤。但是你不去理會(huì)似乎也能正常往下走,不過(guò)我為了保險(xiǎn)還是使用了新賬戶。

sudo adduser xxx(你的用戶名) sudo vi /etc/sudoers 找到“root ALL=(ALL) ALL”,在下面加一條: # User privilege specification root ALL=(ALL) ALL xxx ALL=(ALL) ALL重啟linux系統(tǒng)

? 4.安裝阿里云未默認(rèn)安裝的軟件(但webrtc認(rèn)為你默認(rèn)就有的環(huán)境)

sudo apt-get install git apache2 curl libcurl3 libcurl3-dev php5-curl//重啟Apachesudo /etc/init.d/apache2 restart

? ? 準(zhǔn)備條件基本具備了,接下來(lái)就開(kāi)始真正webrtc源碼下載和編譯了,其實(shí)就是按照google官網(wǎng)的指導(dǎo)?https://webrtc.org/native-code/android/ ,只是對(duì)其中容易搞錯(cuò)的地方做了重點(diǎn)說(shuō)明。

?1.下載源碼

選擇一個(gè)目錄,我是選擇當(dāng)前賬戶的根目錄( home/xxx(你的用戶名) )//下載depot-tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git //設(shè)置環(huán)境變量 export PATH=`pwd`/depot_tools:"$PATH"//選擇Android為目標(biāo) export GYP_DEFINES="OS=android"//選擇版本分支 fetch --nohooks webrtc_android//開(kāi)始下載源碼 gclient sync

?執(zhí)行g(shù)client sync開(kāi)始下代碼后,不會(huì)一番風(fēng)順:

? 1)首先會(huì)一直停留在“still on src”這樣一個(gè)提示上,可能需要40分鐘以上,不要著急,這是正常現(xiàn)象。

下列現(xiàn)象去年的版本會(huì)出現(xiàn),但是17年9月的版本已經(jīng)不會(huì)出現(xiàn)了,如果出現(xiàn),可以按照下列方式操作

? 2)在源碼下載過(guò)程中會(huì)有一個(gè)Android SDK 軟件許可的提示,但是顯示不全,所以無(wú)法進(jìn)行y/n選擇, 沒(méi)關(guān)系,你按回車(chē)鍵先讓它繼續(xù)往后走。如果你仔細(xì)看,回車(chē)后會(huì)有提示,大概意識(shí)是 google play severice 不是最新的,要你手動(dòng)執(zhí)行“src/build/android/play_services/update.py download”更新,你先不管

? 3)因?yàn)間oogle play severice 不是最新的,下載到一大半會(huì)出錯(cuò),這個(gè)時(shí)候你執(zhí)行?src/build/android/play_services/update.py download ,然后再執(zhí)行g(shù)client sync就能正常下載完了。

?

2.編譯apk?

安裝JDK8 $ sudo apt-get install?python-software-properties software-properties-common $ sudo add-apt-repository ppa:openjdk-r/ppa $ sudo apt-get update $ sudo apt-get install openjdk-8-jre openjdk-8-jdk將默認(rèn)JDK環(huán)境切換到JDK8sudo update-alternatives --config java sudo update-alternatives --config javacsudo update-alternatives --config javaws sudo update-alternatives --config javap sudo update-alternatives --config jar sudo update-alternatives --config jarsigner/*安裝編譯依賴軟件和環(huán)境,這個(gè)過(guò)程會(huì)安裝linux的基礎(chǔ)環(huán)境和Android的基礎(chǔ)環(huán)境*/ src/build/install-build-deps-android.sh /*設(shè)置各種環(huán)境變量*/ /*進(jìn)入src目錄,執(zhí)行*/ . build/android/envsetup.shgn gen out/Debug --args='target_os="android" target_cpu="arm"'

You can specify a directory of your own choice instead of?out/Debug, to enable managing multiple configurations in parallel.

  • To build for ARM64: use?target_cpu="arm64"
  • To build for 32-bit x86: use?target_cpu="x86"
  • To build for 64-bit x64: use?target_cpu="x64"
ninja -C out/Debug***************************************老版本編譯方法**************************************/*進(jìn)入src目錄,執(zhí)行*/ . build/android/envsetup.shexport GYP_DEFINES="OS=android $GYP_DEFINES"export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_android"gclient runhooksninja -C out/Debug AppRTCDemo

如果之前的操作步驟正確,編譯這一步是不會(huì)出什么問(wèn)題的,順利編譯通過(guò)。在src/out/Debug/apks/目錄下能找到AppRTCDemo.apk

好了,編譯結(jié)束了

總結(jié)

以上是生活随笔為你收集整理的Webrtc入门——基于阿里云ubuntu 最新webrtc Android平台编译详细说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。