导航菜单

网址转 APK - 完整源码 + 部署教程

2026-09-23 14:26 135 阅读 源码仓库

一、服务器准备

1.1 安装 Docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker
systemctl enable docker
docker -v

1.2 配置镜像加速器

mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me",
    "https://docker.1panel.live",
    "https://hub.rat.dev"
  ],
  "max-concurrent-downloads": 3
}
EOF

systemctl daemon-reload
systemctl restart docker

1.3 拉取 Android 编译镜像(约 13.9GB)

nohup docker pull mingc/android-build-box > /root/pull.log 2>&1 &
tail -f /root/pull.log

看到 Pull complete 即成功。


二、准备构建资源

2.1 创建目录

mkdir -p /www/wwwroot/apk-tools/wrapper
mkdir -p /www/wwwroot/apk-tools/builds
mkdir -p /www/wwwroot/apk-keys

2.2 下载 Gradle Wrapper

cd /www/wwwroot/apk-tools/wrapper

wget https://raw.githubusercontent.com/gradle/gradle/v8.4.0/gradlew
wget https://raw.githubusercontent.com/gradle/gradle/v8.4.0/gradle/wrapper/gradle-wrapper.jar -O gradle-wrapper.jar

chmod +x gradlew

若 wget 拉不下来,手动下载这两个文件后通过宝塔上传:

  • gradlew:https://raw.githubusercontent.com/gradle/gradle/v8.4.0/gradlew

  • gradle-wrapper.jar:https://raw.githubusercontent.com/gradle/gradle/v8.4.0/gradle/wrapper/gradle-wrapper.jar

2.3 生成签名证书

docker run --rm -v /www/wwwroot/apk-keys:/out mingc/android-build-box \
  keytool -genkeypair -v \
    -keystore /out/release.jks \
    -alias release \
    -keyalg RSA -keysize 2048 -validity 10000 \
    -storepass ChangeMe123 -keypass ChangeMe123 \
    -dname "CN=WebToApk, OU=Dev, O=MyOrg, L=City, S=State, C=CN"

ls -l /www/wwwroot/apk-keys/release.jks

ChangeMe123 是密码,可改。改完 PHP 里的 ks_pass 和 key_pass 要同步改。

2.4 权限

chmod 600 /www/wwwroot/apk-keys/release.jks
chmod -R 777 /www/wwwroot/apk-tools/builds
usermod -aG docker www
systemctl restart php-fpm-74

网址转 APK - 完整源码 + 部署教程

三、宝塔配置

3.1 PHP 7.4 启用禁用函数

宝塔 → 软件商店 → PHP 7.4 → 设置 → 禁用函数,删掉:

  • exec

  • shell_exec

  • putenv

  • proc_open

保存后重载配置。

3.2 PHP 7.4 超时

宝塔 → PHP 7.4 → 性能调整:

  • max_execution_time = 900

  • request_terminate_timeout = 900

或命令行:

sed -i 's/^max_execution_time.*/max_execution_time = 900/' /www/server/php/74/etc/php.ini
sed -i 's/^max_input_time.*/max_input_time = 900/' /www/server/php/74/etc/php.ini
sed -i 's/^request_terminate_timeout.*/request_terminate_timeout = 900/' /www/server/php/74/etc/php-fpm.conf
systemctl restart php-fpm-74

3.3 Nginx 超时

宝塔 → 网站 → 你的站点 → 设置 → 配置文件,在 location ~ [^/]\.php(/|$) 里加:

fastcgi_read_timeout 900s;
fastcgi_send_timeout 900s;
fastcgi_connect_timeout 900s;

保存 → 重载 Nginx。

3.4 下载目录权限

mkdir -p /www/wwwroot/www.zyfbw.com/tool/web2app/downloads
chmod -R 777 /www/wwwroot/www.zyfbw.com/tool/web2app/downloads

四、完整源码

路径:/www/wwwroot/域名目录/web2app/index.php

👑
本部分为会员专属内容
开通会员后即可查看
开通会员查看

 

五、启用 Gradle 缓存(强烈建议)

为了让第二次之后编译只需 30~60 秒:

mkdir -p /www/wwwroot/apk-tools/gradle-cache
chmod -R 777 /www/wwwroot/apk-tools/gradle-cache

源码里已经包含 -v /www/wwwroot/apk-tools/gradle-cache:/root/.gradle 挂载,只要目录建好就生效。


六、测试

  1. 浏览器打开 https://www.zyfbw.com/tool/web2app/

  2. 输入 https://www.baidu.com

  3. 上传一张 真 PNG 图标(512×512 最佳,不要用 .ico)

  4. 点「生成 APK」

首次 3~8 分钟,之后 30 秒~1 分钟。

成功后页面显示:

  • ✅ 打包成功

  • 📥 下载 APK 按钮

  • 📋 复制下载链接按钮

  • 图标状态(用了你上传的还是默认的)


七、验证签名

cd /www/wwwroot/www.zyfbw.com/tool/web2app/downloads/

docker run --rm -v /www/wwwroot/www.zyfbw.com/tool/web2app/downloads:/apks \
  mingc/android-build-box \
  bash -c "/opt/android-sdk/build-tools/34.0.0/apksigner verify --verbose /apks/\$(ls *.apk | head -1)"

预期输出:

Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true

两个 true 就是可以安装的。


八、文件清单

路径 说明
/www/wwwroot/apk-tools/wrapper/gradlew Gradle Wrapper 脚本
/www/wwwroot/apk-tools/wrapper/gradle-wrapper.jar Gradle Wrapper JAR
/www/wwwroot/apk-tools/builds/ 临时构建目录(自动清理)
/www/wwwroot/apk-tools/gradle-cache/ Gradle 缓存(第二次之后加速)
/www/wwwroot/apk-keys/release.jks 签名证书
/www/wwwroot/www.zyfbw.com/tool/web2app/index.php 主页面
/www/wwwroot/www.zyfbw.com/tool/web2app/downloads/ APK 输出

九、日常维护

清理旧 APK(保留 7 天)

宝塔 → 计划任务 → Shell 脚本,每天执行:

find /www/wwwroot/www.zyfbw.com/tool/web2app/downloads -name "*.apk" -mtime +7 -delete

清理 Docker 悬空镜像

docker image prune -f

 

← 返回列表
🔖 关键词: 源码仓库 网址转 APK 部署教程

相关文章

💬 评论区 (0条评论)

⚡ 快捷回复(点一下直接发送):
😊
⚡点短语=快速评论免填写;自己发表留邮箱,QQ邮箱自动显示QQ头像