EZsearch is a privacy-first, fully-featured Android web browser developed entirely with Kotlin and Jetpack Compose. It delivers a smooth, modern browsing experience with an extensive set of features including multi-tab management, bookmarking, history, ad blocking, theme customization, and multi-language support.
- Dual-purpose Address Bar — Enter URLs or search keywords; auto-detects input type
- Multi-Engine Search — Switch between 9 search engines (Baidu, Google, Bing, DuckDuckGo, Yahoo, Yandex, Ecosia, Startpage, Qwant)
- Search Suggestions — Real-time suggestions from the active engine with 300ms debounce
- Multi-Tab Management — Open, switch, and close tabs; auto-recycles inactive WebView memory when exceeding 10 tabs
- Desktop Mode — Toggle between mobile and desktop user-agent
- Ad Blocker — Built-in domain-based ad blocking (30+ ad/tracker domains)
- Private Browsing — Incognito mode with no history or cookie persistence
- Privacy DNS — Configure custom DNS-over-HTTPS or DNS-over-TLS
- Password Manager — Securely save and auto-fill website credentials (encrypted storage)
- 13 Themes — Light, Dark, System, Material You (Dynamic), plus 9 preset color schemes (Ocean, Forest, Sunset, etc.)
- Custom App Icon — 4 icon styles to choose from
- Multi-Language — English & Chinese (runtime switching)
- Bookmarks — Add, delete, and manage bookmarks persisted via Room database
- History — Auto-track browsing history (day-level deduplication), supports clearing
- Downloads — Download file tracking, status monitoring, rename & delete
- Quick Links — 8 preset quick-access sites on the new tab page, fully customizable
- QR Code Sharing — Generate and share QR codes for current page
- Web Screenshot — Capture full-page screenshots
- Resource Sniffing — Detect downloadable resources on pages
- Automation — Record and replay browsing workflows
- Splash Screen — Customizable splash animation
| Home Page | Tab Switcher | Settings |
|---|---|---|
| Coming soon | Coming soon | Coming soon |
- Android Studio Hedgehog (2023.1.1) or later
- JDK 17
- Android SDK API 34
# Clone the repository
git clone https://github.com/lmx0721/EZsearch.git
# Open in Android Studio
# Open the cloned directory and let Gradle sync
# Build debug APK
./gradlew assembleDebug
# Build release APK
./gradlew assembleReleaseDownload latest APK (coming soon)
| Layer | Technology |
|---|---|
| Language | Kotlin 1.9.20 |
| UI | Jetpack Compose + Material 3 (Material You) |
| Architecture | MVVM with Repository Pattern |
| DI | Hilt (Dagger) |
| Database | Room (SQLite) with KSP |
| Web Engine | Android WebView (Chromium) |
| Networking | OkHttp 4.12.0 |
| QR Code | ZXing 3.5.3 |
| Navigation | Navigation Compose |
| ProGuard | Enabled (both debug & release) |
app/
├── src/main/java/com/ezsearch/browser/
│ ├── EZsearchApp.kt # Application entry (@HiltAndroidApp)
│ ├── EZsearchTheme.kt # Compose theme definitions
│ ├── MainActivity.kt # Main activity (@AndroidEntryPoint)
│ ├── di/AppModule.kt # Hilt DI module
│ ├── engine/ # WebView management & ad blocking
│ ├── data/ # Data layer (Room entities, DAOs, repositories)
│ └── ui/ # UI layer (browser, tabs, bookmarks, settings, etc.)
├── build.gradle.kts # Module-level build config
└── src/main/res/ # Resources (strings in zh/en)
Contributions are welcome! Feel free to open issues or submit pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
EZsearch 是一款隐私优先、功能完备的 Android 网页浏览器,完全使用 Kotlin 和 Jetpack Compose 开发。它提供了流畅、现代的浏览体验,并拥有多标签管理、书签、历史记录、广告拦截、主题定制和多语言支持等丰富的功能。
- 二合一地址栏 — 输入网址或搜索关键词,自动识别输入类型
- 多引擎搜索 — 在 9 种搜索引擎间切换(百度、Google、Bing、DuckDuckGo、Yahoo、Yandex、Ecosia、Startpage、Qwant)
- 搜索建议 — 实时获取当前引擎的搜索建议(300ms 防抖)
- 多标签管理 — 新建、切换、关闭标签页;超过 10 个标签时自动释放非活跃 WebView 内存
- 桌面模式 — 一键切换移动端/桌面端 User-Agent
- 广告拦截 — 内置基于域名的广告拦截(30+ 广告/跟踪域名)
- 无痕浏览 — 隐私模式,不记录历史、不持久化 Cookie
- 隐私 DNS — 支持自定义 DNS-over-HTTPS / DNS-over-TLS
- 密码管理器 — 安全保存并自动填充网站凭据(加密存储)
- 13 种主题 — 浅色、深色、跟随系统、Material You 动态取色,以及 9 种预设配色(海洋、森林、日落等)
- 自定义图标 — 4 种应用图标样式可选
- 多语言支持 — 中文 & 英文(运行时切换)
- 书签管理 — 添加、删除、管理书签,通过 Room 数据库持久化
- 浏览历史 — 自动记录浏览历史(同一天同 URL 去重),支持一键清除
- 下载管理 — 下载文件跟踪、状态监控、重命名与删除
- 快捷链接 — 新标签页 8 个预设快捷网站,完全可自定义
- 二维码分享 — 生成当前页面的二维码并分享/保存
- 网页截图 — 捕获全屏截图
- 资源嗅探 — 检测页面中的可下载资源
- 自动化 — 录制并回放浏览操作流程
- 开屏动画 — 自定义开屏动画
| 首页 | 标签切换 | 设置 |
|---|---|---|
| 即将更新 | 即将更新 | 即将更新 |
- Android Studio Hedgehog (2023.1.1) 或更高版本
- JDK 17
- Android SDK API 34
# 克隆仓库
git clone https://github.com/lmx0721/EZsearch.git
# 用 Android Studio 打开
# 打开克隆后的目录,等待 Gradle 同步完成
# 构建调试 APK
./gradlew assembleDebug
# 构建发布 APK
./gradlew assembleRelease下载最新 APK (即将推出)
| 分层 | 技术选型 |
|---|---|
| 语言 | Kotlin 1.9.20 |
| UI 框架 | Jetpack Compose + Material 3 (Material You) |
| 架构模式 | MVVM + Repository 模式 |
| 依赖注入 | Hilt (Dagger) |
| 数据库 | Room (SQLite) + KSP |
| 渲染引擎 | Android WebView (Chromium) |
| 网络库 | OkHttp 4.12.0 |
| 二维码 | ZXing 3.5.3 |
| 导航 | Navigation Compose |
| 代码混淆 | ProGuard(调试和发布均已开启) |
app/
├── src/main/java/com/ezsearch/browser/
│ ├── EZsearchApp.kt # 应用入口 (@HiltAndroidApp)
│ ├── EZsearchTheme.kt # Compose 主题定义
│ ├── MainActivity.kt # 主 Activity (@AndroidEntryPoint)
│ ├── di/AppModule.kt # Hilt 依赖注入模块
│ ├── engine/ # WebView 管理与广告拦截
│ ├── data/ # 数据层(Room 实体、DAO、仓库)
│ └── ui/ # UI 层(浏览器、标签、书签、设置等)
├── build.gradle.kts # 模块级构建配置
└── src/main/res/ # 资源文件(中英双语)
欢迎贡献代码!欢迎提交 Issue 或 Pull Request。
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
本项目基于 MIT 协议开源,详情请参阅 LICENSE 文件。