真 · 毛玻璃
地址栏、菜单、标签浮层全都是真模糊。API 31+ 用 RenderEffect 交给 GPU,低版本降采样近似。
同一套自研毛玻璃 UI,两个平台:Android 版纯 Java + 系统 WebView(2.5MB); Windows 版用 Electron 45,Chromium 最新内核,网页兼容性和 Chrome 一致,免安装解压即用。 地址栏和工具栏都是真正的背景高斯模糊,新标签页是自研页面,不再是别人的搜索首页。
输入网址开始,或从下面的记录继续。
界面结构示意 · 实际效果以真机为准
不写“即将上线”,下面每一条都能在装好的 APK 里点到。
地址栏、菜单、标签浮层全都是真模糊。API 31+ 用 RenderEffect 交给 GPU,低版本降采样近似。
底部升起的浮层,一屏正好三张预览卡,负边距叠出层次。上限 10 个,后台标签 onPause() 冻结。
深灰底 + 橙色描边,进入即清 Cookie 与 WebStorage,不写缓存、不存表单。用完即清,不留痕。
HTTPS 绿色锁、HTTP 橙色地球、证书错误直接阻断并变橙。进度条加载完转绿,不做假动画。
接管 onShowCustomView,进全屏时玻璃层收起、系统栏隐藏,返回键可退出,不会卡白屏。
交给 DownloadManager,带上 Cookie 头,登录态文件也能下。通知栏看进度,不自己写线程。
随 APK 打包的本地页面:玻璃搜索条 + 按域名的最近访问(只存本机,最多 8 条)。无痕模式下自动换深色并不记录。
一套颜色一个含义,全站不混用。这也是整个 UI 唯一的“设计规范”。
毛玻璃白纱 72%、卡片背景、图标默认色
地址栏描边、主按钮、选中态、进度
HTTPS 锁、加载完成指示
无痕边框、证书错误、风险提示
root
├── webHost WebView 独占
├── glassLayer 毛玻璃 + 地址栏 + 底栏
└── fullscreenHost 全屏视频
WebView 是独立 Surface,和玻璃放在同一个 ViewGroup 里就会穿透、闪烁 —— 这条是硬约束。
TransitionManager + Fade + Slide(BOTTOM),220ms。没有 Lottie、没有动画库,APK 因此只有 2.5MB。
WebView + WebChromeClient 就是全部引擎,不碰 Chromium 定制,也不引 GeckoView。
两个平台同一套视觉语言,但不是同一个内核 —— 下面写清楚了。
点下面的按钮,文件约 2.5MB。浏览器可能会提示“可能有害”,这是未上架应用的常规提示。
系统会跳转到设置,给“文件管理 / 浏览器”打开「安装未知应用」权限,然后返回继续。
图标是蓝色圆角方块。首次启动直接进首页,不需要登录、不需要注册。
2.5 MB · Android 7.0+ · com.hamster.glassbrowser
SHA-256 6c49bc280a2e3c9b183a089c737e2a0b2e8b6f715bbea5da88f0a0d5cad2ca7d
153MB,里面是完整运行时(Chromium + 应用本体),所以比 APK 大得多。
别在压缩包里直接双击 exe —— Windows 会在临时目录里跑,缓存和下载路径都会乱。
SmartScreen 会提示「未知发布者」,点「更多信息 → 仍要运行」。exe 没买代码签名证书,属正常现象。
153 MB · Windows 10 / 11 · 64 位 · 免安装
SHA-256 dab180b51a44098e4b110a382518e2e0db4b7ac86f13aa2de1b73e7f81a6a6b5
Android 版规格如下;Windows 版:Electron 45 · Chromium 最新内核 · JavaScript/HTML/CSS,UI 同一套视觉。
| 语言 | Java 17(无 Kotlin) |
|---|---|
| 引擎 | 系统 WebView + WebChromeClient |
| minSdk / targetSdk | 24 / 34 |
| 构建 | AGP 8.1.4 · Gradle 8.2 · compileSdk 34 |
| 依赖 | 仅 androidx.appcompat + androidx.core |
| 权限 | INTERNET、ACCESS_NETWORK_STATE、WRITE_EXTERNAL_STORAGE(≤28)、POST_NOTIFICATIONS |
| 签名 | v2 APK Signature Scheme,zipalign 4 字节对齐 |
| 包名 | com.hamster.glassbrowser |
这些不是 bug 列表,是设计上就有边界的地方。
毛玻璃靠 WebView.draw() 抓画面,抓不到 SurfaceView 视频层。要彻底解决得换 PixelCopy。
CookieManager 是进程级全局的,做不到按标签隔离,只能在进出无痕时整体清一次。
测试用 keystore,正式分发请换成你自己的。同包名换签名,用户必须卸载重装。