微课讲稿_Androidsocket网络编程原理课件

PPT
  • 阅读 175 次
  • 下载 0 次
  • 页数 29 页
  • 大小 1.785 MB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档15.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
微课讲稿_Androidsocket网络编程原理课件
可在后台配置第一页与第二页中间广告代码
微课讲稿_Androidsocket网络编程原理课件
可在后台配置第二页与第三页中间广告代码
微课讲稿_Androidsocket网络编程原理课件
可在后台配置第三页与第四页中间广告代码
微课讲稿_Androidsocket网络编程原理课件
微课讲稿_Androidsocket网络编程原理课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 29
  • 收藏
  • 违规举报
  • © 版权认领
下载文档15.00 元 加入VIP免费下载
文本内容

【文档说明】微课讲稿_Androidsocket网络编程原理课件.ppt,共(29)页,1.785 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45659.html

以下为本文档部分文字说明:

AndroidSocket网络编程原理北京信息职业技术学院|林志红AndroidSocket网络编程原理智能手机像个人电脑一样,具有独立的操作系统,并可以通过移动通讯网络来实现无线网络接入。移动互联网:就是将移动通信和互联网二者结合起来,成为一体。移动通信和互联网成为当今世界

发展最快、市场潜力最大、前景最诱人的两大业务。现在很少有智能手机软件无需联网就能正常使用其相关功能,几乎没有“功能不以联网为基础”的软件了。Android系统是当今主流手机操作系统之一,基于Android平台的网络程序设计成为手机软件开发中的关键技术。告知目标•Java

Socket编程,是基于JavaSE平台的网络编程•Android平台的Socket网络程序设计•SE平台上JavaSocket相关内容在Android平台上都是适用的•Android平台上做Sock

et编程还有一些具体的规则需要遵循•今天我们的目标就是学习如何在Android平台上实现JavaSocket网络编程AndroidSocket网络编程原理服务器必须要有一个固定的IP地址,这样才能接受来自全球的客户端连接请求手机无线上网时IP地址通常都是由移动运

营公司动态分配的,没有固定的IP地址一般Socket在Android上的编程应用中,都是作为客户端来使用AndroidSocket网络编程原理网络操作一般比较耗时,有时甚至会阻塞,这样就会导致UI操作响应迟钝,破坏了用户体验不能在UI线程中进行网络操作所有的网络相关操作,包

括建立连接、数据发送、数据接收都必须放在新启动的线程中AndroidSocket网络编程原理这样就产生一个新的问题,因为UI线程中一般会有一些界面组件用来显示从网络上收到的数据,而接收网络上的数据是在另外一个线程上实现的,Andro

id平台不允许新启动的线程访问UI线程中的界面组件,于是就有了矛盾,接收到的数据如何反映在界面中呢?AndroidSocket网络编程原理解决这个矛盾的方法就是借助Handler的消息传递机制AndroidSocket网络编程原理Android规定只能通过Handler机制更新

UI最根本的目的就是解决多线程并发的问题,假设在一个Activity当中,有多个线程去更新UI,并且对更新的UI进行互斥处理,那么直接结果就是性能下降。Handler通过消息队列,保证了消息处理的先后有序。AndroidSocket

网络编程原理•就像一个总公司管理着若干个子公司,每个子公司都需要给老板提交各种报告,如果所有人写完报告就往老板手里送,那么就可能使工作秩序非常混乱,造成工作效率低下。合理的做法是进行专业分工,派专人在总公司和各个子公司之间传递报告。总公司雇佣专门的快递人员,当子公司需要提交报告时,就请快递人员帮助

送一趟。快递人员从子公司取得报告后快速送达总公司,并且把报告按提交时间的先后顺序整理好,放在文件柜中。子公司提交的各种报告需要及时处理,总公司又聘请了专门的秘书人员将送到总公司的报告按先后顺序一份一份地送到老板那里去处理。如果暂时没有需要处理的报告,

秘书可以休息会儿,发发呆,但是一旦有报告送来,就必须立刻进入工作状态,及时把报告送到老板那里去。AndroidSocket网络编程原理现在回到Hnadler,什么是Handler呢?Handler是Android给我们提供的一套消息处理的机制,包括消息创建、传递、处理

机制,我们可以通过Handler发送消息,也可以通过它来处理消息,Handler特别适合用来更新UI。AndroidSocket网络编程原理在介绍Handler机制前,首先了解以下几个概念:Message:消息,可理解为线程间传递的数据

单元,相当于各个子公司提交的报告。MessageQueue:消息队列,用来存放发布的消息,消息按先进先出原则出入队列,消息队列相当于按顺序存放各种报告的文件柜。AndroidSocket网络编程原理HandlerHandler是Message的

主要处理者,负责将Message添加到消息队列以及对消息队列中的Message进行处理。Handler就是总公司的老板,雇佣快递人员传递报告,聘请了秘书人员管理这些报告,他自己来处理这些报告。不过由于经济原因,他不得不辞掉快递

