Skip to content

Repository files navigation

EZsearch Logo

EZsearch

A lightweight, feature-rich Android browser built with Kotlin & Jetpack Compose

Kotlin Compose Material3 API License


English | 中文

Overview

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.


✨ Features

🧭 Browsing Core

  • 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

🔒 Privacy & Security

  • 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)

🎨 Customization

  • 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)

📦 Data Management

  • 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

🛠️ Advanced Tools

  • 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

📸 Screenshots

Home Page Tab Switcher Settings
Coming soon Coming soon Coming soon

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog (2023.1.1) or later
  • JDK 17
  • Android SDK API 34

Build from Source

# 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 assembleRelease

Direct Download

Download latest APK (coming soon)


🏗️ Tech Stack

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)

📁 Project Structure

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)

🤝 Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


🙏 Acknowledgements



EZsearch 简体中文

一款基于 Kotlin & Jetpack Compose 构建的轻量级、功能丰富的 Android 浏览器

概述

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。

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

📄 开源协议

本项目基于 MIT 协议开源,详情请参阅 LICENSE 文件。


🙏 致谢

About

A lightweight, feature-rich Android browser built with Kotlin & Jetpack Compose. Multi-tab, ad blocking , multi-engine search, bilingual. 一款基于 Kotlin & Jetpack Compose 构建的轻量级 Android 浏览器,支持多标签、广告拦截、多引擎搜索、中英双语。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages