一口气看完驴友源码

自学安卓也有一年时间了,很快到了要找工作的时候了,但是自己还只做了一个项目,怎么办?听前辈们说,找别人的源码研究,于是,说干就干,我这次找了网上找的一个驴友的源码,和大家讲解下里面的实现思路,帮助大家更快看完一个源码。为了读者方面,我也把这个源码贴出来,有兴趣的朋友根据步骤一步一步来。

我们把这个软件安装完成后,发现里面的功能分为四个模块:旅游记忆,结伴游,好友/关注者,其他功能。其中,数其他功能里面的子模块数最多,所以我们从最多的讲起。

用户注册:这个功能整体上来说就是在安卓端填写信息提交到服务端保存起来这样一个需求,所以我们要做的就是写好安卓端的界面,然后一个提交按钮,把数据提交到服务器,怎么提交呢?驴友是这么做的:安卓端把用户信息以xml的形式装在一个StringBuilder里面,然后便是通过一个非常简单的HttpURLConnection请求,将数据写到服务器端,服务器端的servlet收到了数据就把客户端提交过来的这些数据保存到服务器的MySQL数据库中,(源码没做任何优化,我觉得可以加一个数据库连接池)。服务器对客户端提交的数据处理完了以后,给用户写响应数据,用户拿到这些数据判断是否登陆成功,是的话就转到主界面。

用户登陆:这个也很简单,原理和注册一样,也是安卓端写一个界面,然后用户提交用户信息到服务器,服务器也写一个servlet来处理这些数据,处理过程就是查询数据库,看有没有用户提交过来的这条用户记录,然后给用户回写一个响应,用户根据响应判断是否登陆成功。

新建记忆:这个也很简单,说的通俗点,和前面注册登陆流程没啥两样,还是客户端写好界面,提交数据到服务器,然后服务器处理数据,把这些数据保存到数据库,就这么简单。用户还可以选择保存到本地,也就是暂存,点击暂存按钮,数据就保存在Android的sqlite服务器中。

继续未发布的消息:这个也是很简单,因为新建记忆有暂存到本地Sqlite数据库,因此,我们就直接把暂存的数据从数据库里面取出来,然后装到一个bundle里面,通过intent 带到新建记忆的activity,然后新建记忆的activity对这些数据处理并填充到界面中。

发起结伴游:原来以为这个会有点不同的,看了以后发现和前面的几乎没啥不同,点击发起按钮的时候,把用户填写的数据发送到服务器servlet接受处理,然后给用户一个响应结果,客户端发过去用的还是StringBuilder存Xml格式,然后服务器通过Sax解析解析数据保存到服务器端的MySQL数据库。

以上便是“其他功能”这个模块里面的所有子功能实现。接下来讲旅游记忆模块。

旅游记忆模块实现步骤,第一步发一条消息给服务器,发消息的格式和上面讲的一样,只是发送的只有一条请求多少条数据的消息,服务器得到了用户要请求的条数后,取用户需要的条数返回给客户端,客户端通过inputStream 拿到服务端返回的数据,通过解析这些数据,把这些数据封装到集合里面,然后填充到ListView里面,显示给用户看。

结伴游模块和旅游记忆模块类似,请求方式和数据处理方式参照旅游记忆,但是这个新增了条目点击,点击条目跳转到详情显示页面,通过intent携带数据过去显示。

好友/关注者模块:

1)因为小生资质愚钝,里面的表结构没看懂,看懂的同学告诉我下。

大体步骤为下:

1.开启线程t1,用户请求服务器获取服务端数据库中的好友联系人列表,得到了好友列表后,通过客户端的解析,把数据封装在list容器中(这里是放在String类型的list中,我觉得可以放在一个BeanList中),也就是所有的好友。

2.开启线程t2,获取关注者数据,方法和t1一样,通过请求服务器获取到所有关注者的list。

3.开启线程t3,获取所有好友申请的数据,然后也是装在好友申请的list中。

4.把获取到的这些数据填充到expandableListView里面,中间用到了onCreateContextMenu,百度之,发现这个东西和onCreateOptionMenu的最大区别在于前者是针对每一个View的,而后者只是针对当前activity的,只要给某一个view注册了contentMenu,长按这个view的时候都会响应菜单弹出事件,这个菜单和activity的菜单当然是区分开的。源码中对每一个expandableListView的item都注册了相应的contentMenu,当用户长按的时候会有不同响应事件,然后通过调用onContextItemSelected处理菜单点击事件。以拒绝好友请求为例,当用户选择拒绝好友请求,响应事件就是向服务器的DeleteApplyServlet发送请求,然后服务器端删除这条请求记录。其它类似。

