1. win10 wsl adb
下载ndk15c
sudo vi /etc/profile
export PATH="$ANDROID_NDK:$PATH"
source /etc/profile
# 安装android-tools
sudo apt install adb
# 默认安装位置为 /usr/lib/android-sdk/platform-tools/
# 下载最新版
wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
实际看windows android studio platform-tools 版本 r29.0.5
实际下载地址
wget https://dl.google.com/android/repository/platform-tools_r29.0.5-linux.zip
# 解压缩
unzip ./platform-tools-latest-linux.zip
# 替换
sudo cp -r platform-tools /usr/lib/android-sdk/platform-tools
adb version
Android Debug Bridge version 1.0.41
Version 29.0.5-5949299
参考 《Win10+WSL开发踩坑记录》
2. nginx 编译
直接参考下面文章 按最后的文件列表下载文件放在一个目录
https://zhangtom.com/2017/07/11/交叉编译带RTMP模块的Nginx到Android/
2.1 运行 # 第一个句点不能省略,用于保留脚本之间的环境变量 . ./make_openssl.sh
2.2 修改make_nginx.sh
注掉make_nginx.sh 里 ./configure 及其以下命令行
运行 . ./make_nginx.sh
编辑auto/cc/name文件,将21行的“exit 1”注释掉(令测试程序不会报错)。
编译错误:
src/os/unix/ngx_files.c:885:21: error: unused variable 'fs' [-Werror=unused-variable]
struct statvfs fs;
解决src/os/unix/ngx_files.c加
#include
加入变量
CROSS_COMPILE_GCC=/home/sheng/ndk/android-ndk-r15c/toolchains/arm-
linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc
RTMP_MODULE_DIR=/home/sheng/nginx-with-rtmp/nginx-rtmp-module
按下面一条条运行
./configure \
--crossbuild=android-arm \
--prefix=/sdcard/nginx \
--with-http_ssl_module \
--with-openssl=$OPENSSL_DIR \
--without-http_gzip_module \
--without-pcre \
--without-http_rewrite_module \
--without-http_proxy_module \
--without-http_userid_module \
--without-http_upstream_zone_module \
--without-stream_upstream_zone_module \
--add-module=$RTMP_MODULE_DIR \
--with-cc=$CROSS_COMPILE_GCC \
--with-cc-opt="--sysroot=$ANDROID_SYSROOT -Wno-sign-compare -pie -fPIE" \
--with-ld-opt="--sysroot=$ANDROID_SYSROOT -pie -fPIE"
make -j8
sudo make install -j8
编译好修改下面
vi nginx/conf/nginx.conf
rtmp {
17 server {
18 listen 1935;
19 application myapp {
20 live on;
21 drop_idle_publisher 5s;
22 }
23 }
24 }
42 #gzip on;
43
44 server {
45 listen 8081;
46 server_name localhost;
85 #location ~ /\.ht {
86 # deny all;
87 #}
88
89 location /stat {
90 rtmp_stat all;
91 rtmp_stat_stylesheet stat.xsl;
92 }
93 location /stat.xsl {
94 root /sdcard/nginx-rtmp-module/;
95 }
96 location /control {
97 rtmp_control all;
98 }
99 location /rtmp-publisher {
100 root /sdcard/nginx-rtmp-module/test;
101 }
102 location / {
103 root /sdcard/nginx-rtmp-module/test/www;
104 }
105 }
52 location /netold {
53 root html;
54 index index.html index.htm;
55 }
改权限
sudo chmod 777 /sdcard/nginx/sbin/nginx
把编译好修改好文件拷到手机
adb push -r /sdcard/nginx /sdcard
adb push nginx-rtmp-module /sdcard/nginx-rtmp-module
手机里shell运行
adb shell
cp /sdcard/nginx/sbin/nginx /data/local/tmp/nginx/sbin
运行nginx
./data/local/tmp/nginx/sbin/nginx
访问网页成功
http://192.168.123.20:8081
http://192.168.123.20:8081/stat
关闭nginx
./nginx -s stop
参考《交叉编译带RTMP模块的Nginx到Android》
https://zhangtom.com/2017/07/11/交叉编译带RTMP模块的Nginx到Android/