f70913481e3299ae9f86a8c7cc3a62a88a3bb103
- App display name -> EasyView (Android label, PWA manifest, page titles, about/guide text, APK artifact name) - scripts/build-apk.mjs: auto-detect JDK/SDK/Gradle toolchain instead of hardcoded Windows paths; pick highest build-tools; platform 34 fallback; path.delimiter classpaths; npm run build without cmd.exe on POSIX - Add build-apk.sh one-shot Linux build wrapper (loads ven env + keystore) - Signing keystore renamed to easyview.jks (alias easyview), env vars EASYVIEW_KEYSTORE_PASS / EASYVIEW_KEY_PASS
EasyView / 万能看图
手机 / 平板上的本地 DWG、PDF、EPUB、FB2、XPS/OXPS、CBZ 和图片浏览器。
- DWG 渲染:
@flyfish-dev/cad-viewer(AGPL-3.0,GitHub:flyfish-dev/cad-viewer),WebGL 常驻渲染,支持块展开、图层、文字、填充、线型、样条、标注和常用 DWG 2006–2026 版本。 - 文档渲染:MuPDF.js。
- 前端:Vite + TypeScript;DWG 解析在 Web Worker 中执行,运行时 WASM 位于
public/wasm/。 - Android:Kotlin WebView 壳,离线内置全部前端资源,支持文件关联、返回键和 PNG 保存。
- 代理对象只有在文件中包含代理图形数据时才会显示;没有任何图形数据的字典代理不可见。
开发
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/ 下,脚本会自动探测:
| 工具 | 位置 |
|---|---|
| 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。构建前设置口令:
source ../ven/node-env.sh # Node 工具链(可选)
export EASYVIEW_KEYSTORE_PASS=your-keystore-password
export EASYVIEW_KEY_PASS=your-key-password # 省略则与上面相同
npm run apk
产物:EasyView-<version>.apk(仓库根目录),android/build/ 为中间产物。
android/keystore/、测试 DWG、APK、dist/、node_modules/ 均已加入 .gitignore。图纸不会上传,解析完全在本地进行。
许可
本项目以 AGPL-3.0-or-later 发布。第三方组件许可见应用内“关于 → 开源组件与许可”。
Languages
TypeScript
54.2%
CSS
18.4%
JavaScript
15.9%
Kotlin
6.1%
HTML
5.1%
Other
0.3%