[email protected]第三章@编译Android版@V1.0.0



驾驭开源库WebRTC

第三章-编译Android版

作者:adam
鸣谢:老张、aaalaniz

日期:2015-4-6

版本:1.0.0

欢迎转载,有问题反馈Q:2780113541,尽量完善系列教程。

depot_tools代理设置参考老张《史上最牛逼的墙内下载webrtc代码说明_20150401》

编译定制参考aaalaniz的脚本:

https://github.com/pristineio/webrtc-build-scripts/blob/master/android/build.sh

0、官方源码svn自2015-3-24已迁至谷歌git

一些使用svn地址的教程已不适用或需改进

1、部署http(s)转sock5代理,具体参考第一章

Shadowsocks:代理地址
127.0.0.1:1080

Privoxy:代理地址
127.0.0.1:8118

2、编译环境准备

Ubuntu14.04x64主机或虚拟机一台,root帐户登陆,其他账户命令请加sudo

本教程以/root作为工作区,保证剩余空间30G以上,下来的总大小可能十几G。

3、下载依赖库

终端输入,下面非黑色同色为一行:

cd/root

apt-get -y install wget git gnupg flex bison gperf build-essentialzip curl subversion pkg-config clang libgtk2.0-dev

curl -o install-build-deps-android.sh
https://src.chromium.org/svn/trunk/src/build/install-build-deps-android.sh

curl -o install-build-deps.sh
https://src.chromium.org/svn/trunk/src/build/install-build-deps.sh

chmod 777 *.sh

sudo /bin/bash ./install-build-deps-android.sh

4、下载工具准备

cd /root

gitconfig --global http.proxy http://127.0.0.1:8118

gitconfig --global https.proxy https://127.0.0.1:8118

gitclone https://chromium.googlesource.com/chromium/tools/depot_tools.git

5、设置下载工具路径至环境变量

echo‘export PATH=/root/depot_tools/:$PATH‘ >> ~/.bash_profile

source~/.bash_profile

6、下载工具代理设置以及下载webrtc

vi /root/depot_tools/http_proxy.boto,内容如下:

[Boto]

proxy= 127.0.0.1

proxy_port= 8118

cd/root

mkdirwebrtc_android

cdwebrtc_android

设置下载工具代理环境变量:

exporthttp_proxy=http://127.0.0.1:8118

exporthttps_proxy=http://127.0.0.1:8118

设置下载工具git代理:

gitconfig --global http.proxy http://127.0.0.1:8118

或修改配置文件 %user_home%\.gitconfig [对特定仓库的话就是.git/config],增加:

[http]

proxy= http://127.0.0.1:8118

设置
BOTO代理,解决download google storage失败问题:

exportNO_AUTH_BOTO_CONFIG=/root/depot_tools/http_proxy.boto

exportGYP_DEFINES="$GYP_DEFINES OS=android"

首次下载输入下载命令:

fetchwebrtc_android

等待十几G下载完成,最好没报错。

报错说明网络或上边代理设置存在问题,排除问题然后执行如下命令:

下载代码:

gitpull或gitfetch

下载依赖项生成编译文件:

gclientsync

6、设置android的环境变量,ninja编译

sourcesrc/build/android/envsetup.sh

Debug版本:ninja
-C out/Debug

Release版本:ninja
-C out/Release

如果没出过错,一次就编译成了,如果出错请检查前边那些设置有问题并重复gclient sync

确保下载完整,重新编译。

编译好的库和demo在src\out下面。

---------------------------进阶-----------------------------------

1、代码和依赖项更新

cd /root/webrtc_android

exportPATH=$PATH:/root/depot_tools

exportGYP_DEFINES="$GYP_DEFINES OS=android"

同步下载源码:

gitpull或gitfetch

同步下载依赖项并根据GYP_GENERATORS的设置生成编译文件:

gclientsync

只同步下载依赖项不生成编译文件:

gclientsync --nohooks

只根据GYP_GENERATORS的设置生成编译文件:

gclientrunhooks

2、VPS编译打包下载

如果使用的是Ubuntu版VPS编译,整个WEBRTC是可以打包下来用的,解压时注意选项,不要使连接符号失效。

先备份src下的out目录,然后编译测试通过后,生成的out目录会很大。

删掉out,用备份的out替换,打包(推荐7z),这样你就有份完整的原始包了

Ubuntu自带lighthttp服务,包放到/var/www,用支持续传的工具下载下来。

下不来就是网站有类型过滤,改个后缀为jpg就可以了。

3、定制编译

如下命令默认armv7a架构下的所有库和demo都编译

ninja-C out/Debug

实际上所有android架构都支持,比如arm64、ia32
、x86、x64等

比如我只想编arm64下的WebRTCDemo:

cd/root/webrtc_android

sourcesrc/build/android/envsetup.sh

exportGYP_GENERATORS="ninja"

exportGYP_DEFINES="$GYP_DEFINES OS=android target_arch=arm64target_subarch=arm64"

exportGYP_GENERATOR_FLAGS="output_dir=out_android_arm64-v8a"

