Files
PhoneViewer/README.md
T

46 lines
1.9 KiB
Markdown
Raw Normal View History

# EasyView / 万能看图
2026-10-26 17:44:44 +08:00
手机 / 平板上的本地 DWG、PDF、EPUB、FB2、XPS/OXPS、CBZ 和图片浏览器。
2026-10-26 18:07:00 +08:00
- DWG 渲染:`@flyfish-dev/cad-viewer`(AGPL-3.0,GitHub: `flyfish-dev/cad-viewer`),WebGL 常驻渲染,支持块展开、图层、文字、填充、线型、样条、标注和常用 DWG 2006–2026 版本。
2026-10-26 17:44:44 +08:00
- 文档渲染:MuPDF.js。
2026-10-26 18:07:00 +08:00
- 前端:Vite + TypeScript;DWG 解析在 Web Worker 中执行,运行时 WASM 位于 `public/wasm/`。
2026-10-26 17:44:44 +08:00
- Android:Kotlin WebView 壳,离线内置全部前端资源,支持文件关联、返回键和 PNG 保存。
2026-10-26 18:07:00 +08:00
- 代理对象只有在文件中包含代理图形数据时才会显示;没有任何图形数据的字典代理不可见。
2026-10-26 17:44:44 +08:00
## 开发
```bash
npm install
npm run dev
npm run typecheck
npm run build
```
## 构建 Android APK
需要 JDK 17+/21、Android SDK(platform 34、build-tools)以及带 Kotlin 编译器的 Gradle 发行版。
本工作区已把这些工具链放在 `../ven/` 下,脚本会自动探测:
2026-10-26 17:44:44 +08:00
| 工具 | 位置 |
| --- | --- |
| JDK | `ven/jdk21`(或 `JAVA_HOME`) |
| Android SDK | `ven/android-sdk`(或 `ANDROID_HOME`) |
| Gradle + Kotlin 编译器的 lib | `ven/gradle-dist/gradle-8.9`(或 `GRADLE_HOME`) |
签名信息不写入仓库,首次构建会自动生成 `android/keystore/easyview.jks`。构建前设置口令:
2026-10-26 17:44:44 +08:00
```bash
source ../ven/node-env.sh # Node 工具链(可选)
export EASYVIEW_KEYSTORE_PASS=your-keystore-password
export EASYVIEW_KEY_PASS=your-key-password # 省略则与上面相同
2026-10-26 17:44:44 +08:00
npm run apk
```
产物:`EasyView-<version>.apk`(仓库根目录),`android/build/` 为中间产物。
2026-10-26 17:44:44 +08:00
`android/keystore/`、测试 DWG、APK、`dist/`、`node_modules/` 均已加入 `.gitignore`。图纸不会上传,解析完全在本地进行。
## 许可
本项目以 AGPL-3.0-or-later 发布。第三方组件许可见应用内“关于 → 开源组件与许可”。