android一手机做服务器多个手机做客户端实现mac 收发邮件 客户端消息

Android 平台下的即时通讯 - JAVA交流 - ITeye技术网站
博客分类:
基于Android 平台简易即时通讯的研究与设计
摘要:论文简单介绍Android 平台的特性,主要阐述了基于Android 平台简易即时通讯(IM)的作用和功能以及实现方法。(复杂的通讯如引入视频音频等可以考虑AnyChat SDK~)关键词:Android 平台;即时通讯
(本文中图表点击附件即可见)
1 Android 平台简介Android 是Google 公司于2007年11月5日推出的手机操作系统,经过2年多的发展,Android平台在智能移动领域占有不小的份额,由Google为首的40 多家移动通信领域的领军企业组成开放手机联盟(OHA)。Google 与运营商、设备制造商、开发商和其他第三方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。正因如此,Android 正在被越来越多的开发者和使用者所接受。近日,Google 发言人Anthony House称,截止到2010 年4 月15 日,Android Market 已经有3.8 万多个应用程序。
2 Android 平台特性与即时通讯的研究
  Android 平台框架共由5 部分组成。底层核心是基于Linux 2.6内核开发的独立操作系统,该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。中间是Android 执行环境,包括系统运行库、Dalvik 虚拟机、核心库和一些C /C ++库等支持Android 使用的各个组件。应用层框架是开发人员使用这些API 框架来开发自己的应用,简化了应用程序开发的架构设计。应用层程序是用Java语言编写的运行在虚拟机上的程序[1] 。整个An- droid 平台框架如图1 所示。