人员,亲自去完成快递工作。Looper循环器,扮演MessageQueue和Handler之间桥梁的角色,循环取出MessageQueue里面的Message,并交付给相应的Handler进行处理。Looper就是老板聘请的秘书小姐,把需要处理的报告从

文件柜中取出来送给老板处理AndroidSocket网络编程原理UI线程通常就是主线程,而Android启动程序时会替它建立一个MessageQueue。UI线程就是总公司,各个子线程就是子公司,总公司的Handler老板处理各个子公司发来的报告。对于UI线

程这个总公司来说,Handler的目标就是根据各个子线程汇报上来的各种最新时尚信息随时修正公司的形象,保持公司形象与时俱进。AndroidSocket网络编程原理Message类重要成员变量:publicintwhat用户自定义的消息代码,这样接受者

可以了解这个消息的信息。每个handler各自包含自己的消息代码,所以不用担心自定义的消息跟其他handlers有冲突。publicObjectobj传递给接收器的数据,封装在Message类中,可以

是任意对象。AndroidSocket网络编程原理Hnadler类:重要方法:publicvoidhandleMessage(Messagemsg)Handler通过该方法接收并处理消息。该方法需要重载,将自己的具体处理方法写入该方法的代

码。publicfinalbooleansendMessage(Messagemsg)子线程通过该方法发送消息到Handler,通过handleMessage方法接收。sendMessage方法将一个消息对象(Message)加入队列,包含了要传递的数据,之后将会被Handler的han

dleMessage(Message)方法所处理AndroidSocket网络编程原理Looper类:调用Looper类的方法可以为当前线程创建一个消息循环,并进入循环管理信息,直到循环结束。重要方法:p

ublicstaticfinalvoidprepare()创建消息循环publicstaticvoidloop()进入消息循环,不断从MessageQueue中取消息,交给Handler去处理。AndroidSocket网络编程原理总的来说,Message类、Hnadler类和Looper

类按如下方式配合:msg1msg4msg3msg2„„Messagemsg5=newMessage();msg.what=0;msg.obj=“I’mmessage5”;mHandler.sendMessage(msg5);„„„„handleMessage(Mes

sagemsg){„„switch(msg.what){case0:Stringdata=(String)msg.obj;mTextView.append("\n"+data);break;„„}子线程UI线程Looper.loop()MessageQueueAndro

idSocket网络编程原理•总的来说,Message类、Hnadler类和Looper类按如下方式配合:假设UI线程中有一个Textview,子线程要想改变UI线程中TextView的内容。由于子线程不能直接访问UI线程的界面组件,只能通过Handler消息

传递机制将字符串存放在消息中发送给UI线程。Handler对象有两个方法,一个是sendMessage(),负责把消息送入消息队列,所以这个方法一般用在子线程,另一个方法是handleMessage(),这个方法负责处理Looper从消息队列

取出的消息,处理的方法就是将收到的消息中携带的字符串取出,然后用这个字符串去填充UI中的TextView组件,所以handleMessage()方法一般运行在UI线程。学习指导例:编制程序,在手机屏幕上放置两个TextView,两个T

extView的内容都是计时信息,其中一个TextView的内容每隔一秒加1,另一个每隔3秒加1。这个例子很明显要用到Handler消息机制。在主线程中放置两个TextView组件,启动两个子线程,一个子线程每延时1秒给主线程发一个消

息,另一个子线程每延时3秒给主线程发送消息。两个线程发送的消息通过消息的what域加以区分。主线程收到消息后更新TextView组件。由于有两个TextView组件,所以要检查收到消息的what域才能决定应该更新哪一个TextView组件

。具体代码如下所示学习指导main.xml学习指导Time_Watch_Activity.java学习指导学习指导学习指导•定义两个延时线程,一个线程反复延时1秒,延时时间到时将当前计时结果放在消息中的obj域传递给主线程,消息的what域

设定为1,发送消息后重新延时;另一个线程反复延时3秒,延时时间到时将当前计时结果放在消息中的obj域传递给主线程,消息的what域设定为3,发送消息后重新延时。代码如上图学习指导•运行结果:学习指导学习指导在Android平台上开发Sock

et网络应用程序还有一个特殊点,就是需要设置网络相关权限,如:<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/><uses-permissiona

ndroid:name="android.permission.INTERNET"></uses-permission>表示该应用程序获得了访问Wifi状态和互联网的权限。如果不设置网络访问权限,那么应用程序在遇到网络数据操作时就会报错。总结•An

droid平台上开发Socket网络程序的特殊性在于:1.Socket在Android上的编程应用中,都是作为客户端来使用2.访问网络不能在主线程中进行,而子线程不能访问主线程中的界面组件,这就要用到Handler的消息传递机制3.在编写访问网络的应用

程序时,要设定相应的网络访问权限作业与思考画出Message、Looper和Handler三者之间的关系图

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?