- SignalDesk2小时前
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签 :是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社区和佬友监督: 是 最开始是为了抢课(实在是不想上线下的,网课还是太舒服了 ),就写了个抢课脚本,但是每次抢课都得端着个电脑去抢,所以就萌生了一个写一个app的想法,这个项目从第一次commit陆陆续续写了10个月了,中间停了也很长时间,但是还是觉得不舍得放弃,一点一点打磨,最后做出来我还算满意的一个版本。 这里特别感谢一下cursor ,无限 fable 的bug是激起我继续的动力 ,帮我完成了API32上的折射开发,还有感谢千刀佬的公益,帮我完成了插件系统的开发 。 下面就来简略介绍以下这个app github.com GitHub - znjhahaha/zhengfang-apk: 教务助手app,适配8种教务系统,未来还会支持更多 教务助手app,适配8种教务系统,未来还会支持更多 如果好用的话希望帮忙点个🌟,也欢迎来提pr和建议 UI 课表:日视图、周视图、课程详情 (点击了解更多详细信息) 选课:可选课程、教学班、已选课程 (点击了解更多详细信息) 抢课工作台 (点击了解更多详细信息) 成绩与考试:学期成绩、总体统计、考试安排 (点击了解更多详细信息) 界面图和动图来自 1.0.116 源码构建的预览包,MuMu Android 12 / API 32,使用演示数据。 液态玻璃效果 最开始想继续写的原因就是想把ios那个液体玻璃效果移植到app上,看起来真的很酷 ,玻璃效果学习的是 kyant 的 AndroidLiquidGlass 。原库的折射依赖 Android 13 才支持的 RuntimeShader,Android 12 上只有模糊效果。 为了在 Android 12 上保留折射,我给 API 31/32 补了 OpenGL ES 2.0 渲染管线,把库里的 AGSL 折射、色散公式移到了 GLSL。取控件背后的画面作为纹理,计算折射后再交回 Compose 绘制。 API 32 底栏切换(动图) (点击了解更多详细信息) 设置与背景 (点击了解更多详细信息) 玻璃渲染流程图 (点击了解更多详细信息) Android 13 及以上用库原本的实现,11 及以下用静态材质。所以API32上的视觉效果没有13以上的好,主要是折射有点延迟,而且性能开销也不小。所以提供了开关按钮。 校园插件 学校之间的登录方式和教务接口不一样,特别是抢课的部分。我把这部分拆成了插件,便于单独更新适配。还有我也不用每个学校一个个微调,之前几个学校一个版本给我折磨坏了 。插件系统也带来了丰富的功能比如可以按学校适配SSO登录,还可以开发类似的二课插件,比如 剧透 插件中心与原生插件示例 (点击了解更多详细信息) 脚本放在独立进程里,用 QuickJS 执行,通过 AIDL 调用宿主。页面可以由插件描述,App 用 Compose 渲染,也就是插件也可以自定义界面布局,创建新的页面。至于插件安全部分,网络、存储和系统操作都要经过宿主的权限检查。我也会检查源码。 校园插件架构图 (点击了解更多详细信息) 插件开发 开发套件需要 Node.js 20+,下载入口在仓库 README 。套件里附了示例插件和 AGENTS.md 。在套件目录运行: npm ci --ignore-scripts npm run plugin -- create my-tool --template native-tool npm run plugin -- check my-tool npm run plugin -- test my-tool npm run plugin -- pack my-tool 打包后,在 App 的开发者模式中导入插件包。本地调试通过后可以提交到插件站,为了安全,上架前有自动检查和人工审核。 从写插件到上架 (点击了解更多详细信息) 下载 App 按 GPLv3 开源,支持 Android 7.0 及以上。 App 源码 v1.0.116 APK 遇到问题可以回帖或提 Issue ,带上学校、App 版本和报错信息。 1 个帖子 - 1 位参与者 阅读完整话题
- 情报分类:开源项目与落地
- 分类依据:内容涉及项目实践、创业、副业或变现
- 信息来源:服务器 / LINUX DO - 最新话题
- 发布时间:2026/10/11 17:39:49
- 暂无回复