免费智能真题库 > 历年试卷 > 电子商务设计师 > 2020年下半年 电子商务设计师 上午试卷 综合知识
  第56题      
  知识点:   Android的系统架构   Android   开发人员   类库   系统架构
  章/节:   电子商务平台开发基础       

 
Android系统架构中,( )提供了开发Android应用程序所需的一系列类库,方便开发人员快速地构建应用整体框架。
 
 
  A.  Libraries and Android Runtime
 
  B.  Application
 
  C.  Application Framework
 
  D.  Linux Kernel
 
 
 

   知识点讲解    
   · Android的系统架构    · Android    · 开发人员    · 类库    · 系统架构
 
       Android的系统架构
        基于Linux内核操作系统,Android系统对Linux内核进行了加强。其系统架构如下图所示,采用了分层架构思想,从上到下分为4层,分别为Application(应用层)、Application Framework(应用框架层)、Libraries and Android Runtime(系统库及Android运行时,系统运行库层)和Linux Kernel(Linux内核层),各层采用Software Stack(软件栈)的方式进行构建。
        
        Android系统架构
        (1)Android应用层。Android应用层提供的服务即我们常说的应用,它是与用户直接交互的。所有的应用程序(包括原生和第三方)都在应用层上进行构建,如系统自带的日历、通话、短信、浏览器等以及在Android应用商店中下载的游戏、音乐软件等;应用层运行在Android运行时内,并且使用了应用程序框架的类和服务。
        (2)Android应用框架层。Android应用框架层提供了开发Android应用程序所需的一系列类库,通常是系统API接口,使开发人员可以方便、快速地构建应用整体框架,其具体的模块内容及功能如下:
        ①Activity Manager(活动管理器)。管理各个应用程序活动窗口并为窗口提供交互的接口。
        ②Window Manager(窗口管理器)。管理所有开启的窗口程序。
        ③Content Provider(内容提供者)。提供应用内或应用程序间数据共享功能。
        ④View System(视图)。创建应用程序基本视图组件,如ListView、TextView、WebView等控件。
        ⑤Notification Manager(通知管理器)。用户可以自定义状态栏中的提示信息。
        ⑥Package Manager(包管理器)。应用程序安装进手机后,以包名作为文件夹名进行存储,此API提供诸如应用程序的安装与卸载功能以及提示相关的权限信息。
        ⑦Resource Manager(资源管理器)。提供图片、音视频等非代码资源。
        ⑧Location Manager(位置管理器)。提供位置信息服务。
        ⑨Telephony Manager(电话管理器)。管理所有移动设备功能。
        ⑩XMPP服务。Google提供的后台推送服务。
        (3)Android系统运行库层。Android系统运行时库层包含两部分内容,一个是系统库,一个是Android运行时。
        系统库提供了系统功能通过Android应用程序框架层为开发者提供服务,其类库的主要内容包含各种C/C++核心库(如Libc和SSL)、支持音频视频的多媒体库、用于本地数据库支持的SQLite、2D/3D图形处理引擎、外观管理器、数据传输服务(WebKit、SSL)等。另外,Android NDK(Android Native Development Kit,Android原生库)也为开发者提供了直接使用Android系统资源的能力。
        Android运行时包含核心库与Dalvik虚拟机两部分:
        ①核心库提供了Java SE API的绝大多数功能,并提供Android的核心API,如android.os、android.net、android.util、android.meida等。
        ②Dalvik虚拟机是基于Apache的Java虚拟机,被改进以适应低内存、低处理速度的移动设备环境,负责运行Android应用程序,提供实现进程隔离与线程调试管理、安全和异常管理、垃圾回收等重要功能。
        (4)Android Linux内核层。Android Linux内核层作为系统架构的最底层借助Linux内核服务实现硬件设备驱动,从而为上层提供诸如进程与内存管理、网络协议栈、电源管理以及驱动程序等功能,同时Linux内核也是硬件与软件之间的抽象层(Hardware Abstract Layer,HAL),它是对硬件设备具体实现的抽象,这样程序开发人员就无须考虑系统底部的实现细节,提高了开发效率。
 
       Android
        Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日发布的手机操作系统。Android早期由原名为Android的公司开发,Google公司在2005年收购Android公司后,继续对Android系统进行开发和运营。
               Android系统的优势
               Android系统目前的市场占有率仍在急剧提高,这主要得益于其以下优势。
               . 平台的开放性允许任何厂商加入,使其拥有了更多的开发者,新的应用和创意可以不断地出现。
               . 摆脱了运营商的束缚,让手机更加贴近互联网。
               . 应用程序都是基于Java开发的,Java具有一次编写、四处运行的跨平台性,实现了在所有的Android设备中运行,真正做到了硬件无关性,降低了开发者的负担。
               . 提供了标准的API和SDK开发包,手机厂商可以根据需要自行开发或者使用已有的程序,从而打造出富有特色的Android平台。
               Android的体系架构
               Android采用了软件堆层的架构,一共分为四层,自下向上分别是Linux内核层、系统运行库层、应用框架层和应用层,如下图所示。
               
               Android体系结构
               ①Linux内核层。
               Android基于Linux 2.6内核提供系统的核心服务,如安全性、内存管理、进程管理、网络协议栈和驱动模型。内核层的驱动包括显示驱动、键盘驱动、Flash内存驱动、照相机驱动、音频驱动、蓝牙驱动、Wi-Fi驱动、Binder IPC驱动、Power Manager驱动。其中,Binder IPC驱动用来提供进程之间通信的功能。
               系统运行库层主要包括两个部分,一是程序库(Libraries),二是Android运行库(RunTime)。程序库通过Android应用程序框架为开发者提供服务,主要包括以下几种。
               . 系统C库。从BSD继承而来的标准C系统函数库,是专门为基于嵌入式的Linux设备制定的。
               . 媒体库。该库支持多种常用的音频、视频格式的回放和录制,同时支持静态图像文件。编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。
               . Surface Manager。用于管理、显示子系统,并为多个应用程序提供2D和3D图形层的无缝融合。
               . LibWebCore。Web浏览器引擎,支持Android浏览器和可嵌入的Web视图。
               . SGL。底层的2D图形引擎。
               . 3D libraries。基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速或者高度优化的3D软加速。
               . FreeType。位图和矢量字体显示。
               . SQLite。轻量级的关系型数据库。
               所有Android应用程序都运行在它自己的进程中,该进程是一个Dalvik虚拟机的实例。Dalvik虚拟机是由Google公司自主研发的,它被设计成一个设备,可以同时高效地运行多个虚拟系统。Dalvik在保证API兼容的同时,针对移动手机进行了优化,以占用更小的资源,提高了运行效率。Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制和内存管理机制。
               Android应用程序的开发基于应用程序框架(Application Framework)和组件,开发人员拥有同核心应用程序一样的APIs访问权限。应用程序后面是一系列的服务和系统,其中包括以下几种。
               . 视图(Views)。构造应用程序的视图部分,包括列表(Lists)、文本框(Textboxes)、按钮(Buttons)等。
               . 内容提供器(Content Providers)。提供一种实现数据互访和共享的机制。
               . 资源管理器(Resources Marager)。负责管理非代码的访问,如本地字符串、图片资源及涉及布局的XML文件。
               . 通知管理器(Notification Manager)。用于将提示信息显示在状态栏上。例如,当收到短信的时候在状态栏上显示新信息。
               . 活动管理器(Activity Manager)。用于管理应用程序的生命周期,并提供应用页面的退出机制。
               ②应用程序(Application)。
               Android的应用程序通常涉及用户界面和用户交互。Android本身提供了桌面(Home)、联系人(Contact)、电话(Phone)和浏览器(Browsers)等众多的核心应用。所有核心应用都使用Java编写,开发者可以使用应用程序框架层的API实现自己的程序,这也是Android开源优势的体现。
               从总体架构上看,Android平台显示出了自身的特点,如集成了WebKit浏览器、Dalvik虚拟机等模块。这些模块的应用也成为Android开发的焦点,开发者可以利用Android提供的模块接口开发出具有特色的应用程序。
 
       开发人员
        ①多媒体软件:项目负责人、学科教学专家、教学设计专家、软件工程师、多媒体素材制作专家和多媒体课件制作专家。
        ②多媒体电子出版物:策划编导、文字编辑、美术编辑、音乐编辑和多媒体编辑。
 
       类库
        C++标准库可以分为标准函数库和类库两部分。标准函数库继承自C语言,是由通用的、独立的、不属于任何类的函数组成的。面向对象类库是类及其相关函数的集合。
        C++类库种类繁多,所解决的问题也极其广泛,列举如下:
        (1)STL:C++标准模板库,是一个具有工业强度的,高效的C++程序库。该库提供一些非常实用的容器和算法。
        (2)Boost:C++准标准库,由C++标准委员会库工作组成员发起的,开源跨平台,作为标准库的后备,是C++标准化进程的开发引擎之一。
        (3)MFC:微软基础类库,以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
        (4)Qt:由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。也可用于开发非GUI程序,例如控制台工具和服务器。
 
       系统架构
               客户机/服务器系统
               C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到客户机端和服务器端来实现,降低了系统的通信开销。目前大多数应用软件系统都是客户机/服务器形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和客户机/服务器应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
               浏览器/服务器系统
               B/S (Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(浏览器)实现,但是主要事务逻辑在服务器端(服务器)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握,成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(如LAN,WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
               多层分布式系统(Multi-tier System)
               (1)概念。
               随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。在多层体系中,各层次按照以下方式进行划分,实现明确分工:
               ①瘦客户:提供简洁的人机交互界面,完成数据的输入/输出。
               ②业务服务:完成业务逻辑,实现客户与数据库对话的桥梁。同时,在这一层中,还应实现分布式管理、负载均衡、Fail/Recover、安全隔离等。
               ③数据服务:提供数据的存储服务。一般就是数据库系统。
               (2)多层系统主要特点。
               多层系统主要特点是:
               .安全性。中间层隔离了客户直接对数据服务器的访问,保护了数据库的安全。
               .稳定性。对于要求24×7工作的业务系统,多层分布式体系提供了更可靠的稳定性。一是中间层缓冲Client与数据库的实际连接,使数据库的实际连接数量远小于Client应用数量。当然,连接数越少,数据库系统就越稳定。二是Fail/Recover机制能够在一台服务器宕机的情况下,透明地把客户端工作转移到其他具有同样业务功能的服务上。
               .易维护。由于业务逻辑在中间服务器,当业务规则变化后,客户端程序基本不做改动。
               .快速响应。通过负载均衡以及中间层缓存数据能力,可以提高对客户端的响应速度。
               .系统扩展灵活。基于多层分布体系,当业务增大时,可以在中间层部署更多的应用服务器,提高对客户端的响应,而所有变化对客户端透明。
               (3)多层系统举例。
               目前最为流行的两类多层应用架构为Sun的J2EE和Microsoft.Net,下面简单介绍J2EE的多层架构。
               
               J2EE多层应用架构
               (4)客户层。
               客户层用于与企业信息系统的用户进行交互以及显示根据特定商务规则进行计算后的结果。基于J2EE规范的客户端可以是基于Web的,也可以是不基于Web的独立(Stand Alone)应用程序。
               在基于Web的J2EE客户端应用中,用户在客户端启动浏览器后,从Web服务器中下载Web层中的静态HTML页面或由JSP或Servlets动态生成的HTML页面。
               在不基于Web的J2EE客户端应用中,独立的客户端应用程序可以运行在一些基于网络的系统中,例如手持设备或汽车电话等。同样,这些独立的应用也可以运行在客户端的Java Applet中。这种类型的客户端应用程序可以在不经过Web层的情况下直接访问部署在EJB容器(EJB Container)中的EJB组件。
               (5) Web层。
               J2EE规范定义的Web层由JSP页面、基于Web的Java Applets以及用于动态生成HTML页面的Servlets构成。这些基本元素在组装过程中通过打包来创建Web组件。运行在Web层中的Web组件依赖Web容器来支持诸如响应客户请求以及查询EJB组件等功能。
               (6)业务层。
               在基于J2EE规范构建的企业信息系统中,将解决或满足特定业务领域商务规则的代码构建成为业务层中的Enterprise JavaBean (EJB)组件。EJB组件可以完成从客户端应用程序中接收数据、按照商务规则对数据进行处理、将处理结果发送到企业信息系统层进行存储、从存储系统中检索数据以及将数据发送回客户端等功能。
               部署和运行在业务层中的EJB组件依赖于EJB容器来管理诸如事务、生命期、状态转换、多线程及资源存储等。这样由业务层和Web层构成了多层分布式应用体系中的中间层。
               (7)企业信息系统层。
               在企业应用系统的逻辑层划分中,企业信息系统层通常包括企业资源规划(ERP)系统、大型机事务处理(Mainframe Transaction Processing)系统、关系数据库系统(RDMS)及其他在构建J2EE分布式应用系统时已有的企业信息管理软件。
   题号导航      2020年下半年 电子商务设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第56题    在手机中做本题