exportGYP_CROSSCOMPILE=1

gclientrunhooks

ninja-C out_android_arm64-v8a/Debug WebRTCDemo

参考:

http://www.webrtc.org/native-code/development

https://github.com/pristineio/webrtc-build-scripts/blob/master/android/build.sh

时间: 2024-11-08 15:34:07

[email protected]第三章@编译Android版@V1.0.0的相关文章

[email protected]第四章@编译Mac&IOS版@V1.0.0

 驾驭开源库WebRTC 第四章-编译Mac&iOS版 作者:adam 鸣谢:老张 日期:2015-4-6 版本:1.0.0 欢迎转载,有问题反馈Q:2780113541,尽量完善系列教程. depot_tools代理设置参考老张<史上最牛逼的墙内下载webrtc代码说明_20150401> 0.官方源码svn自2015-3-24已迁至谷歌git 一些使用svn地址的教程已不适用或需改进 1.部署http(s)转sock5代理,具体参考第一章 Shadowsocks:代理地址 12

Android群英传神兵利器读书笔记——第三章:Android Studio奇技淫巧

Android群英传神兵利器读书笔记--第三章:Android Studio奇技淫巧 这篇文章篇幅较长,可以使用版权声明下面的目录,找到感兴趣的进行阅读 目录 3.1 Android Studio使用初探 Project面板 Stucture面板 Android Monitor Keymap Tip of the Day 快速查找 Search Action 演示模式 3.2 Android Studio使用进阶 操作与导航 快速重构 代码模板 内置模板 自定义代码注释模板 代码分析 在Andr

xarmain使用Forms编译android工程出现support_r19.0.1.zip支持包错误

第一次使用xarain下载Forms程序,提示一下错误. C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(236,2): error XA5208: Download failed. Please download https://dl-ssl.google.com/android/repository/support_r19.0.1.zip and put it to the C:\Us

我的Android第三章:Android的组件介绍

小编摘录了Android文档介绍Android四大组件的基本内容,感觉文档的内容写的很详细所以小编将它写入了博客 Android 使用Java语言开发.Android SDK 工具编译代码-以及任意数据并连同相关资源打包进一个Android 包内,它是一个以.apk 为后缀的压缩文件. 一个 .apk 文件中的 所有代码就是一个程序.这个.apk文件就用于在Android设备上安装这个程序. 一旦安装成功,这个Android程序就拥有了自己独立的运行沙盒(沙盒是在受限的安全环境中运行应用程序的一

第三章:Android移植平台工具介绍读书笔记

本章主要了解了Android移植平台工具,开发板,U-Boot镜像的下载与烧写等等. 1.U-Boot镜像的下载与烧写 U-Boot镜像文件“u-boot.bin”.使用USB方式下载. 1)设置启动模式 首先安装好串口线,USB下载线,把硬件拨码开关SW1设置为USB启动模式,也就是由原来的“0000”设置为“0001”: 2)打开电源 DNW工具会显示“USB:OK” 3)通过DNW下载“USBInstaller_DDR2.bin” U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能

IOS开发之国际化篇第三章:故事版文本国际化

在IOS的开发过程中,很多时候组件都是拖拉出来,直接在故事版(storyboard)上直接使用,而并没有做输出关联,或者有些UILabel只做显示,不会进行修改.所以在这种不会在代码中修改的情况下,就需要用到故事版的国际化,如图 在xcode4.5之前,如果做故事版的国际化,是要维护多个storyboard,但在xcode4.5之后,国际化storyboard做国际化,就变成了一个storyboard,多个语言配置文件如图 其中Main.storyboard为真实的故事版文件,Main.stri

编译Android源码致命错误解决方案

编译Android源码致命错误解决方案 字数1506 阅读17447 评论0 喜欢3 相信各位和我一样正在研究android内核的朋友们在经过漫长的源码下载的等待后,喜悦的拿到了源代码开始编译.可是在编译过程中,也会和下载一样出现各种各样的不顺.在这里我记录了一下本人在编译过程中的所有问题,如有疏漏,欢迎朋友们指出.下面是按照正常编译流程记录的所需步骤和操作,可能遇到的问题会在后面讲述. 步骤一:初始化编译环境 首先进入android源码所在目录,然后在Linux终端执行以下命令来完成编译初始化

【书评:Oracle查询优化改写】第三章

BLOG文档结构图 一.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 隐含参数 _b_tree_bitmap_plans介绍 ② 11g新特性Native Full Outer Join 本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力. 一.2 实验环境介绍 oracle:11.2.0.3  .8.1.7.0.0 OS: RHEL6.5 一.3 前言 前2章的链接参考相

三、编译安装php-5.5.34

1.解决依赖关系 安装依赖包: # yum -y groupinstall"Desktop Platform Development" # yum install gcc make gd-devellibjpeg-devel libjpeg-turbo-devel libpng-devel libxml2-devel bzip2-devellibcurl-devel libiconv-devel libevent libevent-devel zlib-devel -y # yumin