Andriod-webrtc编译步骤
(在用户目录下进行,由于源码已经下载好,所以可以忽视“1.2 下载depot_tools”、“3.1 获取 webrtc源码”)
一、环境搭建
1. Install depot_tools
1.1安装git
sudo apt-get install git
1.2下载 depot_tools:
sudo git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
1.3设置环境变量
vi ~/.bash_profile
export PATH=XXX/depot_tools:"$PATH"
按“ESC”,输入 ":wq!" 保存退出;
source ~/.bash_profile 使PATH设置生效
echo $PATH 查看设置是否生效。
2.Install Java JDK
2.1安装openjdk-7-jdk
sudo apt-get install openjdk-7-jdk
2.2 Make also sure that OpenJDK is selected as default:
Here is a (hopefully complete) minimal list of packages to install (sudo apt-get install...):
apt-get install g++ (>= 4.2)
apt-get install python (>= 2.4)
apt-get install libnss3-dev >= 3.12
apt-get install libasound2-dev
apt-get install libpulse-dev
apt-get install libjpeg62-dev
apt-get install libxv-dev
apt-get install libgtk2.0-dev
apt-get install libexpat1-dev
For 32-bit builds on a 64-bit system:
apt-get install lib32asound2-dev
apt-get install ia32-libs
2.3设置环境变量
export GYP_DEFINES="OS=android"
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
3. Getting the code
3.1获取 webrtc源码
fetch webrtc // (VPN估计半小时)
gclient sync --force
二、编译
(注:webrtc代码必须在放在linux里面进行编译,不能放在windows下,否则编译出错)
4. 编译
4.1设置编译环境
a. source ./build/android/envsetup.sh
b.export GYP_DEFINES="$GYP_DEFINES OS=android"
4.2 下载编译所依赖的包或工具,(这里又会下载一大堆东西 如 Ant.)
./build/install-build-deps.sh (src目录下)
4.3 下载编译所需的build文件等信息
gclient runhooks --force(或者 webrtc/build/gyp_webrtc 这个快些)
4.4编译 (src目录下)
编译Debug版: ninja -C out/Debug
编译Release版: ninja -C out/Release
将生成的src\webrtc_android\src\webrtc\examples\android\media_demo目录下的lib文件夹放入eclipse安卓工程中便可。
基于以上步骤,如果网络能正常访问google服务的话,一般都不会出现其他的问题,如果真碰到了问题,不要怕,一般根据错误信息就可以知道相应的原因。不知道的google一下
编译成功之后 在 out/Debug 或者 out/Release目录下看到相应的demo安装包 如Debug目录下,其中就有 AppRTCDemo-debug.apk 和 WebRTCDemo-debug.apk
AppRTCDemo程序的代码就再 src/talk/examples/android/ 目录下
WebRTCDemo程序的代码就再 src/webrtc/examples/android/ 目录下
注意,AppRTCDemo 与 WebRTCDemo的区别
WebRTCDemo只是局域网内的点对点,知道对方的ip和端口号就可以对打, 不需要服务器, AppTRCDemo是需要服务器的,可以局域网,或者广域网。