毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
Android平台的校园O2O社交应用的设计与实现(3)
2.1.2 Android应用组件
Android应用程序由四种组件彼此配合、相互支持后组合而成,这四种组件分别是负责用户参数调整的Activity表示层,负责用户服务的Service组件,负责接收广播的Broadcast Receiver,负责数据读取和存储的Content Provider 组件。
Activity是一个负责与用户进行交互的组件,其所有的操作都和用户有密切的关系,通过配合使用Android的各种组件(例如:TextView、ImageView、Button、ProgressBar等)来显示视图界面。每个Activity都会先调用OnCreate(Bundle bundle)这个方法,对Activity进行初始化,再调用setContentView(R.layout.XXX)这个方法来显示指定的视图布局。R.layout.XXX就是指向指定的xml布局文件。
Service是运行在后台的组件,在UI界面上看不到Service的存在。Service有三个生命周期,onCreate()用于创建Service、onStart()用于启动Service、onDestory()用于销毁Service,这三个方法可通过Activity或Context进行调用。继承Service类的子类有startService()和bindService()两种方式进行启动。
Broadcast Receivers的功能是接收广播消息,和对广播消息做出响应。在一个应用程序中,可以有多个Broadcast Receiver,Broadcast Receiver和Service都没有用户接口,但是在Broadcast Receiver中,可以启动一个Activity来响应广播消息。
Content Provider提供不同应用程序之间的数据共享和访问,是不同进程之间的数据访问的统一接口。在需要多个应用程序间共享数据时,才需要使用Content Provider。Content Provider提供的数据可以存储在文件系统、SQLite数据库等。其他应用可以通过Content Resolver类从该Content Provider中获取数据或存入数据。
2.2 Node.js简介
2.2.1 Node.js基本介绍
Node.js(Node),是一个可以让JavaScript运行在服务器端的平台。它是一个为实时Web(Real-time Web)应用开发而诞生的平台,它从诞生之初就充分考虑了在实时响应、超大规模数据要求下架构的可扩展性[4]。 因此,Node.js抛弃了利用多线程来实现高并发的传统平台的设计思路,而是采用单线程、异步式I/O、事件驱动式的设计模型。它的这些特征让开发时减少了设计多线程时的复杂,也带来了性能的提升,进而提高了开发人员的开发效率。Node.js诞生于2009年,尽管诞生时间还不长,但它周围已经形成了一个日渐完善的庞大的生态系统。Node.js的包管理器(node package manager, npm),强大且灵活,有许多开源开发者也在为NPM开发和维护方便使用的模块,目前也已经有了上万个第三方模块。在2011年6月,微软宣布与Joyent公司合作,将Nodejs移植到Windows,同时Windows Azure 云计算平台也支持Nodejs[5]。 Node.js是一个划时代的技术,起初是为了服务使用JavaScript的Web前端,它又在原有的客户端和服务端技术的基础上提炼出了许多新的方法,提供灵活的伸缩能力,以适应21世纪10年代以后规模越来越庞大的互联网环境。
2.2.2 Node.js特点及性能
Node.js最大的特点就是采用异步式I/O(非阻塞I/O)与事件驱动(Event-Driven)的架构设计[6]。在传统平台中,解决高并发是利用多线程来处理业务,每个业务逻辑提供一个线程来处理,通过切换系统线程提高处理速度来弥补因同步式I/O所产生时间上的消耗。Node.js使用单线程模型,所有I/O都采用异步请求,避免了过于频繁的上下文切换。主要原理是:Node.js在执行时,先处理一个事件队列。执行的程序会进入时间循环,等待下一个事件进入队列,当每次有异步式I/O请求完成后,都会推送到事件队列等待程序进程对其进行处理。
Node.js用异步式I/O和事件驱动代替多线程,带来了可观的性能提升。它的开发者在原有的libev和libeio的基础上还抽象出了libuv层。对于POSIX(Portable Operating System Interface)操作系统,libuv是通过封装libev和libeio来利用epoll或kqueue。而在Windows操作系统下,libuv则是使用Windows的IOCP(Input/Output Completion Port, 输入输出完成端口)机制,让Node.js能够在不同的平台下实现相同的高性能。
共4页:
上一页
1
2
3
4
下一页
上一篇:
jsp+mysql自动化考勤系统设计与实现
下一篇:
数字加法器的设计与实现
基于Apriori算法的电影推荐
考证平台静态网页设计与制作
PHP+IOS的会议管理系统的设计+ER图
数据挖掘在电子商务中的应用
数据挖掘的主题标绘数据获取技术与实现
基于PageRank算法的网络数据分析
基于神经网络的验证码识别算法
10万元能开儿童乐园吗,我...
承德市事业单位档案管理...
C#学校科研管理系统的设计
公寓空调设计任务书
AT89C52单片机的超声波测距...
医院财务风险因素分析及管理措施【2367字】
志愿者活动的调查问卷表
中国学术生态细节考察《...
国内外图像分割技术研究现状
神经外科重症监护病房患...