这样一个源码大致了解了,需要深入的朋友可以仔细看看源码,里面确实有些可以借鉴的地方。

时间: 2024-10-08 04:46:49

一口气看完驴友源码的相关文章

十分钟带你看完 KOA 源码

前段时间看了 koa 源码,得益于 koa 良好抽象,不仅提供了简洁的 api ,同时也使得源码相当的简洁和优雅.今天花点时间画了一张 koa 源码的结构图来分析其源码,在总结的同时,希望能够帮到相关的同学. 注:源码是基于 2.x 版本,源码结构与 1.x 完全一致,代码更加简洁直观一点. 基础知识 任何用过 node 的人对下面的代码都不会陌生,如下: const http = require('http'); const server = http.createServer((req, r

最新时时彩投注网站完整版源码,集成多彩种带WAP手机版

这是最新仿牛采纽约育乐彩票网站完整版源码,集成多彩种,比较适合时时彩的网站开发和建设,喜欢这方面的网站建设的朋友可以了解一下,带WAP手机端配置环境:  php5.2+Mysql 适用范围: 最新仿牛采纽约育乐彩票网站完整版源码,集成多彩种,漂亮大气UI,WAP手机端,开奖工具.虽然我从来不调试发布涉及到彩票这些的源码,但是这次发现的这个程序确实非常好看: <ignore_js_op> <ignore_js_op> <ignore_js_op> <ignore_j

在知乎上看到 Web Socket这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错

https://www.zhihu.com/question/20215561/answer/40316953 在知乎上看到这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错,所以推荐给大家,非常值得一读. 作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/40316953来源:知乎著作权归作者所有,转载请联系作者获得授权. 一.WebSocket是HTML5出的东西(协议),也就是说HTTP协议没

大发彩piao完整版源码搭建,大发系统平台架设-网站搭建教程

大发彩piao搭建介绍: 基础框架:spring,hibernate,websocket,ionic(前端) 服务器系统:windows2008 64位 技术架构: 开发语言:php 数 据 库:mysql 基础框架:spring,hibernate,websocket,ionic(前端) 文件大小:压缩包266MB左右 解压后666MB左右 推荐服务器:2核 4G内容 **B带宽 服务器:1核 1G 1MB 也可以就是慢点 关于充值: 1.手动充值,用户填写的是ID而不是注册账号,在用户列表中

在线看Android系统源码,那些相见恨晚的几种方案

请尊重分享成果,转载请注明出处,本文来自逆流的鱼yuiop,原文链接:http://blog.csdn.net/hejjunlin/article/details/53454514 前言:最近在研究MediaCodec,u盘坏了,之前下载的源码也就自然没有了,真是个难过的事情,不能因为没有源码了,就阻挡我的计划了呀,于是就是今天一文,在线看Android源码,加之此前很多人也有向我留言,如何看android系统的源码,今天来敲黑板,划重点了. 不管是做Android底层开发,还是做应用层开发,在

分享一个仿就看天气应用源码

作者xcc3641,源码SeeWeather,就看天气——是一款遵循Material Design风格的只看天气的APP.无流氓权限,无自启,xxx,用最少的权限做最优的体验. 卡片展现(当前天气情况,未来几小时天气情况,生活建议,一周七天概况)补全城市(第一版本因为自己偷懒所以城市有缺陷对不起各位)自动定位缓存数据,减少网络请求,保证离线查看内置两套图标(设置里更改)彩蛋(自动夜间状态) 源码下载:http://code.662p.com/view/12864.html 就看天气 截图<ign

&lt;转&gt;如何高效快速看懂Android源码

原网址:http://jingyan.baidu.com/article/574c5219ca78ed6c8d9dc12a.html 在Android系统上工作了一段时间,经常会遇到题目中的问题,下面说说我的看法: 1.需要先找一个开头,和UI有直接关系的就是最常见的Activity了吧,我就从它开始解剖.从Activity的创建入手,寻找Activity真正的创建位置,setContentview这个方法很明显和UI有关,这两方面一结合,我发现了ViewRoot和WindowManager的身

2015必须要看的APP源码

多媒体类型 哔哩哔哩(bilibili)客户端源码 一个高仿哔哩哔哩(bilibili)客户端的开源项目,效果不错 下载地址: http://www.apkbus.com/forum.php?mod=viewthread&tid=242204 ---------------------------------------------------------------------------- 56视频播放器源码          一 套比较成熟的视频播放器项目源码,默认直接从我乐网获取视频数据

一口气看完口袋微博源码(二)之用户登录

这一篇讲用户登录,步入正题,用户登录首先要写好安卓的界面部分,既然是登录,无外乎用户名,密码,是否记住,然后就是登录按钮,ok直接上代码: Xml代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="ve