-
Notifications
You must be signed in to change notification settings - Fork 0
Home
“Oh, you see!” 起初是我做的一个SRDP项目,目的做一个Android版的校园卡查询APP,实现通过手机查询校园卡余额、查询流水、挂失校园卡、失卡招领等功能,该项目已于2015年12月结题。GitHub地址:https://github.com/SunGoodBoy/EasyEcard。
项目进展得并不顺利,一是因为组内的几个人都对Android一无所知,二是因为没办法接入学校的数据库。开始的一段时间,我们也就从慕课网学习了一些Android开发知识。中期时也就按照慕课网上的一个教程,做出了一个类似微信6.0的主界面。后来有一段时间太忙,还有一些乱七八糟的事搞得我很烦,这个项目也就基本处于搁置状态。直到2015年的国庆节假期期间,考虑了很多,还有最后两三个月的时间,我决定不管最后做成什么样,把这个项目结题。
囿于自身能力,学习得也不到位,结题时仅仅做出了一个本地数据库版的Oh-you-see。
项目最终成功结题了,竟然还意外地获得了优秀项目(o(≧v≦)o~~)。但我不太甘心,因为没有实现我想要的效果,于是自己便继续着对它的开发,将其作为自己的Side Project。为了实现预期的功能,在不能获得接入学校数据库的情况下,我尝试放弃通过和服务器直接交互的方式实现,转而通过学校的校园卡网站获取数据。这些都源于我对超级课程表原理的考虑——我感觉超级课程表并没有获得各大高校的教务数据库,而是拿到用户提供的账号和密码进行访问学校网站,得到网页数据后进行解析的。并且我从这篇博客中得到了很多灵感,基本上我的APP就是按照这篇博客介绍的原理来实现的。
结题后一周,我找到了通过该网站的验证码的方法。这让我我坚信这种笨方法是可行的。于是我在APP中利用HttpClien对该网站进行模拟登录,然后利用Jsoup解析网站返回的数据,最后显示到Android设备,基本上实现了预期的功能(EasyEcard)。这种方式本质上与通过浏览器登录校园卡网站没有任何区别,只是在移动端的显示会更加美观、操作更为方便。然而这么做有个很大的弊端——当数据量很庞大,特别是在网页中需要分页显示时,这就会使APP耗费相当多的流量来获取数据,所以最好在WIFI环境下进行“流水查询”这种操作。
在基本功能实现之后,我开始考虑引用各种开源项目来使界面更加美观。最近从Eclipse ADT迁移到Android Studio之后,我发现这变得更加简单。不过目前仍处在开发阶段,欢迎Follow,欢迎Fork,敬请期待!