因为在项目开发过程中,遇到了一个场景:不需要导航,标签等浏览器功能,只需要一个全屏的浏览器,用于展示目标网页内容。但是目标硬件中的webview版本较低,是83的,且无法升级,所以就开发一个内置Chromium内核的浏览器,跳过调用系统webview的步骤,直接使用Chromium内核。
基于 独立 Chromium 133 内核 的全屏浏览器应用(通过 WebViewUpgrade 内置 Google WebView APK)。
功能
- 内置 Chromium 133.0.6943.138 内核,不依赖系统 WebView 版本
- 全屏单页浏览,无地址栏/导航栏
- 右下角 ⋮ 按钮可设置网址/IP、端口、路径
- 设置按钮默认隐藏,键鼠操作时显示,10 秒无操作后自动隐藏
- 设置页显示当前内核版本
- 支持开机自启动(可在设置中开关,默认开启)
- 最低支持 Android 11(API 30)
项目结构
browser/
├── app/ # Android 应用模块
│ └── src/main/
│ ├── assets/webview/ # 内置 Chromium WebView APK(构建前准备)
│ ├── java/com/chromium/browser/
│ │ ├── BrowserApplication.kt # Application 入口
│ │ ├── ui/ # Activity、对话框
│ │ ├── kernel/ # Chromium 内核管理
│ │ ├── prefs/ # 用户设置持久化
│ │ └── receiver/ # 开机广播接收
│ └── res/ # 布局、图标、字符串等资源
├── scripts/ # 构建与部署脚本
│ ├── download-webview.ps1 # 下载/复制 WebView APK 到 assets
│ ├── setup-sdk.ps1 # 安装 Android SDK 组件
│ ├── copy-apk.ps1 # 复制 APK 到 dist/
│ ├── install-apk.ps1 # 安装 dist/ 中的 APK
│ └── adb.bat # adb 快捷调用
├── deps/ # 本地大体积依赖(需自行下载,不提交 Git)
├── dist/ # 构建输出的 APK(不提交 Git)
├── build-apk.bat # 一键构建(根目录快捷入口)
├── install-apk.bat # 一键安装
├── adb.bat # adb 快捷入口
├── gradlew / gradlew.bat # Gradle Wrapper
└── settings.gradle.kts
已构建 APK
build-apk.bat
输出:dist/{应用名称}-v{版本号}-debug.apk(如 dist/xx系统-v1.0-debug.apk,体积约 250MB,含内置 Chromium 内核)
名称取自 strings.xml 的 app_name,版本号取自 build.gradle.kts 的 versionName。
安装(需在项目根目录下执行):
install-apk.bat
或:
adb.bat install -r dist\xx系统-v1.0-debug.apk
adb.bat devices
不要直接输入
adb,系统 PATH 中未配置。请使用项目内的adb.bat/install-apk.bat。
构建前准备
依赖下载
大体积文件推荐放入 deps/(也支持项目根目录)。setup-sdk.ps1 与 download-webview.ps1 会优先读取本地文件,缺失时部分依赖可自动下载。
| 文件 | 用途 | 下载链接 | 获取方式 |
|---|---|---|---|
commandlinetools-win-11076708_latest.zip | Android SDK 命令行工具 | Google · 腾讯云镜像 | 手动下载后放入 deps/ |
platform-34-ext7_r03.zip | Android 34 平台 SDK | Google · 腾讯云镜像 | 手动下载后放入 deps/ |
platform-tools_r37.0.0-win.zip | adb 等调试工具 | 腾讯云镜像 | setup-sdk.ps1 自动下载 |
build-tools_r34-windows.zip | 构建工具 34.0.0 | 腾讯云镜像 | setup-sdk.ps1 自动下载 |
133.0.6943.138_min26_arm32+64.apk | Chromium WebView 内核 | GitHub Releases | 手动放入 deps/,或运行 download-webview.ps1 自动下载 |
WebView APK 复制到 assets 后的路径为 app/src/main/assets/webview/google_webview_133.apk。
1. Android SDK
powershell -ExecutionPolicy Bypass -File scripts\setup-sdk.ps1
需提前将 commandlinetools-win-11076708_latest.zip 与 platform-34-ext7_r03.zip 放入 deps/(见上表)。platform-tools 与 build-tools 由脚本自动从腾讯云镜像下载,无需手动准备。
2. Chromium WebView APK
powershell -ExecutionPolicy Bypass -File scripts\download-webview.ps1
或直接运行 build-apk.bat(会自动调用上述脚本)。脚本会按以下顺序获取内核包:
- 已存在于
app/src/main/assets/webview/google_webview_133.apk deps/或项目根目录中的133.0.6943.138_min26_arm32+64.apk- 从 GitHub Releases 自动下载(见上表链接)
使用说明
- 首次启动会显示内核加载进度(约数秒)
- 加载完成后进入全屏浏览页
- 默认地址
http://192.168.0.37:3000/(可在设置中修改) - 设置对话框底部显示当前 Chromium 内核版本
- 开机自启动:右下角 ⋮ → 设置 → 打开「开机自启动」,设备重启后会自动打开本应用并进入浏览页
部分品牌手机(小米、华为、OPPO 等)还需在系统设置里允许本应用的「自启动」权限,否则开机广播可能被系统拦截。
自定义应用名称与图标
修改后需重新运行 build-apk.bat 打包。
应用名称
编辑 app/src/main/res/values/strings.xml:
<string name="app_name">Chromium Browser</string>
将 Chromium Browser 改为你想要的名称。该名称会显示在桌面图标下方和任务切换器中(由 AndroidManifest.xml 的 android:label="@string/app_name" 引用)。
应用图标
当前图标资源位于 app/src/main/res/mipmap-anydpi-v26/ 与 drawable/ic_launcher_foreground.xml。
方式一:微调现有图标
- 修改
colors.xml中的ic_launcher_background更换背景色 - 修改
ic_launcher_foreground.xml更换前景图案
方式二:替换为自定义 PNG(推荐)
- 准备各密度 PNG(
mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi) - 放入
app/src/main/res/mipmap-*/,命名为ic_launcher.png与ic_launcher_round.png - 或在 Android Studio 中:右键
res→ New → Image Asset,按向导生成
版本号与包名(可选)
编辑 app/build.gradle.kts 的 defaultConfig:
applicationId = "com.chromium.browser" // 包名,修改后视为新应用
versionCode = 1 // 内部版本号,每次发版建议 +1
versionName = "1.0" // 用户可见版本号
输出 APK 文件名
build-apk.bat 打包完成后会自动复制到 dist/ 并重命名为:
dist/{app_name}-v{versionName}-debug.apk
app_name:strings.xml中的应用名称versionName:build.gradle.kts中的版本号
修改应用名或版本号后重新打包,输出文件名会随之更新。
技术说明
- 使用 WebViewUpgrade 在应用内加载独立 WebView APK
- 内核包来源:WebViewPackage Google WebView 133
- 仅影响本应用,不修改系统全局 WebView