即时通讯(IM)是一个终端连往一个即时通讯网路的服务。即时通讯与e-mail 的不同在于它的交谈是即时的。大部分的即时通讯服务提供了在线提醒的特性──显示联络人名单,联络人是否在线,能否与联络人交谈等。近几年即时通讯发展特别迅速,即时通讯的功能日益丰富,由PC 客户端发展到移动客户端,逐渐发展成一个综合化信息平台,国内市场上知名的即时通讯工具有腾讯QQ,新浪UC,中国移动飞信等,但这些产品都有着很严重的安全威胁,如ID 被盗、隐私威胁、病毒威胁等。
为了减小这些威胁,可以在企业内部开发自己的即时通讯软件,减少为未知用户带来的威胁。
3 简易即时通讯功能及设计
3.1 简易通讯的功能
本设计实现了在Android 平台上开发即时手机通讯系统,它能够使用户在手机客户端上登录服务器,方便、迅捷地收发即时消息。随着研究的深入,可以在该系统上实现图片的传输和接收,以及其他一些功能,这样可以使该系统功能更加多样化。
3.2 简易通讯系统框架介绍
通讯系统架构采用C /S 模式,即客户端/服务器的体系结构。客户端是基于Android 平台进行开发,通过3G 网络与Internet 建立连接,通过服务器实现Android 客户端之间的即时通讯。
客户端负责初始化通信过程,进行即时通讯时,由客户端负责向服务器端发起连接请求。服务器端采用开源的Openfire[2] 作为服务器,允许多个客户端同时登录,并且同时连接到一个服务器上。服务器对每个客户端进行认证,对认证通过的客户端创建会话,实现客户端与客户端之间的通讯。
3.3 客户端的解决方案
系统的客户端定位于Android 平台的手机,采用SIMPLE[3] 协议作为即时通讯协议,SIMPLE(SIP for Instant Messaging and Presence LeveragingExtensions) 是SIP (Session Initiation Protocol)的扩展,它为SIP 协议制定了一整套的架构和扩展方面的规范,用于支持IM。SIMPLE 通过SIP 来传递状态信息和实现分布的信息表示
。根据协议规则,采用Android 平台提供的XML 解析包对XML 进行解析。根据Activity 模块运行于主线程的特点,采用多线程[4] 技术来解决系统通信问题。系统的用户信息和聊天信息存储在Android平台自身所带的SQLite 数据库中。客户端功能模块如图2 所示。
3.4 服务器端解决方案
系统服务器端采用开源的Openfire 来建立即时通信服务器。Openfire 采用Java 语言进行开发,Java 语言具有跨平台的特点,因此Openfire 服务器可以架设于多种操作系统平台上。Openfire服务器的内核主要由服务器连接管理组件、会话管理组件、数据存储组件和传输器组件等组成。Openfire 实现了插件机制,方便扩展,通过安装与异构网络通讯的插件,便能与其他的通讯软件实现通讯。
在网络连接中采用Apache 的Mina 框架来实现网络连接,Mina 框架使用非阻塞式的高性能I /O 底层,采用异步I /O 事件和事件驱动机制,使服务器具有很高的效率和性能,从而能够及时处理大量的客户端连接事件和I /O 随机事件,单台服务器可支持上万个并发用户。服务器与客户端的连接示意图如图3 所示。
3.5 通信系统结构
随着移动通信与Internet 的飞速发展及其相互融合,3G 无线网络使无线网络高速接入Internet成为现实,从而移动客户端可以接入到Inter- net 的服务。系统客户终端通过3G 无线网络采用TCP 协议连接到服务器,通过SIMPLE 即时通讯协议进行及时通讯。[5]
在移动网络中,移动终端接入到3G 无线网络。网关移动交换中心GMSC(Gateway Mobile Switc- hing Center)为用户提供分组路由、隧道和跟踪移动终端的位置等功能。UMTS(Universal Mobile TelecommunicationsSystem)提供3G 网络内部与外部网络的路由和封装,分配IP 地址,实现与Internet 网络的互通。通信系统结构示意图如图4 所示。
3.6 系统工作流程
服务器对用户输入的用户名和密码进行身份验证,验证成功后,客户端从服务器端读取客户端的个人信息,并更新好友列表和群组信息,服务器端响应客户端的各种请求,客户端可发送接收信息,通讯完毕退出系统登录状态。这样,一个简易即时通讯系统便实现了。在这里顺便提下如果要求做到音视频通讯的话可以借鉴佰锐公司的AnyChat SDK产品。当然只是个人学习的话可以先从文字通讯开始。
图5 是认证流程示意图。
客户端软件使用Java 和XML 语言在eclipse集成开发环境中开发,基于Andriod 1.5 模拟器开发的用户登录界面如图6 所示。
4 结语该设计主要讨论了基于Android 平台的简易即时通讯系统,研究了在开源服务器Openfire 上各个移动客户端和服务器之间的通信系统结构,实现了客户端功能。随着研究的进一步深入,基于Android的通讯系统会逐渐完善,相信基于Android 平台的即时通信系统会有着很好的应用前景。
[参考文献][1]余志龙,陈昱勋,郑名杰,等.Google Android SDK 开发范例大全[M].北京:人民邮电出版社,2009.[2]张云川.标准化的即时通信协议———SIMPlE 和XMPP 的对比研究[J].武汉科技大学学报: 自然科学版,2005,28(4):375-377.[3]张海燕.Java 多线程技术在手机互联网中的应用[J].农业网络信息,2008(3):97 -98.[4]姚昱旻,刘卫国.Android 的架构与应用开发研究[J].计算机系统应用,2008(11):110 -113.[5]张利国,代闻,龚海平.Android 移动开发案例详解[M].北京:人民邮电出版社,2010.
浏览 21436
浏览: 236703 次
来自: 杭州
我不懂黑窗口,真心看不懂
没有源码么??????
如何采用第二种方式,如何传递数据呢?有两种方式:
1、可以选择 ...17:17 提问
android 怎么把手机作为服务器接收显示数据
android 用TcpSocket怎么把手机作为服务器接收显示来自另一台手机的客户端的消息
按赞数排序
这个应该涉及到手机之间的通信吧
Android 手机做服务器也是可以的,但手机一般没有固定的公网 IP。所以,如果做服务器有一定的难度!
如果 IP 的问题解决了,就是一般的 TCP 通讯。
其他相似问题android_socket_chat 该代码主要是描述了如何制作一个简单的安卓聊天工具,包括了服务器端和手机端以及数据
247万源代码下载-
&文件名称: android_socket_chat& & [
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 154 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:该代码主要是描述了如何制作一个简单的安卓聊天工具,包括了服务器端和手机端以及数据库的 一些详细资料-The code is mainly describes how to make a simple chat tool Andrews, including some details of the server and the mobile client and the
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&android_socket_chat&&...................\SocketChart&&...................\...........\.classpath&&...................\...........\.project&&...................\...........\AndroidManifest.xml&&...................\...........\assets&&...................\...........\bin&&...................\...........\...\SocketChart.apk&&...................\...........\...\classes.dex&&...................\...........\...\ld&&...................\...........\...\..\socket&&...................\...........\...\..\......\ChartInfo.class&&...................\...........\...\..\......\LogonActivity$1$1.class&&...................\...........\...\..\......\LogonActivity$1.class&&...................\...........\...\..\......\LogonActivity$2.class&&...................\...........\...\..\......\LogonActivity$3.class&&...................\...........\...\..\......\LogonActivity$4.class&&...................\...........\...\..\......\LogonActivity.class&&...................\...........\...\..\......\MainActivity$1.class&&...................\...........\...\..\......\MainActivity$2.class&&...................\...........\...\..\......\MainActivity$3.class&&...................\...........\...\..\......\MainActivity$4.class&&...................\...........\...\..\......\MainActivity.class&&...................\...........\...\..\......\MessageAdapter.class&&...................\...........\...\..\......\MessageRecord.class&&...................\...........\...\..\......\R$attr.class&&...................\...........\...\..\......\R$drawable.class&&...................\...........\...\..\......\R$id.class&&...................\...........\...\..\......\R$layout.class&&...................\...........\...\..\......\R$string.class&&...................\...........\...\..\......\R.class&&...................\...........\...\..\......\SocketClient$1.class&&...................\...........\...\..\......\SocketClient.class&&...................\...........\...\resources.ap_&&...................\...........\default.properties&&...................\...........\gen&&...................\...........\...\ld&&...................\...........\...\..\socket&&...................\...........\...\..\......\R.java&&...................\...........\proguard.cfg&&...................\...........\res&&...................\...........\...\drawable-hdpi&&...................\...........\...\.............\icon.png&&...................\...........\...\.............\logon.jpg&&...................\...........\...\drawable-ldpi&&...................\...........\...\.............\icon.png&&...................\...........\...\drawable-mdpi&&...................\...........\...\.............\background.png&&...................\...........\...\.............\icon.png&&...................\...........\...\layout&&...................\...........\...\......\listview_item.xml&&...................\...........\...\......\logon.xml&&...................\...........\...\......\main.xml&&...................\...........\...\values&&...................\...........\...\......\strings.xml&&...................\...........\src&&...................\...........\...\ld&&...................\...........\...\..\socket&&...................\...........\...\..\......\ChartInfo.java&&...................\...........\...\..\......\LogonActivity.java&&...................\...........\...\..\......\MainActivity.java&&...................\...........\...\..\......\MessageAdapter.java&&...................\...........\...\..\......\MessageRecord.java&&...................\...........\...\..\......\SocketClient.java&&...................\SocketTest&&...................\..........\SocketServer&&...................\..........\............\IResponseManager.cs&&...................\..........\............\LogonResponseManager.cs&&...................\..........\............\Program.cs&&...................\..........\............\Properties&&...................\..........\............\..........\AssemblyInfo.cs&&...................\..........\............\SendResponseManager.cs&&...................\..........\............\SocketHost.cs&&...................\..........\............\SocketRequest.cs&&...................\..........\............\SocketResponse.cs&&...................\..........\............\SocketServer.csproj&&...................\..........\............\app.config&&...................\..........\............\bin&&...................\..........\............\...\Debug&&...................\..........\............\...\.....\SocketServer.exe&&...................\..........\............\...\.....\SocketServer.exe.config&&...................\..........\............\...\.....\SocketServer.pdb&&...................\..........\............\...\.....\SocketServer.vshost.exe&&...................\..........\............\...\.....\SocketServer.vshost.exe.config&&...................\..........\............\...\.....\SocketServer.vshost.exe.manifest&&...................\..........\............\...\Release&&...................\..........\............\obj&&...................\..........\............\...\x86&&...................\..........\............\...\...\Debug&&...................\..........\............\...\...\.....\DesignTimeResolveAssemblyReferencesInput.cache&&...................\..........\............\...\...\.....\ResolveAssemblyReference.cache&&...................\..........\............\...\...\.....\SocketServer.csproj.FileListAbsolute.txt&&...................\..........\............\...\...\.....\SocketServer.exe&&...................\..........\............\...\...\.....\SocketServer.pdb&&...................\..........\............\...\...\.....\TempPE&&...................\..........\SocketTest.sln&&...................\..........\SocketTest.suo
&输入关键字,在本站247万海量源码库中尽情搜索:Android 服务器向客户端推送方案_android开发_ThinkSAAS
Android 服务器向客户端推送方案
Android 服务器向客户端推送方案
内容来源: 网络
1.C2DM(现在是GCM)
Android Cloud to Device Messaging (C2DM) 作为 Android 2.2 的一部分已经发布了。C2DM 允许第三方开发者开发相关的应用来推送少量数据消息(1024bytes)到用户的手机上。C2DM 创造了一个良好的机会,允许我们使用多种 Google 开发工具来创建一种简单但相当实用的应用类型。用户可以使用该类型的应用把各种各样的信息从他们的台机或者笔电直接 push 到自家的手机上。C2DB已经过时·C2DM服务将在短期内结束,将不再接受新用户·c2dm开放人员请用Google
Cloud Messaging (GCM).GCM是下代C2DM.因为目前国内无法使用Google服务,所以了解一下就好。
2.使用XMPP协议(Openfire + Spark + Smack)
简介:基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准化组织完成了标准化工作。
优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。
缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。
3、使用MQTT协议(更多信息见:http://mqtt.org/)
简介:轻量级的、基于代理的“发布/订阅”模式的消息传输协议。
优点:协议简洁、小巧、可扩展性强、省流量、省电,目前已经应用到企业领域(参考:http://mqtt.org/software),且已有C++版的服务端组件rsmb。
缺点:不够成熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高。
4.androidpn
androidpn 全称是 Android Push Notification。
这是韩国人开源放在 sourceforge.net 上的一个开源项目。
androidpn 是一个整合方案,它是基于 XMPP 开源组件的 。即服务器端基于 Openfire,客户端基于 Smack ,这二个是 XMPP 开源组件里最常见的两个。androidpn使用Spring框架做了个Web层,把XMPP IM组件集成起来,以实现Android Push功能。因此,androidpn的可用性来自于如下几个方面:
1.其依赖的XMPP IM协议与通讯机制,是否适合用于Android Push场景。
2.其是否为Android Push需求做了必要的定制。
使用androidpn可以简单地做到:把消息推送到客户端。但是,要使其适合开发者需要,并在生产环境上运行,则可能需要做很多定制开发工作。从笔者与多个开发者交流得到的反馈来看,在生产环境里运行起来问题很多。
5.极光推送
极光推送官网
极光推送,英文简称 JPush,是一个面向普通开发者开放的,免费的第三方消息推送服务。
开发者只需在客户端集成极光推送 SDK,即可轻松地添加 Push功能到他的 App中。目前支持 Android 与 iOS。
开发者可以在管理Portal上快捷地向用户推送消息,也可以定制推送的时间、用户群、位置等。还提供远程推送 API。
开发者可以在管理Portal上查看推送统计信息,直观地评估推送效果。
极光推送服务具有如下的优势:
1)完全开放注册,免费向所有的开发者开放使用
2)SDK流量电量消耗很少
3)集成简单,很快就能够集成跑起来
4)服务器端推送并发量支持大、延迟小
6.百度推送
云推送(Push)是百度开放云向开发者提供的消息推送服务;通过利用云端与客户端之间建立稳定、可靠的长连接来为开发者提供向客户端应用推送实时消息服务。
百度云推送服务支持三种推送类型:通知、消息及富媒体;支持向所有用户、根据标签分类向特定用户群体、向单个用户和基于地理位置推送消息;支持更多自定义功能(如自定义内容、后续行为、样式模板等);提供用户信息及通知消息统计信息,方便开发者进行后续开发及运营。
个推平台专注提供移动设备长连接SDK和服务端接入的整体解决方案。目前个推平台主要提供两种服务模式,消息群发模式,提供群发管理后台,满足消息群发需求;业务整合模式,提供服务端API接口,可以与客户已有业务系统深度整合。
百度云推送,极光推送和个推各自的优势是什么?
极光推送功能优势:
1、高效稳定的推送通知
为合作伙伴提供长连接SDK,开发者的服务消息可以推送到其客户端。使你的应用程序保持高注意力,即使用户没有打开应用程序,也能够推送通知到达用户手机。您可以即时向用户推送活动提示、动态更新、积分信息等通知。100万并发量不超过40秒,水平服务器架构,任何单点失效都并不会影响推送。
2、自由度高,推送自定义消息。
强大的自定义消息推送通道。开发者可以推送自定义的消息内容。JPush SDK 把内容完全转给开发者应用程序,由开发者应用程序去处理自定义消息。
3、灵活推送工具
灵活地根据需要进行推送。管理Portal上的推送助手,方便快速推送,普通用户都可操作。另外也提示API调用方式,灵活强大。
4.推送平台技术架构先进,经过考验的大规模用户 Push 平台
由于之前开发过IM应用,极光在消息推送业务上有丰富的技术沉淀期,并且不断地优化系统,满足快速的业务增长。
免费推送服务
推送的用户数量没有限制,推送的消息条数也没有限制。
方便集成的SDK及良好的文档和技术支持体系
android 3分钟demo
ios 简单配置
客户端SDK以非常低的代价保持连接,电量、流量消耗少。
推送内容的多少是由开发者决定的,网络状况不稳定也会对电量造成影响。在不考虑推送的内容和网络影响前提下。理论数据平均值为:流量消耗 20K/天,电量消耗 30mAh/天
5、专业图表、推送精准化
推送效果直观呈现。推送到达了多少?到达后,用户有没有点击打开应用?打开应用后,用户逗留的时间有没有延长 ? 直观的对比图表,让你轻松地评估推送效果。
这是极光推送应用后的数据趋势图:
云推送平台具备的优势
平台在服务端与SDK进行通讯时进行了数据加密,保证客户数据的隐私安全。同时,个推平台还支持客户对传输数据自主加密,满足高安全性客户的需求。
平台服务器部署在核心机房,三线接入,保证不同运营商移动设备接入的稳定性。个推平台采用分布式架构部署,不仅系统容量可灵活扩容,还可以提供99.9% SLA。个信专业的运维团队维护,消息到达率超过96%。
平台专注推送服务领域的研究,单台设备支持100-300万用户在线(根据单台设备配置会有波动),平均成本控制业界领先。
出乎意料的快速,瞬间送达
平台的消息投递延时小于0.2s,无论何时何地,用户移动设备有网络即可送达。
专为手机优化,省电省流量
平台采用自主研发的独有协议,比XMPP更适合移动设备使用,符合4S标准(小巧、省电、省流量、稳定)。实测移动设备空载耗电每日15-50mAh,空载流量0.8-1.2M/月。
个推平台具备的优势
个推平台在服务端与SDK进行通讯时进行了数据,保证客户数据的隐私安全。同时,个推平台还支持客户对传输数据自主加密,满足高安全性客户的需求。
个推平台服务器部署在IDC核心机房,三线接入,保证不同运营商移动设备接入的稳定性。个推平台采用分布式架构部署,不仅容量可灵活扩容,还可以提供99.9% SLA。个信专业的运维团队维护,消息到达率超过96%。
个推平台专注推送服务领域的研究,单台设备支持100-300万用户在线(根据单台设备配置会有波动),平均成本控制业界领先。
出乎意料的快速,瞬间送达
个推平台的消息投递延时小于0.2s,无论何时何地,用户移动设备有网络即可送达。
专为手机优化,省电省流量
个推平台采用自主研发的独有协议,比XMPP更适合移动设备使用,符合4S标准(小巧、省电、省流量、稳定)。实测移动设备空载耗电每日15-50mAh,空载流量0.8-1.2M/月。
个推平台移动设备SDK集成半天即可完成,使用推送管理后台,当天即可零开发群发消息。同时,个推平台也提供完善成熟的服务API可以与客户已有业务系统紧密结合。
强大的分析报表
个推平台可以提供应用的留存用户,在线用户等核心数据,并会不定期提供行业数据分析报告及客户的行业排名指数。对于消息投递到用户后的访问行为,个推平台也会提供精准的效果评估报告。
若有问题请留言,转载注明出处。
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信从高处理解android与服务器交互(看懂了做开发就会非常的容易) - 推酷
从高处理解android与服务器交互(看懂了做开发就会非常的容易)
今天帮一个朋友改一个bug 他可以算是初学者吧 。我给他看了看代码,从代码和跟他聊天能明显的发现他对客户端与服务器交互 基本 不是很了解。所以我花了更多时间去给他讲客户端与服务器的关系。我觉得从这个高度去做客户端开发会对开发的提高有十倍甚至百倍的效果。我希望更多的人能理解更多的人能收到帮助。所以把这个总结了一下发布出来。
首先:我介绍下服务器的一些东西
服务器开发是一门很深的学问不是一句话两句话能理解的,至少比android开发要复杂很多倍,至少想开发好是非常难的。这里只讲android需要理解的概念
服务器这里指的是web 服务器不是具体的机器
服务器 就是一个程序 这个程序 会接收请求 返回响应
简单理解就是一个 & 处理请求响应的小程序
不好理解 那我具体讲一下
就是 你给服务器一个请求 告诉他你想要的 他就给你一个响应 就是给你你想要的。
至于你用什么客户端他不关心的。你用浏览器 他不关心 你用 android手机他不关心 用ipad 其实他也不关心。
你只要有请求&我就给你响应。
什么还不好理解那我再具体下
比如你去商店买个雪糕 给他1块钱 告诉他 我要一个 蒙牛随便雪糕&他就给你一个蒙牛随便雪糕 , 只要他有就会给你,如果他没有就告诉你他没有。这个就是一个请求响应。
下面对号入座
ip 或者url 就是 商店的地址。你得知道去哪买
参数就是 一个蒙牛雪糕的id &在网络里一般是传id就ok了
返回就是给你一个随便雪糕。
至于你是你买 还是你妈妈买 还是你老板 。或者你老板的小秘买 基本是一样的 ,都是会返回你一个雪糕而已 。
总结一下就是。服务器写好了放那就行 ,用浏览器 测试一下,就知道 正不正确了。如果浏览器测试没有问题 一般在客户端发请求都会收到正常的响应。浏览器就是一个客户端,android手机也是客户端。虽然开发服务器很高大上。那是过去。在android 我们关系的就是我的请求会得到响应 具体响应什么 我们会约定好的。
了解了服务器在谈谈android开发
android应用开发一般就两个分支 一个是工具类的可能不是很需要从服务器获取数据
另一个就是浏览型的基本数据都是从服务器获取的。服务器返回什么我就显示什么,具体数据是我们之前约定好的 比如我想要蒙牛随便雪糕 他就会给我,他没给是他的问题,我只要告诉用户说服务器不给就ok了 。
具体开发时候可以绕过浏览器,我设计好接口 然后 设计好返回我就可以做测试了 具体服务器对接其实不会影响我这边的具体问题的。这样开发客户端就非常简单了。在没有服务器的情况下也可以做简单的开发,虽然会比有的时候麻烦一点 但是也是值得推荐的。不要把一切工作推到服务器开发完成。
具体开发流程就非常简单了。
比如我开发一个用户模块。包括登录,注册,修改,获取用户列表,删除用户。典型的crud模式。最典型的整删改查都有了,服务器交互就是简单的整删改查而已。
这里要介绍一个大名鼎鼎的库 google的 gson库。自从用了这个,做交互方便了不是一点半点
gson 支持 从对象 到 json字符串的转换 就一句话 gson。tojson(Object);就完成了即使是集合也没有问题。什么他竟然还支持泛型。简直高大上啊。
至于json 转换成对象就要麻烦一点点 怎么麻烦呢,他需要获取一个Type就是想要转换的实体类的类型 代码如下
Gson gson = New Gson();获取gson对象
Type type = new TypeToken&User&() {}.getType(); 获取转换类型
User user= gson.fromJson(jsonStr, type); 转换成具体对象
什么就两行代码就把json字符串转换层user对象了 什么这个也支持泛型,还支持泛型嵌套。而且效率非常高,速度非常快。简直太高大上了。
了解gson 做开发就方便了,具体流程
登录 我传new 一个user对象转换成 json 字符串 发送给服务器 &服务器解析json成user 对象判断用户是否存在 密码是不是正确 告诉我登录是否成功就ok了。
注册道理是一样的 都是发送一个json 而已。
修改用户信息麻烦一点 就是 需要先查询用户信息。想修改就一定要知道修改谁,比如我登录了 肯定会获取一个登录的id 就是用户id 那我想获取我的信息就会发送我的id告诉服务器我要获取信息 服务器就会返回我的信息 服务器返回的是json 字符串 我转换层user对象 然后我会修改 在发给服务器。服务器告诉我是否成功就ok
基本所有的增删改查都是简单的服务器交互而已。其实腾讯新闻 啦。新浪微博啦。团购网站啦 都是可以这样的交互的 。而且非常标准。
你会一个模块其实别的模块 基本都是一摸一样的。只是实体类还了而已可能是 User &Student &也可能是 Type 或者是 House 道理都是一样的
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 邮件收发客户端源代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信