android webrtc源码下载编译流程

参考webrtc官网开发流程

1 搭建环境

1.1 安装Ubuntu-16.0.4
1.2 解压android-ndk-r19c-linux-x86_64、jdk-8u111-linux-x64和depot_tools到指定目录
1.3 配置环境变量:$ sudo vim /etc/profile,文件末尾添加如下:
   export JAVA_HOME=/home/XXX/develop-tools/java-tools/jdk1.8.0_111
   export JRE_HOME=$JAVA_HOME/jre
   export JAVA_PATH=$JAVA_HOME/bin:$JRE_HOME/bin
   export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
   export DEPOT_ROOT=/home/XXX/develop-tools/depot-tools
   export NDK_ROOT=/home/XXX/develop-tools/android-ndk-r19c

   export PATH=$JAVA_PATH:$DEPOT_ROOT:$NDK_ROOT:$PATH
wq退出保存
$ sudo source /etc/profile,使配置生效

2 下载编译android webrtc源码

2.1 创建webrtc_android路径,并下载代码(推荐使用Lantern,已经下载,则忽略)

	$ mkdir webrtc_android
	$ cd webrtc_android
	$ fetch --nohooks webrtc_android
	$ gclient sync
	$ gclient runhooks
	
	注:步骤d中下载过程中如果报如下错误
	**error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received**
	做如下设置:
		$ sudo apt purge git
		$ sudo apt install git
		$ git config http.sslVerify false
		$ git config --global http.postBuffer 1048576000

2.2 编译android webrtc源码

	a. 安装所有依赖
		$ ./src/build/install-build-deps.sh
	b.配置编译环境
		$ cd src/
		$ . build/android/envsetup.sh
	c. 使用gn构建生成项目
		$ gn gen out/Release --args='target_os="android" target_cpu="arm" is_debug=false rtc_use_h264=true rtc_include_tests=false '
		注:
           1. 没有is_debug=false这个参数时,会生成libwebrtc.jar包
           2. rtc_use_h264=true使其支持H264编码
           3. rtc_include_tests=false不编译测试程序,缩短编译时间
           4. 如果编译时想自定义android sdk和ndk路径,指定android_sdk_rootandroid_ndk_root两参数的值即可
           6. 编译Linux版本:
           	  $ gn gen out/linux --args='target_os="linux" target_cpu="x64" is_component_build=false is_debug=false               ffmpeg_branding="Chrome" rtc_use_h264=true'
	d. 编译
		正常构建项目(out / Release应该是使用GN生成构建文件时使用的目录)
        $ ninja -C out/Release AppRTCMobile(可选)
    e. 生成项目文件
    	$ build/android/gradle/generate_gradle.py --output-directory $PWD/out/Release --target "//examples:AppRTCMobile" --use-gradle-process-resources --split-projects –canary
    	(会在用户主目录下生成Android/sdk路径)
    f. 清除编译
    	$ ninja -C out/Release/ -t clean
    g. 打包aar文件
    	$ cd webrtc_android/src
    	$ tools_webrtc/android/build_aar.py --build-dir out --arch "armeabi-v7a"

你可能感兴趣的:(webrtc)