com.google.androidbrowserhelper.trusted.LauncherActivity打包PWA缓存位置查询
基于TWA打包的PWA Service Worker缓存存储位置说明
你使用的com.google.androidbrowserhelper.trusted.LauncherActivity是Trusted Web Activity(TWA)的官方标准启动组件,这类打包方式的PWA运行宿主并非你编译出来的APK本身,而是设备上设置为默认的支持TWA协议的浏览器,这也是你清理应用自身缓存、非默认浏览器缓存都无法清除旧缓存的核心原因。
实际存储路径
- 所有Service Worker缓存、站点存储数据都完全归属于默认的TWA支持浏览器,存储路径和该浏览器自身的站点缓存路径一致,和你打包的APK私有存储目录没有关联
- 常见浏览器的存储路径(需root或对应浏览器的调试权限才可访问):
- 若默认浏览器为Chrome:
/data/data/com.android.chrome/app_chrome/Default/Service Worker/ - 若默认浏览器为Edge:
/data/data/com.microsoft.emmx/app_chrome/Default/Service Worker/ - 若默认是LineageOS预装的AOSP Browser:
/data/data/com.android.browser/app_webview/Default/Service Worker/
- 若默认浏览器为Chrome:
- TWA的运行上下文和浏览器普通浏览上下文是逻辑隔离的,但缓存数据底层存放在同一浏览器的存储分区中,仅通过域名和数字资产链接校验关系做区分,所以仅清理特定页面缓存、非默认浏览器缓存不会生效。
旧缓存残留问题说明
TWA打包的APK本质只是一个带签名校验的启动壳,本身不存储任何网页相关数据,卸载重装这个壳不会触及浏览器侧存储的Service Worker缓存,只要你之前成功打开过一次该TWA,对应的缓存就会一直保留在默认浏览器的存储目录中。
要彻底清除旧缓存,可执行以下任意操作:
- 清理当前默认的TWA支持浏览器的全部站点缓存和数据,注意必须是默认浏览器,清理其他非默认浏览器(例如默认是Chrome时清理Firefox)没有任何作用
- 到默认浏览器的站点管理设置中,找到你的PWA对应的域名,单独清除该域名的存储数据即可
- 切换默认浏览器到其他支持TWA的浏览器,TWA会自动在新的默认浏览器中运行,旧浏览器中的缓存不会再被读取,也不会再出现旧缓存内容
内容的提问来源于stack exchange,提问作者M.S.
相关产品推荐
相关产品推荐

