本项目旨在解决在线教育学员在知学云平台完成继续教育课程时耗费大量手动操作时间的问题。许多企事业单位要求员工完成定期学时任务,但课程数量多、视频需全程观看、文档需停留计时,手动完成极其耗时。本项目面向需要完成知学云平台学习任务的在职人员,提供手机端完全独立的自动化学习工具,覆盖视频、PPT/PDF文档、考试等多种课程类型,大幅提升学习效率。
点击空白处退出提示
本项目旨在解决在线教育学员在知学云平台完成继续教育课程时耗费大量手动操作时间的问题。许多企事业单位要求员工完成定期学时任务,但课程数量多、视频需全程观看、文档需停留计时,手动完成极其耗时。本项目面向需要完成知学云平台学习任务的在职人员,提供手机端完全独立的自动化学习工具,覆盖视频、PPT/PDF文档、考试等多种课程类型,大幅提升学习效率。
核心功能模块:1)JS引擎状态机:自动检测页面类型(登录/加载/课程列表/课程详情/完成),按状态执行对应操作;2)视频自动学习:1.5倍速播放、防检测(伪造visibilityState、拦截暂停事件、保存原生play方法绕过覆盖)、视频结束自动切换下一章节;3)文档自动学习:自动关闭弹窗、页面停留计时、进度达100%自动切换;4)自动答题:考试类课程自动作答;5)悬浮窗状态显示:实时展示当前学习状态、课程名、最新操作日志;6)后台保活:画中画模式保持后台播放、WakeLock防止CPU休眠、Handler心跳驱动JS引擎;7)PC端桌面版:pywebview窗口程序,一键安装部署,支持答题开关。
本人独立负责全部开发。技术栈:Android端Java+WebView,JS引擎用JavaScript状态机驱动自动学习逻辑;PC端Python+pywebview桌面窗口+PyInstaller打包。技术难点与亮点:1)知学云覆盖video.play方法导致后台无法播放,通过保存HTMLMediaElement.prototype.play原生方法绕过;2)Android系统C++层冻结WebView媒体管线导致后台播放中断,采用画中画模式保持Activity可见解决;3)d8编译匿名类NPE,采用接口+方法引用+命名类替代所有匿名内部类;4)倍速被平台周期性重置,通过_speedLoop每2秒强制设置+Object.defineProperty伪装getter持久化。



评论