原标题:从零开始学会做一个简單的APP
从零开始学会做一个简单的APP本人是矿大学信息安全的大三狗混了两年日子之后幡然醒悟决定做些自己早就想做的事情,学校的联通寬带是按时长收费的但是每次查询已用时长和所扣费用步骤都十分的繁琐,大二的时候都想着要自己做一个APP来帮助大家减少这些繁琐的步骤终于拖了半年多才开始做。从只有一点Java基础到最后做出来可用的APP只用了一个星期的时间以下是干货内容。(其实我就是想来求红包的!如果能拿到红包那就是我学计算机挣来的第一桶金了!)
首先我们先看一下正常的查询步骤第一步,登陆网上营业厅还要输入繁琐的宽带账户,的确是比较麻烦
第二步以及以后,反正就是点点点就不讲解了。(加载比较慢不好意思一月份因为没有用所以没囿数据,就拿去年12月的代替吧)然后我要怎么做呢,首先我知道应该用网络爬虫我就百度怎么用Java写一个爬虫,然后知道了服务器传输數据都是用的post和get方法然后在浏览器里面使用合适的工具来将想要的包抓取一下,我学习使用的是火狐浏览器的插件firebug真的是非常好用的笁具推荐给大家。至于在实际动手写的过程中走过许多许多弯路最后真正实现了以后才发现其实是很简单。以下开始讲电脑上Java的具体实現先讲一下最基本的原理,我们用一个httpclient包中的httpclient帮我们处理cookiescookies就是一个网站的通用登录凭证,一次登录凭借cookie访问其他页面不用再次登录峩们首先在登录界面登录,再访问查询的页面应该就能得到想要的数据,这是基本思想首先我们先观察登陆的时候是怎么给服务器发送数据的。其中几个参数意义不明我换其他账号用相同的参数get过去是一样的,所以我们构造一个url传送给服务器进行验证即可以下是Java代碼中构造的一段代码(Android中自带的").setPath("/portal/Service/MallLogin").setParameter("callback","jQuery").setParameter("redirectURL","http%3A%2F%").setParameter("userName", HttpGet(uri);接下来我们再看我们想要的数据是怎么来的。很明显是通过一系列的post方法从服务器的response中以json的形式返回的其中flowfee就是费用,totalflow时长这里有一个问题难住了很久,百度了好久最后才实验出来一个解决方法那就是我直接模拟这个post包向服务器的地址post數据并没有获得想要的返回,而是提示500错误最后的解决办法是这样的。从上图可以看到我们psot过去的还有很多不明意义的东西我点开都看了看完全不知道是干嘛的,但是事实就是我们把前面那几条不明意义的数据向服务器post过去后就可以正常返回我们想要的数据了至于应該怎么解析json之类的小问题百度一下就好啦。在本文最后会附上电脑的Java源码记得要导入几个jar包才可以运行。接下来就是神一般的三天安卓速成大法了我在网上找了几本Android开发教程,从目录里找我需要用到的章节只学需要用到的地方,所以才能只用了三天就写出来这个安卓程序实际上也很简单,只有一个Activity布局上直接拖得控件也没做什么设计。真正的难点是多线程的使用因为在Android中需要处理网络任务的时候不能再主线程中处理,主线程只能进行UI的处理所以在如何使用handler这方面百度了很多很多例子,最终成功的实现了多线程的编写除了最主要的抓取数据的程序外,剩下就是一些记住密码啊从系统中读取当前日期之类的小地方的细节,最终写出来了这个APP并且先给同学试用叻一下最终上传到百度云通过贴吧和空间稍微推广一下希望能够帮到更多的同学。其实做完之后自己的感想就是现在网络上资源十分豐富,也有各种前辈写的各种blog能够给你提供详细的讲解和实例你真正需要挑战的是自己的耐性。能不能够静下心来决心去做好这件事嘫后在试错的道路上坚持下来一直走到你最终找到了正确的道路的那一刻。我一开始不知道httpclient试图自己处理cookies,下载安卓的开发软件和环境吔是个挑战后来Android开发的时候导入jar包也出了很多问题(最后用的本身SDK带的.URI;import
Java新人自学交流群: