2 Star 2 Fork 0

UR / G-C-CourseTable

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

G-C-CourseTable

[维护中]

介绍

工程课表

此软件使用 jetpack-compose 加速开发,Jetpack Compose 是 Google 推出的一个用于 Android 应用程序开发的现代化 UI 工具包,它使用 Kotlin 语言编写,旨在简化并加速 Android 平台上的原生界面构建过程。Jetpack Compose 采用了声明式编程模型和函数式反应编程(Functional Reactive Programming,FRP)的理念,使开发者能够以简洁、可组合的方式描述用户界面的状态和行为,从而实现更高效、更易于维护的 UI 开发工作流。

App预览

WechatIMG117 WechatIMG118 WechatIMG119 WechatIMG120 WechatIMG121
绑定账号 主页 课表 自定义课表配色 更新

功能特性

  • 自定义课表颜色
  • 无广告
  • 主页显示今日、明日课表

实现步骤(仅分享思路)

此软件数据由来是学校官网的课表,通过抓取学校官网课表接口和反编译智慧工程从而获取课表数据。为什么要做次应用,因为平时使用学校网站查看课表非常非常....,都缩到一堆了怎么看嘛,然后就突发奇想做一款将杂乱的课表格式化,这样更好的能够一眼看到什么时候上什么课,非常的方便,后续我会根据大家的意见修改或增加一些功能,让此软件的体验更加的完美。

使用的工具

Apk-tool、dex-tool、dex-gui、PostMan、AndroidStudio、Chrome

第一步获取接口

使用 GoogleChrome 打开网络调试功能,随后打开学校官网,完成从输入账号密码登录一直到打开课表的操作就能拿到所有与之相关的接口了。

第二步分析接口

通过上述步骤拿到的接口可以通过网络调试功能中的 copy -> copy as cURL 。将整个请求复制出来,然后通过 postman->import 导入刚复制的cUrl

image-20240421170722554

这样就能得到请求信息,方便我们调试。

image-20240421170659694

通过上诉步骤得到的请求中可以分辨出来请求中的关键参数:secretParam,可以看出这个参数是加密字段,而且还是一个数组,我们该如何知道他是如何加密的呢,可以从两个方向出发:1、从网站反编译js 得到他的加密方式及算法。2、通过客户端得知他的加密及算法。因为本人是一名热爱Android开发的小垃圾不怎么会反编译js,所以我选择后者。

第三步反编译Apk

1、下载apk应用安装包。

2、使用apktool反编译apk的资源文件

3、通过dex2jar将dex文件转换成jar文件(dex文件是直接解压apk得来的)

4、通过jd-gui将jar文件转换成可阅读的java代码。

通过反编译得知:secretParam字段是分段加密字段。并取得它的加密算法

第四步测试接口

通过反编译取得加密算法及请求接口,就可以使用Java实现一个小工具请求接口。

第五步编写软件

使用 AndroidSudio 创建jetpackcompose 项目,并注入灵魂即可实现此应用

软件架构

此软件使用MVVM(Model-View-ViewModel)架构设计编写,因为这样有利于实现关注点分离、简化数据绑定与自动刷新、提升测试性、适应响应式编程以及无缝对接 Android 架构组件,从而打造出结构清晰、易于维护、让用户体验更好。

安装教程

使用 AndroidStudio 一键导入项目源码。

使用说明

  1. 此软件使用校内账号进行登录
  2. 此软件不会收集你校内账户的账号密码
  3. 在使用此软件时,软件会收集设备信息帮助后期体验优化
  4. 此软件非完全开源,加密算法并不没有上传
注意

如果此项目已经侵犯您的权益,请你尽快发送邮件:mypotota@163.com,告知我

软件内已实现意见反馈功能,欢迎大家提供宝贵的意见,让此应用体验更加完美。

空文件

简介

工程课表 使用 jetpack-compose 开发 展开 收起
Kotlin 等 2 种语言
取消

发行版 (9)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Kotlin
1
https://gitee.com/little_fol/g-c-course-table.git
git@gitee.com:little_fol/g-c-course-table.git
little_fol
g-c-course-table
G-C-CourseTable
main

搜索帮助