# WebAPK：Chrome 在 Android 上安装 PWA 的方式

> WebAPK 是什么、Chrome 如何铸造和更新它、与网页快捷方式相比它开放了哪些能力，以及它的局限性。

**一句话：** 在 Android 上用 Chrome 安装 PWA 时，Chrome 会生成一个名为 WebAPK 的轻薄
原生 APK——而非普通主屏幕快捷方式——为应用赋予独立的 Android 包身份、启动画面以及
深层链接注册，无需通过 Play 商店分发。

## WebAPK 是什么

WebAPK（Web 应用包）是由 Google 的 WebAPK 铸造服务器在安装时生成的轻量级 Android APK。
Chrome 将 PWA 的清单详情提交给服务器，收到签名后的 APK，Android 像安装其他应用一样
安装它。APK 本身不含任何网页内容；它是一个在定制化 Chrome 运行时中以 PWA 的
`start_url` 启动 Chrome 的 shell。

WebAPK 安装后的结果：

- 应用出现在 Android 应用抽屉中，可以像普通应用一样从"设置 → 应用"中卸载。
- Android 为该应用分配唯一的**包名**（通常来源于清单的 `start_url`），赋予它独立的进程身份。
- 在清单 `scope` 内注册的**深层链接**由 WebAPK 捕获，而非在浏览器标签页中打开。
- 系统根据清单的 `name`、`background_color` 和 512 × 512 图标自动生成**启动画面**。
- 应用在最近任务（多任务）中以独立卡片显示。

## WebAPK 铸造流程

1. 用户接受安装提示（`beforeinstallprompt` → `prompt()` 被接受，或点击浏览器的环境安装 UI）。
2. Chrome 将清单 URL、清单内容和图标哈希值发送到 Google WebAPK 铸造服务器（`https://webapk.googleapis.com`）。
3. 服务器生成并签名 APK。
4. Chrome 通过 `PackageInstaller` 安装 APK；Android 将其视为真实应用。

铸造服务器由 Google 运营，是 Chrome WebAPK 路径的必要依赖。
三星 Internet 在三星设备上有自己等效的铸造机制。

## 清单自动更新

Chrome 大约每 **24 小时**检查一次 PWA 的清单。如果清单变更——名称、图标、颜色、
scope 或 start_url——Chrome 会触发重新铸造，Android 静默更新 WebAPK。
更新是无感的；除非包名本身必须变更（极罕见的边界情况），否则用户不会看到提示。

含义：**清单变更会在一天内同步到已安装的应用**，无需推送新的原生版本。

## WebAPK 不提供的能力

- **超出 Web 平台能力范围的原生 Android API。** WebAPK 是一个 shell；业务逻辑仍以 Web 代码在 Chrome 中运行。
- **Play 商店上架或分发**——这需要 Trusted Web Activity (TWA)，详见 [TWA 参考文档](/zh/reference/installation/twa)。
- **自定义 Chrome 标志或扩展。** WebAPK 启动用户已安装的 Chrome，因此行为取决于用户的 Chrome 版本。
- **离线铸造。** 如果安装时铸造服务器不可达，Chrome 会回退到普通快捷方式而非 WebAPK。

## WebAPK vs 普通快捷方式对比

| | WebAPK | 普通快捷方式 |
|---|---|---|
| Android 包身份 | 有（唯一包名） | 无 |
| 出现在应用抽屉 | 是 | 是（仅主屏幕） |
| 系统设置 → 应用 | 是 | 否 |
| 启动画面 | 自动生成 | 无 |
| 深层链接捕获（Intent） | 是（scope 内的 URL） | 否 |
| 从设置卸载 | 是 | 仅可长按主屏幕图标 |
| 需要铸造服务器 | 是 | 否 |

## 三星 Internet

三星 Internet 使用三星自己的铸造基础设施为通过其浏览器安装的 PWA 生成 WebAPK。
体验与 Chrome 的 WebAPK 相当，但 APK 由三星签名。铸造服务器与 Google 的不可互换。

## Android 版 Firefox

Android 版 Firefox（128+）将 PWA 安装为普通快捷方式；不生成 WebAPK。
应用体验更为有限：无 Android 包身份、无深层链接捕获、在"设置 → 应用"中没有独立条目。

## iOS 对比

iOS 完全不使用 APK 模型。Safari 创建的是**网页剪辑**——一个在独立 Safari 窗口中打开的快捷方式。
WebAPK 在 iOS 上没有等效物；详见 [iOS 添加到主屏幕](/zh/reference/installation/ios-add-to-home-screen)。

## 通过 Play 商店分发

若需 Play 商店分发 PWA，需要 Trusted Web Activity (TWA) 而非 WebAPK。
详见 [Trusted Web Activity (TWA)](/zh/reference/installation/twa)。

## 兼容性

平台级支持数据，请查看 [/compatibility/](/zh/compatibility/)。