搜档网
当前位置:搜档网 › 基于Bluez的应用程序的开发

基于Bluez的应用程序的开发

基于Bluez的应用程序的开发
基于Bluez的应用程序的开发

Linux下Bluez的编程实现

1、蓝牙的各个协议栈的简介 (2)

1.1、蓝牙技术 (2)

1.1、蓝牙协议栈 (2)

1.2、蓝牙技术的特点 (3)

1.2.1、蓝牙协议栈体系结构 (3)

1.2.2、蓝牙协议栈低层模块 (4)

1.2.3、软件模块 (5)

1.3、蓝牙的一些Profile (5)

2、Bluez和D-Bus (7)

2.1、Bluez和D-Bus体系结构 (7)

2.2、D-Bus介绍 (8)

2.3、Bluez的安全接口 (12)

2.4、Bluez适配器接口 (15)

2.5、Bluez配对 (16)

2.6、Bluez绑定 (16)

3、Bluez编程实现 (17)

3.1、蓝牙开发关键技术剖析 (17)

3.1.1、连接机制分析 (17)

3.1.2、自动连接 (18)

3.1.3、时钟设计 (18)

3.1.4、配对列表管理 (19)

3.1.5、蓝牙文件传输模式 (20)

3.2、hci层介绍 (20)

3.2.1、hci层介绍 (20)

3.2.2、hci层编程 (20)

3.3、L2CAP层编程 (25)

3.3.1、L2CAP协议简介 (25)

3.3.2、L2CAP编程方法 (25)

3.4、SDP协议简介 (26)

4、Openobex (28)

4.1、Openobex简介 (28)

4.2、Openobex与bluez编程实现 (29)

5、Obexftp (31)

5.1、obexftp简介 (31)

5.2、基于Obexftp的应用程序开发 (31)

6、参考资料 (32)

1、蓝牙的各个协议栈的简介

1.1、蓝牙技术

蓝牙(Bluetooth)技术是由Ericsson、IBM、Intel、Nokia和Toshiba公司于1998年5月共同提出开发的,并联合成立了蓝牙特殊利益小组(SIG),负责开发无线协议规范并设定交互操作的需求。其本质是设备间的无线链接,意在于代替有线电缆。

1.1、蓝牙协议栈

协议栈是指一组协议的集合,举个例子,把大象装到冰箱里,总共要3步。每步就是一个协议,3步组成一个协议栈。把应用层数据包发出去,也要好几步,TCP/UDP头,IP头,ether头,每步也是一个协议。另外每层都有一些特殊的协议。所有这些统称协议栈。蓝牙协议栈就是SIG定义的一组协议的规范,目标是允许遵循规范的蓝牙应用能够进行相互间操作,如图1.1蓝牙协议栈

图1.1 蓝牙协议栈

在蓝牙协议体系中,底层、中间层、应用层按序排列构成了蓝牙协议栈,如左图所示。底层(硬件层)和中间协议层(软件层)之间的接口使用主机控制器接口(HCI)。HCI是软硬件之间必不可少的

接口,其功能是解释并传递两层之间的

消息和数据。软件通过HCI调用底层

LMP/BB和RF等硬件。HCI以下的功能

由蓝牙设备实施;HCI以上的功能由软

件运行,在主机上实现。HCI对于上、

下两层数据的传输都是透明的。

在蓝牙协议栈中,最主要的是蓝牙核

心协议,包括基带协议(BP)、链路管理

协议(LMP)、链接控制和适配协议

(L2CAP)、服务发现协议(SDP)等。蓝牙

设备基本上都需要核心协议,其他协议

则按蓝牙设备的需要而选定。

1.2、蓝牙技术的特点

1.2.1、蓝牙协议栈体系结构

整个蓝牙协议体系结构可分为底层硬件模块、中间协议层和高端应用层三大部分。链路管理层(LMP)、基带层(BBP)和蓝牙无线电信道构成蓝牙的底层模块。BBP层负责跳频和蓝牙数据及信息帧的传输。

LMP层:负责连接的建立和拆除以及链路的安全和控制,它们为上层软件模块提供了不同的访问人口,但是两个模块接口之间的消息和数据传递必须通过蓝牙主机控制器接口的解释才能进行。也就是说,中间协议层包括逻辑链路控制与适配协议(L2CAP)、服务发现协议(SDP)、串口仿真协议(RFCOMM)和电话控制协议规范(TCS)。

L2CAP:完成数据拆装、服务质量控制、协议复用和组提取等功能,是其他上层协议实现的基础,因此也是蓝牙协议栈的核心部分。

SDP:为上层应用程序提供一种机制来发现网络中可用的服务及其特性。在蓝牙协议栈的最上部是高端应用层,它对应于各种应用模型的剖面,是剖面的一部分。目前定义了13种剖面。

1.2.2、蓝牙协议栈低层模块

蓝牙的低层模块是蓝牙技术的核心,是任何蓝牙设备都必须包括的部分。

蓝牙工作在2.4GHZ的ISM频段。采用了蓝牙结束的设备讲能够提供高达720kbit/s 的数据交换速率。

蓝牙支持电路交换和分组交换两种技术,分别定义了两种链路类型,即面向连接的同步链路(SCO)和面向无连接的异步链路(ACL)。

为了在很低的功率状态下也能使蓝牙设备处于连接状态,蓝牙规定了三种节能状态,即停等(Park)状态、保持(Hold)状态和呼吸(Sniff)状态。这几种工作模式按照节能效率以升序排依次是:Sniff模式、Hold模式、Park模式。

蓝牙采用三种纠错方案:1/3前向纠错(FEC)、2/3前向纠错和自动重发(ARQ)。前向纠错的目的是减少重发的可能性,但同时也增加了额外开销。然而在一个合理的无错误率环境中,多余的投标会减少输出,故分组定义的本身也保持灵活的方式,因此,在软件中可定义是否采用FEC。一般而言,在信道的噪声干扰比较大时蓝牙系统会使用前向纠错方案,以保证通信质量:对于SCO链路,使用1/3前向纠错;对于ACL链路,使用2/3前向纠错。在无编号的自动请求重发方案中,一个时隙传送的数据必须在下一个时隙得到收到的确认。只有数据在收端通过了报头错误检测和循环冗余校验(CRC)后认为无错时,才向发端发回确认消息,否则返回一个错误消息。

蓝牙系统的移动性和开放性使得安全问题变得及其重要。虽然蓝牙系统所采用的调频技术就已经提供了一定的安全保障,但是蓝牙系统仍然需要链路层和应用层的安全管理。在链路层中,蓝牙系统提供了认证、加密和密钥管理等功能。每个用户都有一个个人标识码(PIN),它会被译成128bit的链路密钥(Link Key)来进行单双向认证。一旦认证完毕,链路就会以不同长度的密码(Encryphon Key)来加密(此密码以shit为单位增减,最大的长度为128bit)链路层安全机制提供了大量的认证方案和一个灵活的加密方案(即允许协商密码的长度)。当来自不同国家的设备互相通信时,这种机制是极其重要的,因为某些国家会指定最大密码长度。蓝牙系统会选取微微网中各个设备的最小的最大允许密码长度。例如,美国允许128bit的密码长度,而西班牙仅允许48bit,这样当两国的设备互通时,将选择48bit来加密。蓝牙系统也支持高层协议栈的不同应用体内的特殊的安全机制。例如两台计算机在进行商业卡信息交流时,一台计算机就只能访问另一台计算机的该项业务,而无权访问其他业务。蓝牙安全机制依赖PIN在设备间建立信任关系,一旦这种关系建立起来了,这些PIN就可以存储在设备中以便将来

更快捷地连接。

1.2.3、软件模块

L2CAP是数据链路层的一部分,位于基带协议之上。L2CAP向上层提供面向连接的和无连接的数据服务,它的功能包括:协议的复用能力、分组的分割和重新组装(Segmentation And Reaassembly)以及提取(Group Abstraction)。L2CAP允许高层协议和应用发送和接受高达64K Byte的数据分组。

SDP为应用提供了一个发现可用协议和决定这些可用协议的特性的方法。蓝牙环境下的服务发现与传统的网络环境下的服务发现有很大的不同,在蓝牙环境下,移动的RF环境变化很大,因此业务的参数也是不断变换的。SDP将强调蓝牙环境的独特的特性。蓝牙使用基于客户/服务器机制定义了根据蓝牙服务类型和属性发现服务的方法,还提供了服务浏览的方法。

RFCOMM是射频通信协议,它可以仿真串行电缆接口协议,符合ETSI0710串口仿真协议。通过RFCOMM,蓝牙可以在无线环境下实现对高层协议,如PPP、TCP/IP、WAP等的支持。另外,RFCOMM可以支持AT命令集,从而可以实现移动电话机和传真机及调制解调器之间的无线连接。

蓝牙对语音的支持是它与WLAN相区别的一个重要的标志。蓝牙电话控制规范是一个基于ITU-T建议Q.931的采用面向比特的洗衣,它定义了用于蓝牙设备间建立语音和数据呼叫的呼叫控制信令以及用于处理蓝牙TCS设备的移动性管理过程。

1.3、蓝牙的一些Profile

蓝牙里面profile的定义,profile既是配置文件,配置文件定义了可能的应用,蓝牙配置文件表达了一般行为,蓝牙设备可以通过这些行为与其它设备进行通信。蓝牙技术定义了广泛的配置文件,描述了许多不同类型的使用案例。按照蓝牙规格中提供的指导,开发商可以创建应用程序以与其它符合蓝牙规格的设备协同工作。到目前为止,蓝牙一共有22个profile,在https://www.sodocs.net/doc/d714009675.html,上有详细的文档说明。

已经实现了的协议栈:

Widcomm: 第一个windows上的协议栈,由Widcomm公司开发,也就是现在的Broadcom .

Microsoft Windows stack: Windows XP SP2中包括了这个内建的协议栈,开发者也可以调用其API开发第三方软件。

Toshiba stack: 它也是基于Windows的,不支持第三方开发,但它把协议栈授权给一些laptop商)。它支持的Profile有:SPP, DUN, FAX, LAP, OPP, FTP, HID, HCRP, PAN, BIP, HSP, HFP , A2DP, A VRCP, GA VDP)

BlueSoleil: 著名的IVT公司的产品,这个应该是个中国公司。该产品可以用于

桌面和嵌入式,他也支持第三方开发,DUN, FAX, HFP, HSP, LAP, OBEX, OPP, PAN SPP, A V, BIP, FTP, GAP, HID, SDAP, and SYNC。

Bluez: Linux官方协议栈,该协议栈的上层用Socket封装,便于开发者使用,通过DBUS与其它应用程序通信。

Affix: NOKIA公司的协议栈,在Symbian系统上运行。

BlueDragon:东软公司产品,支持的Profile:SDP、Serial-DevB、A VCTP、A VRCP-Controller、A VRCP-Target、Headset-AG、Headset-HS、OPP-Client、OPP-Server、CT-GW、CT-Term、Intercom、FT-Server、FT-Client、GAP、SDAP、Serial-DevA、A VDTP、GA VDP、A2DP-Source、A2DP-Sink。

BlueMagic:美国Open Interface 公司for portable embedded divce的协议栈,iphone(apple),nav-u(sony)等很多电子产品都用该商业的协议栈,BlueMagic 3.0是第一个通过bluetooth 协议栈1.1认证的协议栈,那么我现在就在用它,那么该栈用起来简单,API清晰明了。实现了的profile 有:HCI,L2CAP,RFCOMM,A/V,Remote,Control,A/V,Streaming,BIP,BPP,DUN,FAX,F TP,GAP,Hands-Free,and,Headset,HCRP,HID,OBEX,OPP,PAN,BNEP,PBAP,SAP,SPP, Synchronization,SyncML,Telephony,XML.

BCHS-Bluecore Host Software: 蓝牙芯片CSR的协议栈,同时他也提供了一些上层应用的Profile的库。

Windows CE:微软给Windows CE开发的协议栈,但是windows ce本身也支持其它的协议栈。

BlueLet:IVT公司for embedded product的清量级协议栈。

2、Bluez和D-Bus

2.1、Bluez和D-Bus体系结构

The BlueZ D-Bus interfaces aim to provide seamless Bluetooth technology integration into the desktop. A central Bluetooth daemon "hcid"(planned to be renamed to bluetoothd) is responsible for take care of all tasks that can’t or shouldn’t be handled inside the Linux kernel. These jobs include PIN code and link key management for the authentication and encryption, caching of device names and services and also central control of the Bluetooth hardware. The interface exported allows to abstract the internals of GNOME, KDE, Maemo, OpenMoko, ... applications from any technical details of the Bluetooth specification. Even other application will get access to the Bluetooth technology without any hassle.

Bluez和D-bus接口,提供了蓝牙技术和桌面系统的完美集成。蓝牙的中心守护进程hcid的职责就是处理那些不能被linux内核处理的任务,包括处理为鉴权和加密过程中需要的PIN码和密钥、缓存设备的名称和服务类型,同时也是蓝牙硬件的控制中心。

The BlueZ D-Bus services are exported through the system message bus. Every D-Bus enabled desktop has a system message bus instance running. This bus is used to broadcast system events, such as new hardware devices, network connection status, and so forth. The session message bus is not suitable for this architecture since the Bluetooth hardware/connections are shared by all desktop sessions.

Bluez和D-bus服务通过系统消息总线提供。每个D - Bus使桌面有一个系统消息总线实例运行。这个bus是用来广播系统时间,如新的硬件设备、网络连接状态等等。会话消息总线对这种体系结构是不适合的,因为蓝牙硬件/连接被所有桌面会话共享。

The BlueZ D-Bus Architecture goal are:

?Abstract Bluetooth HCI commands/events。

?Provide an easy interface to setup Bluetooth adapter and manage the services Bluez和D-bus体系结构的目标:

●抽象hci层命令和事件。

●提供简单的接口来启动蓝牙适配器和管理蓝牙服务。

The hcid is the main entity of the architecture. It implements methods to setup the Bluetooth adapters, retrieve remote device properties, control the pairing procedure and control the services registration/searches. The following figure shows a high level relationship between the entities.

Hcid是该体系结构的主体。它实现启动蓝牙适配器的方法、获取远端设备属性、控制配对过程和控制服务的注册和搜索。下图显示了一个高层次的实体之间的关系。

2.2、D-Bus介绍

什么是D-Bus?

D-BUS 是一种进程间通信的方式,从架构上来说,分为三层:

①一个库,libdbus,允许2个进程间交换信息。

②一个消息总线守护进程,它使用libdbus库。其他进程都可以与它连接。它

可以将消息从一个进程发给另外任意数量的其他进程。现在有一些基于特定应用框架的dbus库函数封装,例如libdbus-glib 和libdbus-qt,也有与一些语言绑定的

形式,例如Python等。这些封装的API旨在令D-BUS编程更加简单,libdbus倾向于提供更低层次的调用。很多libdbus API只在绑定的组件中可用。

③libdbus仅支持一对一的连接,就像原始socket通讯方式一样。但它传递的不是以字节为单位的数据流,而是具有一定意义的消息包。消息的消息头部表示消息种类,消息体用来装载数据。Libdbus也可以允许实现特定的传输通道,从而来完成比如像认证之类的应用细节(libdbus also abstracts the exact transport used (sockets vs. whatever else), and handles details such as authentication.)。

消息总线守护进程将D-bus上连接的所有程序构成一个轮形hub。Libdbus为中心,它和应用程序建立一对一的连接。每个应用程序通过通道发送消息到消息总线,然后总线进程将消息转发到其他连接到hub的应用程序。可以把消息总线理解为一个路由器。Dbus服务在一个操作系统中存在多个进程。第一个进程是一个全局进程,就如sendmail 或Apache 的系统守护进程一样。这个进程具有高度的安全限制,一般用于系统进程间的通讯。其他的dbus进程都是用户进程,针对于每个登录的用户建立。这些实例允许用户会话中的应用程序相互通信。Dbus 全局进程和用户进程是相互独立的,他们并没有内在的依赖关系。

D-Bus应用

有很多种IPC或者网络通信系统,如:CORBA,DCE,DCOM,DCOP,XML-RPC,SOAP,MBUS,ICE等。Dbus的目的主要是下面两点:

1、在同一个桌面会话中,进行桌面应用程序之间的通讯。

2、桌面程序和内核或者守护进程之间通信。

D-Bus概念

对象路径(Native Objects and Object Paths):D-Bus的底层接口,和libdbus相关,它提供一种叫对象路径(object path),用于让高层接口绑定到各个对象中去,允许远端应用程序指向他们。Object path就像一个文件路径。

方法和信号(Methods and Signals):每个对象都有一些成员,有两种成员:方法(methods)和信号(signals),在对象中,方法可以被调用。信号会被广播,感兴趣的对象可以处理这个信号,同时信号中也可以带有相关的数据。

接口(Interfaces):每个对象都有一个或者多个接口,一个接口就是多个方法和信号的集合。这个概念和Glib, Qt或者Java中的是一致的。接口定义了对象实例的类型。dbus使用简单的命名空间字符串来表示接口,如

org.freedesktop.Introspectable。可以说dbus接口相当于C++中的纯虚类。

代理(Proxies):使用代理对象就是让调用者感觉在直接使用远程对象一样。d-bus 的底层接口完成了一些比较低级和繁琐的调用过程,比如必须先调用创建方法形成消息包,然后发送,然后等待接受和处理返回的消息。所以,高层的接口就可

以使用代理对象提供的接口屏蔽这些细节。所以,当调用代理对象的方法时,代理内部会转换成dbus的方法调用,等待消息返回,对返回结果解包,返回给相应的方法。可以看看下面的例子,使用dbus底层接口编写的代码:

Message message = new Message(”/remote/object/path”, “MethodName”, arg1,

arg2);

Connection connection = getBusConnection();

connection.send(message);

Message reply = connection.waitForReply(message);

if (reply.isError()) {

} else {

Object returnValue = reply.getReturnValue();

}

使用代理对象编写的代码:

Proxy proxy = new Proxy(getBusConnection(), “/remote/object/path”);

Object returnValue = proxy.MethodName(arg1, arg2);

客户端代码减少很多。

总线名称(Bus Names):当一个应用程序连接上bus daemon时,daemon会分配一个唯一的名字给它。以冒号(:)开始,这些名字在daemon的生命周期中是不会改变的,可以认为这些名字就是一个IP地址。当这个名字映射到应用程序的连接上时,应用程序可以说拥有这个名字。同时应用可以声明额外的容易理解的名字,比如可以取一个名字com.mycompany.TextEditor,可以认为这些名字就是一个域名。其他应用程序可以往这个名字发送消息,执行各种方法。

名字还有第二个重要的用途,可以用于跟踪应用程序的生命周期。当应用退出(或者崩溃)时,与bus的连接将被OS内核关掉,bus将会发送通知,告诉剩余的应用程序,该程序已经丢失了它的名字。名字还可以检测应用是否已经启动,这可以用来实现单实例启动程序。

地址(Addresses):使用d-bus的应用程序既可以是server也可以是client,server 监听到来的连接,client连接到server,一旦连接建立,消息就可以流转。如果

使用dbus daemon,所有的应用程序都是client,daemon监听所有的连接,应用程序初始化连接到daemon。dbus地址指明server将要监听的地方,client将要连接的地方,例如,地址:unix:path=/tmp/abcdef表明server将在/tmp/abcdef路径下监听unix域的socket,client也将连接到这个socket。一个地址也可以指明是TCP /IP的socket,或者是其他的。

当使用bus daemon时,libdbus会从环境变量中

(DBUS_SESSION_BUS_ADDRESS)自动认识“会话daemon”的地址。如果是系统daemon,它会检查指定的socket路径获得地址,也可以使用环境变量(DBUS_SESSION_BUS_ADDRESS)进行设定。当dbus中不使用daemon时,需要定义哪一个应用是server,哪一个应用是client,同时要指明server的地址,这不是很通常的做法。

D-bus工作原理

Calling a Method – Behind the Scenes

在dbus中调用一个方法包含了两条消息,进程A向进程B发送方法调用消息,进程B向进程A发送应答消息。所有的消息都由daemon进行分派,每个调用的消息都有一个不同的序列号,返回消息包含这个序列号,以方便调用者匹配调用消息与应答消息。调用消息包含一些参数,应答消息可能包含错误标识,或者包含方法的返回数据。

方法调用的一般流程:

1.使用不同语言绑定的dbus高层接口,都提供了一些代理对象,调用其他进程里面的远端对象就像是在本地进程中的调用一样。应用调用代理上的方法,代理将构造一个方法调用消息给远端的进程。

2.在DBUS的底层接口中,应用需要自己构造方法调用消息(method call message),而不能使用代理。

3.方法调用消息里面的内容有:目的进程的bus name,方法的名字,方法的参数,目的进程的对象路径,以及可选的接口名称。

4.方法调用消息是发送到bus daemon中的。

5.bus daemon查找目标的bus name,如果找到,就把这个方法发送到该进程中,否则,daemon会产生错误消息,作为应答消息给发送进程。

6.目标进程解开消息,在dbus底层接口中,会立即调用方法,然后发送方法的应答消息给daemon。在dbus高层接口中,会先检测对象路径,接口,方法名称,然后把它转换成对应的对象(如GObject,QT中的QObject等)的方法,然后

再将应答结果转换成应答消息发给daemon。

7.bus daemon接受到应答消息,将把应答消息直接发给发出调用消息的进程。

8.应答消息中可以包容很多返回值,也可以标识一个错误发生,当使用绑定时,应答消息将转换为代理对象的返回值,或者进入异常。

bus daemon不对消息重新排序,如果发送了两条消息到同一个进程,他们将按照发送顺序接受到。接受进程并需要按照顺序发出应答消息,例如在多线程中处理这些消息,应答消息的发出是没有顺序的。消息都有一个序列号可以与应答消息进行配对。

Emitting a Signal – Behind the Scenes

在dbus中一个信号包含一条信号消息,一个进程发给多个进程。也就是说,信号是单向的广播。信号可以包含一些参数,但是作为广播,它是没有返回值的。

信号触发者是不了解信号接受者的,接受者向daemon注册感兴趣的信号,注册规则是”match rules”,记录触发者名字和信号名字。daemon只向注册了这个信号的进程发送信号。

信号的一般流程如下:

1.当使用dbus底层接口时,信号需要应用自己创建和发送到daemon,使用dbus高层接口时,可以使用相关对象进行发送,如Glib里面提供的信号触发机制。

2.信号包含的内容有:信号的接口名称,信号名称,发送进程的bus name,以及其他参数。

3.任何进程都可以依据”match rules”注册相关的信号,daemon有一张注册的列表。

4.daemon检测信号,决定哪些进程对这个信号感兴趣,然后把信号发送给这些进程

5.每个进程收到信号后,如果是使用了dbus高层接口,可以选择触发代理对象上的信号。如果是dbus底层接口,需要检查发送者名称和信号名称,然后决定怎么做。

2.3、Bluez的安全接口

pin_helper concept has been removed starting with bluez-utils 3.X. and has been replaced with a feature called passkey agents. An application that wants to handle passkey requests must use the "hcid" security interface to register a passkey agent. Currently, two types of passkey agents are supported: default and device specific. A "specific" passkey agent handles all passkey requests for a given remote device while a default handles all requests for which a specific agent was not found. "specific" passkey agents are useful to address pre-defined passkey values or environments where the user interaction is not allowed/difficult.

When the CreateBonding method is called the "hcid" daemon will verify if there is a link key stored in the file system. If it is available an error is returned, and if not, a D-Bus message is sent to the registered passkey agent asking for a passkey.

Each Passkey Agent is represented by a D-Bus object path. The "hcid"

distinguishes the agents based on their unique bus names and their object paths.

Pin_help的理念在bluez-util 3.x时已经被移除,并被密钥代理所代替。任何想处理密钥请求的应用程序必须使用hcid安全接口来注册密钥代理。现在支持两种类型的密钥代理:默认和设备特定。一个"特定"的密钥代理处理所有远端的密钥请求,一个默认的密钥代理,处理特定的代理所没有发现的所有密钥请求。

"特定"的密钥代理对处理那些和用户交互困难或者不允许用户交互的设备的预定义的密钥值或环境非常有用。

当CreateBonding方法被调用时,hcid守护进程将确认当前的文件系统中是否保存了链接密钥,若可以找到,就返回一个错误。若找不到,D-Bus消息将被发出来为密钥请求的设备,注册一个密钥代理。每个密钥代理被D-Bus对象路径所体现,hcid依据唯一的总线名称和对象路径来区分代理。

Architecture

?Step 1: Represents the passkey agent registration

?Step 2: Represents a client calling CreateBonding

?Step 3: Represents the hcid asking for a passkey valu

体系结构

●第一步:表示密钥代理注册

●第二步:表示客户调用CreateBonding

●第三步:代表hcid请求密钥值。

Message Flow

In the following figure, the "CreateBonding" method call is hidden. The "PIN Request" HCI event is generated when there is not a link available in the file system.

In this case "Link Key Request Negative Reply" command is sent triggering the "Pin Request" event.

在下面得图表中,CreateBonding方法的调用被隐藏。当没有一个可用链接时,"PIN Request"HCI层事件被产生,在这种情况下,"Link Key Request Negative Reply"命令被发送来回应"Pin Request" 事件。

?Step 1: Represents the D-Bus message sent to register the default/device specific passkey agent.

?Step 2: Represents the HCI "PIN Request" event sent by the Bluetooth Host Controller.

?Step 3: Represents the D-Bus message sent to the default/device speficic passkey agent requesting a passkey.

?Step 4: Represents the "Auth Complete" event where the status contains "LMP Response Timeout"(The remote didn't type the passkey).

?Step 5: Represents the "hcid" issuing a "Cancel" to a previous Request call.

?Step 6: Represents the D-Bus message sent to release the passkey agent: basically sent when the hcid exits.

●第一步:D-Bus发送消息来注册默认的或者特定的密钥代理。

●第二步:蓝牙主机控制器发送HCI 层"PIN Request"事件。

●第三步:D-Bus发送消息到默认的或者特定的密钥代理,请求密钥。

●第四步:"Auth Complete"完成事件,如果这种状态包含"LMP Response

Timeout"。

●第五步:hcid发出“Cancel”命令给D-Bus。

●第六步:当hcid退出时,D - Bus的信息发送到释放密钥代理

2.4、Bluez适配器接口

Description?

The "Adapter" interface provides methods to setup the local adapter(s), search remote devices, pairing and search for services.

This interface is considered stable and no change is planned.

For each available adapter the hcid register an adapter object instance provided in the path "/org/bluez/hci{0, 1, 2, ...}".

适配器接口提供,启动适配器、搜索设别、配对、和搜索服务的方法。这个接口被认为是稳定的,没有改变计划。对每个可用的适配器,hcid为其注册一个适配器对象实例,在路径"/org/bluez/hci{0, 1, 2, ...}"里。

2.5、Bluez配对

Description

Services that need ask the user to accept/reject an operation such as accept OBEX objects or accept an incoming connection can use the Security API to request the userspace registered authorization agent responsible.

Development warnings/recommendations

1Just one Authorization request per time is allowed.

2NotConnected error is returned if a connection is not found between the

devices is not found.

Trusted Devices

The BlueZ daemon keeps a list of trusted devices. Trusted means that authorization is

not required to accept incoming connections or other operations that need the user response. Once a given device is added to the list, the BlueZ daemon will reply authorized without call the Authorization agent.

Authorization Agent

Authorization agents are applications responsible for address authorization requests.

For more information check the BlueZ D-Bus API and implementation references: ?utils/daemon/auth-agent.c is a authorization agent implementation able to

handle device specific and default

?bluez-gnome passkey/authorization agent implementation distributed by the BlueZ community

Canceling

For security reason, only the requestor can cancel a pending authorization operation.

2.6、Bluez绑定

Description

The purpose of bonding is to create a relation between two Bluetooth devices based on a common link key (a bond). The link key is created and exchanged(pairing) during the bonding procedure and is expected to be stored by both Bluetooth devices, to be used for future authentication[definition from Bluetooth Core Spec].

The Bonding procedure is done through the BlueZ Adapter interface.

Development warnings/recommendations

1Just one Bonding request per time is allowed.

2Bonding is not allowed if there is a discovery running.

3Pending remote name is canceled if a CreateBonding message is received.

4The Bonding takes some seconds, therefore it is recommended set a D-Bus

callback to handle the message reply for this operation.

Passkey Agent

Currently, two types of passkey agents are supported:

5Device Specific: handles all passkey requests for a given remote device

6Default: Handles the remaining requests(not addressed by device specific agents)

For more information check the BlueZ D-Bus API and implementation references: ?utils/daemon/passkey-agent.c is a passkey agent implementation able to

handle device specific and default

?bluez-gnome passkey agent implementation distributed by the BlueZ community=

3、Bluez编程实现

3.1、蓝牙开发关键技术剖析

3.1.1、连接机制分析

物理信道(physical channel)是蓝牙系统的最底层结构,通过伪随机跳频序列、发送时槽定时、接入码及帧头编码来表征。蓝牙针对不同应用定义了一系列物理信道,包括用于匹克网内设通信的匹克网物理信道、用于寻呼设备的寻呼扫描物理信道和用于查找设备的查找扫描物理信道。两台设备必须采用相同的物理信道才能进行通信。

主从设备建立连接的过程就是建立相同匹克网信道的过程,该过程确保主从设备以同样的定时和次序进行载波频率的跳变,进行数据传输,同时可以根据匹

克网接入码和帧头编码进行数据过滤和解析,避免和其他设备在同一个频段上的相撞。

寻呼扫描物理信道(page scan physical channel)用于主设备寻呼从设备,是设备建立连接的必经阶段。寻呼扫描跳频序列和寻呼请求帧的设备接入码(DAC)

是由从设备物理地址运算,处于可被连接模式的从设备以固定的周期(由page scan interval决定)在一个固定的时间窗(由page scan window决定)内以某个跳频频率监听主设备的寻呼请求。

3.1.2、自动连接

为了方便用户的使用,大多蓝牙设备都实现了自动连接功能,根据以上对蓝牙连接机制的分析,设计自动连接方案时必须考虑设备在不同的工作状态下采用不同的物理信道和跳频序列,而不能按照人为的逻辑随意设置,否则会给用户带来不便。

以车载免提装置为例,上电自动连接对驾驶员来说可以提高使用车载免提的自觉性,降低行车期间通话带来的风险。采用搜索方式判断设备是否在有效范围内,按照优先级从低到高连接,最后一次连接的手机为优先级最高的,然后按照配对列表的逆序而优先级依次降低。链路丢失后的自动连接只针对最后一部手机,这样可以实现服务的连续性。

3.1.3、时钟设计

蓝牙核心规范要求时钟频率精度为±20ppm,如果载波频率不稳定,则会发生“过零点”错误(zero-cross)。载波频率由本地时钟(晶振)做为PLL的参考时钟倍频产生。一般说来,蓝牙设备的时钟设计便是指晶振电路的设计及微调。决定晶振工作精度的两个重要参数是制造公差和温度稳定度,如果选择有源晶振作为本地时钟,需要满足:制造公差+温度稳定度≤±20ppm,有源晶振内部集成晶体和相应的振荡电路,匹配精确,频率稳定性高,而且抗干扰性能好,缺点是成本较高。

图1 震荡电路设计

本文自行设计的振荡电路如图1所示。

选择温度稳定性高、制造公差低的高精度晶体,通过振荡电路设计实现谐振频率的精确调整,这是由晶体负载电容的匹配及可调实现的。负载电容是指CRY_IN 和CRY_OUT两端的电容值,在晶体的CRY_IN引脚上并联一个可调电容,调整该电容便可以对谐振频率进行精密微调。晶体负载电容计算公式如下:Cload=Cint+(Cin+Ctrim)×Cout/(Cin+Ctrim+Cout)

Cint包括IC内部电容(一般为固定值)以及PCB杂散电容(3pF~5pF)。

3.1.4、配对列表管理

为了保证链路级的安全,蓝牙通信要求设备在连接建立前进行“双向认证”。认证成功的前提是设备双方存储了相同的链路密钥Kab,配对是产生初始密钥Kint 的阶段,Kint由PIN码、从设备蓝牙地址和主设备发给从设备的一个随机数由一套固定的算法计算出来,只要PIN码一致,主从设备生成的的Kint也是一致的。链路密钥的输入是主从设备的蓝牙地址和主从设备各一随机数,只要主从设备能互换随机数,便能得到一致的Kab。主设备将随机数RandA与Kint异或的结果发给从设备,从设备只将该结果与Kint异或便得到RandA,即

配对列表的管理包括添加、替代及删除,添加配对设备是在非易失性存储中存储该设备的蓝牙地址及Kab。删除配对设备需要谨慎处理,如果存在连接,需要先断开连接然后删除,因为如果删掉该设备而有一种应用的连接没有断开,会存在

临时密钥用于当前应用,这时不经配对也可以连接上其他应用,违反了蓝牙安全性要求

3.1.5、蓝牙文件传输模式

文件传输的目的是使两个终端之间的数

据交换成为可能,传输时使用的协议如图3.1

所示,可传送的文件有doc、jpg、ppt、xls、

wav等文件,还包括远端文件夹浏览功能。传

输文件的设备可归结成C/S结构。客户可从服

务器下载文件,或向服务器上传文件。服务器是一种使用对象交换协议(OBEX)文件夹列表格式的远端蓝牙设备,其支持目标交换服务、文件夹浏览功能,还允许客户修改、创建文件或文件夹。

3.2、hci层介绍

3.2.1、hci层介绍

Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC,Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。HCI则比较特殊,它一部分在软件中实现,用来给上层协议和程序提供访问接口(Bluez 中,hci.c hci_usb.c,hci_sock.c等).另一部分也是在Firmware中实现,用来将软件部分的指令等用底层协议明白的方式传递给底层。

居于PC的上层程序与协议和居于Modules的下层协议之间通过HCI沟通,有4种不同形式的传输:Commands, Event, ACL Data, SCO/eSCO Data.。

HCI Command:HCI Command是Host向Modules发送命令的一种方式。

HCI Event:Modules向Host发送一些信息,使用HCI Event。

3.2.2、hci层编程

对本地dongle进行操作:

a.得到Host上插入Dongle数目以及Dongle信息

实现步骤如下:

// 0. 分配一个空间给hci_dev_list_req。这里面将放所有Dongle信息。

struct hci_dev_list_req *dl;

struct hci_dev_req *dr;

struct hci_dev_info di;

int i;

Android应用程序开发(第二版)课后习题答案最新版

第一章 Android简介 1.简述各种手机操作系统的特点. 答案: 目前,手机上的操作系统主要包括以下几种,分别是Android、iOS、Windows Mobile、Windows Phone 7、Symbian、黑莓、PalmOS 和Linux。 (1)Android是谷歌发布的基于Linux的开源手机平台,该平台由操作系统、中间件、用户界面和应用软件组成,是第一个可以完全定制、免费、开放的手机平台。Android底层使用开源的Linux操作系统,同时开放了应用程序开发工具,使所有程序开发人员都在统一、开放的开发平台上进行开发,保证了Android应用程序的可移植性。 (2)iOS是由苹果公司为iPhone、iPod touch、iPad以及Apple TV开发的操作系统,以开放源代码的操作系统Darwin为基础,提供了SDK,iOS操作系统具有多点触摸操作的特点,支持的控制方法包括滑动、轻按、挤压和旋转, 允许系统界面根据屏幕的方向而改变方向,自带大量的应用程序。 (3)Windows Mobile是微软推出的移动设备操作系统,对硬件配置要求较高,一般需要使用高主频的嵌入式处理器,从而产生了耗电量大、电池续航时间短和硬件成本高等缺点,Windows Mobile系列操作系统包括Smartphone、Pocket PC和Portable Media Center。

随着Windows Phone 7的出现,Windows Mobile正逐渐走出历史舞台。 (4)Windows Phone 7具有独特的“方格子”用户界面,非常简洁,黑色背景下的亮蓝色方形图标,显得十分清晰醒目,集成了Xbox Live游戏和Zune音乐功能,可见Windows Phone 7对游戏功能和社交功能的重视。 (5)Symbian是为手机而设计的实时多任务32位操作系统,它的功效低,内存占用少,提供了开发使用的函数库、用户界面、通用工具和参考示例。操作系统不是完全开放的,核心代码不开放,但是API文档是公开的。 (6)黑莓系统主要在黑莓手机上使用,其特色是支持电子邮件推送功能,邮件服务器主动将收到的邮件推送到用户的手持设备上,而不需要用户频繁地连接网络查看是否有新邮件。同时,黑莓系统提供手提电话、文字短信、互联网传真、网页浏览及其它无线信息服务功能。黑莓系统主要针对商务应用,具有很高的安全性和可靠性。 (7)PalmOS由拥有较多的第三方软件,是32位的嵌入式操作系统,主要在移动终端上使用,操作系统本身所占的内存极小,不具备录音和MP3播放功能。 (8)Linux手机操作系统具有开放源代码的特性,但是也包含入门难度高,集成开发环境差,Linux的产品与个人计算机的连接性较差,具有较强的开发实力的公司很少等不足。 2.简述Android平台的特征

新产品开发部门工作流程图

新产品开发部门工作流程图 新产品开发策略 主要方式 呈 报 新产品样品开发 产 品开发过程

附件一:内部管理制度 新产品开发工作,是指运用国内外在基础研究与应用研究中所发现的科学知识及其成果,转变为新产品、新材料、新生产过程等一切非常规性质的技术工作。新产品开发是企业在激励的技术竞争中赖以生存和发展的命脉,是实现“生产一代,试制一代,研究一代和构思一代”的产品升级换代宗旨的重要阶段,它对企业产品发展方向,产品优势,开拓新市场,提高经济效益等方面起着决定性的作用。因此,新产品开发必须严格遵循产品开发的科学管理程序,即选题(构思。调研和方案论证)样(模)试批试正式投产前的准备这些重要步骤。 一、调查研究与分析决策 新产品的可行性分析是新产品开发中不可缺少的前期工作,必须在进行充分的技术和市场调查后,对产品的社会需求、市场占有率、技术现状和发展趋势以及资源效益等五个方面进行科学预测及技术经济的分析论证。 (一)调查研究: 1、调查国内市场和重要用户以及国际重点市场同类 产品的技术现状和改进要求; 2、以国内同类产品市场占有率的前三名以及国际名 牌产品为对象,调查同类产品的质量、价格、市场及

使用情况; 3、广泛收集国内部外有关情报和专刊,然后进行可行 性分析研究。 (二)可行性分析: 1、论证该类产品的技术发展方向和动向。 2、论证市场动态及发展该产品具备的技术优势。 3、论证发展该产品的资源条件的可行性。(含物资、 设备、能源及外购外协件配套等)。 (三)决策: 1、制定产品发展规划: (1)企业根据国家和地方经济发展的需要、从企业 产吕发展方向、发展规模,发展水平和技术改 造方向、赶超目标以及企业现有条件进行综合 调查研究和可行性分析,制定企业产品发展规 划。 (2)由研究所提出草拟规划,经厂总师办初步审 查,由总工程师组织有关部门人员进行慎密的 研究定稿后,报厂长批准,由计划科下达执行。 2、瞄准世界先进水平和赶超目标,为提高产品质量进 行新技术、新材料、新工艺、新装备方面的应用研究: (1)开展产品寿命周期的研究,促进产品的升级换 代,预测企业的盈亏和生存,为企业提供产品

用 Eclipse 开发 Android 应用程序

在 Eclipse 环境中进行 Android 应用程序开发 开始之前 本教程介绍如何在 Eclipse 环境中进行 Android 应用程序开发,包括两个示例应用程序。第一个示例是一个基本的应用程序,涉及构建和调试的所有阶段。第二个应用程序示例涉及比较复杂的 Android 特性,包括联系人搜索和 Google Maps 地址查找。要想从本教程获得最大收益,具备移动开发经验会有帮助,但不是必需的。开发 Android 应用程序需要Java? 编程技能,但是对于本教程不是必需的。 关于本教程 我们为什么要关注 Android?有两个原因使 Android 成为重要的平台。首先,Google 引入了 Android,它在很短时间内就获得了市场的关注。Google 正在进军移动市场。它在这个市场上采取的第一个行动就是发布 Android 和 Open Handset Alliance,这是一个令人印象深刻的起点。第二,Android 不仅仅是另一种包含电话、菜单和触摸屏功能的移动平台。您将在本教程中了解到,Android 提供了一种不同的应用程序开发方法。由于可以对请求的操作和代码进行运行时绑定,Android 的体系结构支持高度可定制的软件环境。无论是考虑市场因素还是 Android 的技术方面,它都是一个值得研究的平台。 本教程分为以下几节: ?Android 基础知识和必需的工具 ?Android Software Developer Kit ?构建和调试 SaySomething Android 应用程序 ?创建内容提供器和 Google Maps 应用程序 系统需求 本教程需要结合使用几种技术。 Eclipse 平台Eclipse 是一个运行插件的平台。您应该安装 Eclipse Classic 的最新版本(本教程使用 V3.3.1)。Android Developer Tools按照安装 Android SDK中的说明安装 Android Developer Tools(Eclipse 插件)。 源代码本教程中的源代码片段包括: ?AndroidManifest.xml(片段)—这个文件是 Android 应用程序的应用程序部署描述符。 ?IntentReceiver —演示 IntentReceiver 的实现,这个类处理 AndroidManifest.xml 文件中 IntentFilter 标记所公布的 intent。 ?SaySomething.java —实现一个 Android 活动,这是本教程的示例应用程序的主要入口点。 ?Main.xml —这个文件包含 Android 活动所用的视觉元素或资源。 ?R.java —这个文件是由 Android Developer Tools 自动生成的,它把视觉资源“连接” 到 Java 源代码。 ?AndroidManifest.xml(完整)—这是完整的 AndroidManfest.xml 文件,包含每个重要元素的描述。

web开发技术试卷及参考答案

《WEB开发技术》期末考卷(A) 一、选择题(30题、每题2分、总计60分) 1、是用于创建Web应用程序的平台,此应用程序可使用IIS和.NET Framework在Windows 服务器上运行。 # 2、文件由Visual 创建,用于定义Web应用程序的配置。 A. 3、打开SQL Connection 时返回的SQL Server 错误号为4 060,该错误表示: 。 A. 连接字符串指定的服务器名称无效 B. 连接字符串指定的数据库名称无效 C. 连接超时 D. 连接字符串指定的用户名或密码错误 4、在DataSet中,若修改某一DataRow 对象的任何一列的值,该行的DataRowState 属性的值将变为。 A. B. C. D. 5、关于网页中的图像,下列说法正确的是。 A.图像由标签开始,由结束 B.图像标签的href属性用于指定图像链接的URL 属性的值是所要显示图像的URL D.以上全都是错的 6、如果希望单击超链接打开新的HTML页面,则需将target属性设为。 7、为创建在SQL Server 2000 中执行Select 语句的Command 对象,可先建立到SQL Server 2000 数据库的连接,然后使用连接对象的方法创建SqlCommand 对象。 A. CreateObject B. OpenSQL C. CreateCommand D. CreateSQL 8、为了在程序中使用ODBC .NET 数据提供程序,应在源程序工程中添加对程序集______ 的引用。 A. B. C. . D. 9、DataAdapter 对象的DeleteCommand 的属性值为null,将造成: A. 程序编译错误 B. DataAdapter 在处理DataSet 中被删除的行时,将引发异常 C. DataAdapter 在处理DataSet 中被删除的行时,这些行将被跳过不处理 D. DataAdapter 在处理DataSet 中被删除的行时,将出现对话框询问用户如何处理该行 10、下列语句的值是。 String str=”中华人民共和国”; (“人”); B.2 11、应用程序中所有页面均可以访问变量。 12、指令用于定义页面解析器和编译器所使用的特定的页面的属性。 A. @Page B. @Control C. @Import D. Register

Android应用开发基础习题

-- 任务一Android 开发环境的搭建 第一部分知识回顾与思考 1.Android 的四层架构分别包括哪几层?分别起到什么作用? 答:Linux 内核层(Linux Kernel ):基于Linux 内核,内核为上层系统提供了系统服务。 系统库层(Libraries ):系统库基于C/C++ 语言实现,通过接口向应用程序框架层提供编程接口。 应用框架层(Application Framework ):为开发者提供了一系列的Java API,包括图形用户界面组件

View 、SQLite 数据库相关的API 、Service 组件等。 应用程序层(Applications ):包含了Android 平台中各式各样的应用程序。 第二部分职业能力训练 一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内) 1.Android 四层架构中,应用框架层使用的是什么语法?(C)A .CB .C++C.Java D.Android 2.Android 四层架构中,系统库层使用的是什么语法?(B)A .VBB.C /C++C.Java D .Android 3.应用程序员编写的Android 应用程序,主要是调用(B)提供的接口进行实现。 A .应用程序层DCB.应用框架层.应用视图层.系统库层

二、填空题(请在括号内填空) 1.在Android 智能终端中,有很多应用如拍照软件、联系人管理软件,它们都属于Android 的(应用程 序)层。 2.为了让程序员更加方便的运行调试程序,Android 提供了(模拟器),可以方便的将程序运行其上, 而不要实际的移动终端。 程序运行,我们需要安装(Java 3.为了支持)。JDK 三、简答题 1.简述Android 开发环境安装的步骤。 答:下载并安装JDK ,配置JDK 的环境变量; 从Anroid 官网上下载Android 开发组件(包含Eclipse 和

设计变更作业流程

设计变更作业流程 Prepared on 22 November 2020

1.目的 为使设计与开发变更作业能循一定程序执行,以维护技术数据之正确性及产品质量的可靠度,同时规范设计与开发变更之识别、记录、审查、核准与传达等相关事项,特制定本流程。 2.适用范围 凡本公司生产的产品及其附属之原物料、零组件因功能需求、客户要求、设计错误、制造或组装问题等,而对原设计进行修改或加强之设计变更均适用之。 3.名词解释: ECR:Engineering Change Request,设计变更申请。 ECN:Engineering Change Notice,设计变更通知。 4.权责: 各单位权责 (1)设计变更的申请: A.本公司内部任一单位若有设计变更之需求时,皆可依本设计变更的申请流程提出申请。 B.客户要求设计变更时,由业务单位提出申请。 C.本公司第三方建议设计变更时,由采购单位提出申请。 (2)工程单位: A.负责受理设计变更之申请与编号,并做必要性可行性与影响性的评估与判定。 B.实施与督导设计变更案件的进行。 C.设计变更案件执行后,应将信息传达本公司各相关单位。 (3)生管单位: A.协助调查厂内待设变物料状况。 B.设计变更后,督导生产单位、仓储单位管制设计变更前后物料,避免混料。 (4)采购单位: A.协助调查厂商处待设变之物料状况。 B.设计变更后,应对厂商发行设变后工程图面,回收设变前图面,同时督导厂商处理设变前 之物料。 (5)生产部门: A.依ECN规定管制设变前后物料,避免混料。 B.设计变更后,修订相关作业标准及治工具。 (6)品管部门: A.协助生产单位管制设变前后物料。 B.设计变更后,修订相关检验标准及治具。 本流程由工程单位负责制定,推动与检讨改善。 5.内容:如作业流程所示。

WEB应用程序设计与开发实训

《WEB应用程序设计与开发实训》课程标准 1.课程定位 本课程是高等职业院校计算机网络技术专业的一门专业核心课程。是学习了C语言程序设计、办公自动化应用、计算机网络基础、WEB应用程序设计与开发等课程的后续课程,其功能在于培养学生从事网站开发的职业能力,并为其就业作前期准备。 2.课程设计理念 该课程是依据计算机网络技术专业的工作任务与职业能力的程序设计工作项目设置的。其总体设计思路是,打破以知识传授为主要特征的传统学科课程模式,转变为以工作任务为中心组织课程内容,并让学生在完成具体项目的过程中学会完成相应工作任务,并构建相关理论知识,发展职业能力。课程内容突出对学生的技能训练。项目设计以学生网站设计与开发能力的培养为线索来进行。教学效果评价采取过程性评价与结果性评价相结合,重点评价学生的职业能力。 3.课程目标 通过本课程的教学,掌握WEB应用程序设计与开发的基础知识和基本技能,培养严谨务实的分析问题与解决问题能力。能胜任综合商业网站的开发工作,为就业和以后的发展奠定基础,并培养诚实、守信、坚忍不拔,善于沟通和合作的品质,为提高职业能力奠定良好的基础。 3.1知识目标 ●掌握添加文本和设置文本格式的方法 ●掌握图像和媒体在网页中的应用 ●掌握超级链接的设置方法 ●掌握表格、框架、Div对网页进行布局的方法 ●掌握CSS样式控制网页外观的方法 ●掌握使用时间轴制作动画的方法 ●掌握使用库和模板制作网页的方法

●掌握应用和修改行为的方法 ●掌握创建表单网页的方法 ●掌握用JavaScript编写脚本的方法 ●理解安装https://www.sodocs.net/doc/d714009675.html,应用程序运行环境; ●掌握https://www.sodocs.net/doc/d714009675.html,应用程序开发环境的应用; ●理解WEB窗体的概念; ●掌握WEB窗体的的代码分离技术; ●理解WEB窗体的事件驱动编程 ●了解WEB窗体的处理过程和事件; ●了解WEB窗体的文件组成; ●理解服务器控件的基本知识; ●了解服务器控件的事件模型; ●掌握在WEB窗体中添加服务器控件的方法; ●掌握标准服务器控件的语法格式、事件编程; ●理解使用用户控件的优势; ●掌握用户控件的创建和添加方法 ●了解主题的技术特点; ●掌握创建和应用主题的方法; ●了解https://www.sodocs.net/doc/d714009675.html,访问数据库的技术特点; ●掌握https://www.sodocs.net/doc/d714009675.html,中数据访问控件的使用方法 ●了解https://www.sodocs.net/doc/d714009675.html,应用程序用户状态; ●掌握管理https://www.sodocs.net/doc/d714009675.html,应用程序用户状态的方法。 3.2能力目标 ●能熟练创建本地站点并能对网页进行各种超链接 ●能对网页进行具有创意的美化 ●能对网页进行合理布局 ●能使用编程技术实现动态效果 ●能掌握网页设计与制作的相关技巧 ●能运用https://www.sodocs.net/doc/d714009675.html,开发工具设计、调试动态网页; ●能熟练运用WEB窗体的代码分离技术编写后台代码; ●能熟练运用WEB窗体的事件驱动编程技术开发WEB应用程序; ●能用标准WEB服务器控件制作WEB用户界面; ●能熟练运用WEB服务器控件验证用户输入的数据; ●会用https://www.sodocs.net/doc/d714009675.html,主题统一定制网站页面的显示格式; ●会用https://www.sodocs.net/doc/d714009675.html,访问数据库; ●会用https://www.sodocs.net/doc/d714009675.html,应用程序用户状态管理技术管理用户状态。 ●能测试和发布web应用程序。 ●能跟踪和学习并应用网页设计与制作的新知识和新技术 3.3素质目标 ●具有勤奋学习的态度,严谨求实、创新的工作作风; ●具有良好的心理素质和职业道德素质; ●具有高度责任心和良好的团队合作精神;

Web开发技术及其应用学习心得

Web开发技术及其应用学习心得 从大学开始接触Web应用开发技术,但是大学里概念性的东西过强,导致学完后对于如何实际应用开发并不是很有条理。 一、何为Web应用程序 我刚开始学习的是java和C++应用程序,这些程序只能在本机上运行,接触了Web应用程序开发,才知道原来自己一直在接触使用Web应用程序,像在学校使用的教务管理系统还有经常用上的人人网,都是Web应用程序,Web应用程序首先是“应用程序”,和用标准的程序语言,如C、C++、C#等编写出来的程序没有什么本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法运行的。换句话说,它是典型的浏览器/服务器架构的产物。也就是说我们开发的程序是运行在服务器端,客户使用浏览器就可以使用程序提供的服务。 二、Web应用程序开发常用语言 Web应用程序开发常用语言有JSP、ASP、PHP、https://www.sodocs.net/doc/d714009675.html,等,自己在网上对这些语言进行的一些了解,这些语言各有各的优势和缺点,编程者可以根据各自的情况选择编程语言,我起初学习Web编程的时候是学的JSP,它的底层语言是JAVA,由于有过Java和网页设计的基础学习起来也不是很麻烦,上手还是比较快的,但是随着系统的复杂度的提高我发现开发越来越麻烦,每个表单和控件都要自己定义引用,后来通过同学的推荐,开始着手学习https://www.sodocs.net/doc/d714009675.html,,它是微软公司继ASP后推出的又一门服务器端脚本语言,https://www.sodocs.net/doc/d714009675.html,一般分为两种开发语言,https://www.sodocs.net/doc/d714009675.html,和C#,C#相对比较常用,因为是.NET独有的语言,https://www.sodocs.net/doc/d714009675.html,则为以前VB 程序设计,适合于以前VB程序员,如果新接触.NET,没有其他开发语言经验,建议直接学习C#。 三、如何学好https://www.sodocs.net/doc/d714009675.html, 学习https://www.sodocs.net/doc/d714009675.html,我个人觉得首先应该对HTML标签有所了解,因为开发动态网页还是要跟HTML标签打交道,多了解一些你在编程的时候更容易上手,还有HTML 提供的一些表单,最好能熟悉,在https://www.sodocs.net/doc/d714009675.html,中也提供了各类控件,这些控件的学习都比较简单,所见即所得,可以直接向页面中拖各种控件,后台代码写在.cs 文件中。关于学习方法,个人心得总结如下: 学习的过程最好能结合各自情况,像我自身只是一般的初学者,所以我从先看一些https://www.sodocs.net/doc/d714009675.html,的视频教程,尽快熟悉它的用法和规范,因为这样接受比较快,但是不能一味的只看视频,必须要学着去实践,开始可以跟着视频上的例子照葫芦画瓢作一些试试,可以自己尝试着去修改例子,将它变成自己的东西。另外又找了两本.net方面的书,最佳组合是一本基础的书和一本实例书,这样可以巩固前面的学习,如果有不清楚的地方可以直接查书,加深记忆,看实例的书,并且最好能照着书上实现一遍,提高自己的水平,前万不要眼高手低,要不到到头来前功尽弃,前面学的都忘了。 此次授课的老师实践经验非常丰富,他把学员建立在现实开发的基础上,深入浅出,引用实例,授课一点也不枯燥,我们在接受了他们大量的信息的同时,很自然地消化处理,没有任何被动。Java语言程序设计、数据库技术基础、Servlet和JSP编程基础到轻量级J2EE体系架构程序开发,老师们贴切的例子

(产品管理)新产品开发控制程序

(产品管理)新产品开发控 制程序

1目的 对新产品开发过程进行控制,确保满足顾客和有关标准、法律、法规的要求。2范围 适用于本公司儿童鞋自行设计开发的控制。 3术语(无) 4权责 4.1市场部负责根据市场调研提供产品开发建议,且负责组织确认 4.2生产部开发小组负责整个开发活动的组织协调和实施工作 4.3总经理或管理代表负责产品开发立项的批准 5控制程序 5.1开发策划 5.1.1立项的依据、开发的项目来源于以下方面: a)和顾客签订的特殊合同或技术协议; b)根据市场调研或分析,业务提出项目建议; c)综合公司内外反馈信息,生产部开发小组提出新产品开发的建议; 5.1.2生产部开发小组就之上立项依据,编制“产品开任务书”明确开发计划包括: a)开发输入、输出、评审、验证、试产、确认、正稿等各阶段的工作; b)各阶段人员分工、进度要求和配合单位; c)需要增加或调整资源(如新增或调配的仪器、设备、人员等); d)产品开发任务书将随着开发进展及时进行修改。 e)开发过程的组织和技术接口。 5.1.3于开发策划和输入阶段:

a)开发提出部门将关联背景资料提交开发小组,且壹起对开发任务进行评审; b)“产品开发任务书”经总经理批准后分发各关联单位,做好准备工作; c)生产部开发小组负责将“产品开发任务书”及关联背景资料,转交开 发人员作为工作的依据。 5.1.4于开发输出阶段: a)开发人员之间的信息联络能够通过口头、电话或书面的形式进行; b)生产部开发小组适当时召开研讨会,组织解决开发过程遇到的困难, 协调关联资源; c)于开发评审和验证的过程中,开发人员持续完善相应的开发初稿。 5.1.5于开发试产阶段: a)所需的物料或外包活动,由采购组负责寻找供方,且进行采购控制作业; b)生产部开发小组提供工艺文件(初稿)或样品交生产部或外包供方执行试产。 5.1.6生产部开发小组负责开发各阶段中,组织和协调各有关单位的工作; 参和开发的各部门将必要的信息形成文件;业务负责和顾客的联系 及信息传递。 5.2开发输入 5.2.1生产部开发小组于“产品开发任务书”中应确定新产品的要求,明 确以下内容: a)产品名称、型号、规格以及主要产品功能和性能指标;

Web开发技术习题集

第一章 1.下列动态网页和静态网页的根本区别描述错误的是(D) A、静态网页服务器端返回的HTML文件是事先存储好的; B、动态网页服务器端返回的HTML文件是程序生成的; C、静态网页文件里只有HTML标记,没有程序代码; D、动态网页中只有程序,不能有HTML代码; 真棒,答对了! 2.下面哪一项不是网页制作工具(D) A、FrontPage; B、Dreamweaver; C、Visual Studio; D、PhotoShop; 3.目前的物联网、大数据和云计算的智能生活时代属于下列哪个web发展阶段(C) A、; B、; C、; D、; 题目解析:一般认为11或者12年开始进入Web 时代,属于大互联时代。典型特点是多对多交互,不仅包括人与人,还包括人机交互以及多个终端的交互。智能手机促进了移动互联网的发展。现在是大互联时代的初期,真正的时代一定是基于物联网、大数据和云计算的智能生活时代,实现了“每个个体、时刻联网、各取所需、实时互动”的状态,也是一个“以人为本”的互联网思维指引下的新商业文明时代。 4.关于webservice,下列说法错误的是(D) A、webservice可以通过手机端访问; B、Web应用程序中无需下载安装Web服务可直接调用网上的Web服务提供的方法来实现某个功能;

C、webservice服务可实现分布式应用; D、webservice不能通过局域网访问; 题目解析:局域网可以访问在本局域网内部的webservice服务,能不能访问webservice取决于web服务的服务所在网络位置。 5.域名系统DNS的含义是(A) A、Domain Name Service; B、Direct Network System; C、Dynamic Network System; D、Distributed Network Service; 6.下列有关浏览器到服务器到脚本到程序表述正确的是(D) A、一个URL指向一个CGI脚本. 一个CGI脚本的URL能如普通的URL一样在任何地方出现; B、服务器接收请求, 按照那个URL指向的脚本文件(注意文件的位置和扩展名),执行脚本; C、脚本执行基于输入数据的操作,包括查询数据库、计算数值或调用系统中其他程序; D、脚本不能产生某种Web服务器能理解的输出结果; 7.关于“服务端/客户端技术”的描述,不正确的是(D) A、“服务器端/客户端技术”描述的是一种工作方式; B、我们用来浏览网页的计算机属于客户端; C、web服务器既属于服务器端,也可属于客户端; D、web服务器只能属于服务器端; 8. 下面这段Html代码在浏览器中运行结果为(C)

Android应用开发试题

Android应用开发试题 一、选择题(每题2分,共30分) 1. 下列不是手机操作系统的是?(D) A.Android B. Window Mobile C. Apple IPhone IOS D.windows vista 2.Android的VM虚拟机是哪个?A A.Dalvik B.JVM C.KVM D.framework 3. AndroidVM虚拟机中运行的文件的后缀名为(B) A.class B.apk C.dex D.xml 4. 下面关于Android DVM的进程和Liunx的进程,应用程序的进程说法正确的是 A.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Liunx中的一个进程,所以说可以认为是同一个概念。B B.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Liunx 中的一个进程,所以说可以认为不是一个概念。 C.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Liunx中的一个进程,所以说可以认为不是同一个概念。 D.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Liunx中的一个进程,所以说可以认为是同一个概念。 5. 下列哪个可做EditText编辑框的提示信息?(D) A. android:inputType B. android:text C. android:digits D. android:hint 6. 在AndroidManifes.xml中描述一个Activity时,该Activity的label属性是指定什么( B) A.指定Activity的图标 B.指定Activity的显示图标 C.指定Activity和类相关联的类名 D.指定该Activity的唯一标识 7. 关于ContentValues类说法正确的是( A ) A.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是String类型,而值都是基本类型。 B.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是任意类型,而值都是基本类型。 C.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名可以使空,而值都是String类型。 D.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是String类型,而值也是String类型。 8. Activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行( A) A.onPause() B.onCreate() C.onResume() D.onStart 9. 下列哪个不是Activity的生命周期方法之一?(B) A. onCreate B. startActivity C. onStart D. onResume 10.如果在android应用程序中需要发送短信,那么需要在AndroidManifest.xml文件中增加什么样的权限( D). A.发送短信,无需配置权限

asp。net web 应用开发技术喻钧课后答案修正版

第一章 1.填空、选择题(1)网址(2)D (3)A (4)C (5)A 2.解答题 (1)c/s结构适用于局域网,要有专门的小范围的网络硬件环境,b\s结构则是适用于广域网,只要能接入internet的用户即可使用;c/s结构用户有固定还有限,系统升级和维护难,成本也高, b\s结构客户端零维护,易于实现系统的无缝升级;c/s结构软件单一、整体性好,可重用性差;b\s结构是多重结构,构件独立,可重用性好;c/s结构客户端和服务器是平台相关,b\s结构则是不相关;c/s结构信息控制性强,b\s结构就相对来说较弱。 (2)他们主要区别在于服务器对他们的处理方式不同。静态网页都具有一个固定的URL,它的内容是原封不动被传递的,想要修改网页内容,必须修改HTML源代码,静态网页没有数据库的支持,不支持客户端与服务器端的交互;动态网页中,不同额请求和访问数据的变化会生成不同的HTML代码,网页内容会改变,它具有数据库访问功能,支持客户端与服务器端的交互。 (3)客户端脚本语言都是解释型的,基于对象的脚本语言,他们的工作机制是:将脚本嵌入到web页面中,并随着HTML文件一起传送到客户端,由浏览器解释执行;服务器脚本语言则都运行在服务器端,能够动态的生成网页,脚本运行不受客户端浏览器限制,脚本程序都是将脚本语言嵌入到HTML文件中,执行后返回到客户端HTML代码。 第二章 1.(1)HTML网页文件的标记是,网页文件的主体标记是,标记页面标题的标记是。 (2)表格的标签是(

),单元格的标签是()。表格的宽度可以用百分比和(像素)两种单位来设置。 (3)表单对象的名称由(name)属性设定;提交方法由(method)属性指定;若要提交大量数据,则采用(POST)方法;表格提交后的数据处理程序由(target)属性指定。 (4)当表格以电子邮件的形式发送,MIME类型设置为(multipart)。 (5)DTD是对(XML)文档所做的规范和约定。 2、(1)A; (2)C; (3)C; (4)A; (5)A;(6)B;(7)D;(8)C. (9) B; (10) A; 3、 (1)XML和HTML都来自于SGML,它们语法相似,但是传统的HTML无法表达数据的含义,而这恰恰是电子商务、智能搜索必须的。HTML不能表述化学符号。数学公式、音乐符号、矢量图形等。HTML扩展性差,而且XML语法较为严格,具有良好的自描述性。(2)XHTML包括XML和HTML,DHTML就是动态的HTML,包含HTML/XHTML,CSS,JavaScript。 (3)XML Schema比DTD提供额类型更多,具有更强的表现能力,能够更好的满足不同领域应用的需求。 (4)CSS包含一个或多个格式化规定和定义,他控制XML和HTML文档中的标签如何在浏览器的显示;XSLT用于将一种XML文档转换为另外一种XML文档,或者可被浏览器识别的其他类型的文档,比如HTML和XHTML。换句话说,CSS只适合用于输出比较固定的最终文档。CSS的优点是简洁,消耗系统资源少;而XSLT虽然功能强大,但因为要重新索引XML结构树,所以消耗内存比较多。将它们结合起来使用,比如在服务器端用XSLT 处理文档,在客户端用CSS来控制显示 第三章 一、选择题 1、D 2、A 3、B 4、C 5、C 6、C 7、B 8、C

Android应用程序开发个人总结

Android应用程序开发个人总结 Android应用程序开发个人总结范文 篇一:Android应用程序开发-个人总结 一、项目简介: 送祝福App是一款逢年过节为方便发送祝福信息的软件,并且介绍各种节日的相关情况。包含节日祝福短信,支持直接发送短信给好友,也可定时发送给好友,编写模版。为生活提供了便利。 二、个人在项目中承担的任务: 我是任务是整合成员负责的模块,把各个模块整合到一起,然后把主界面的效果做出来,主界面参考的是微信的界面 三、学习本门课程收获、体会及建议: 在本门课程中,我初步认识了安卓应用开发所需基本知识,比如安装体系结构,常用的控件以及API的使用方法,知道了安卓体系存储数据的方式。这一学期,安卓相关的知识自己掌握的不多,不过也透过安卓课程看到移动端应用的火热。这一个学期里,老师讲得比较细,自己单独下来练一个知识点了,也可以,不过当几个知识点的内容整合到一起,自己就凌乱了,自己的思路就不清晰。在期末项目中,我是任务是整合成员负责的模块,把各个模块整合到一起,然后把主界面的效果做出来,主界面参考的是微信的界面,由于时间和能力的限制,只完成了部分功能,功能没有完全实现。 篇二:Android程序员-201*年度个人工作总结和计划

逝者如斯夫,不舍昼夜!转眼间,自己在XX网里参加工作已经有一年有余了。回首即将逝去的201*年,可以说是平淡而不普通的一年,发现自己在各方面都比上一年有所进步、提高。一年的结束孕育着新一年的到来,新的一年意味着新的起点、新的挑战。昂首期待未来,总结以往经验。在新一年来临之际,我现把这一年的工作总结一下以及将新一年计划列一下。 大概3月份左右,XXXXApp第一期基本开发完成比较稳定的版本。在此之前,我主要负责参考XXXXApp的Android客户端的开发工作。XXXX第一期开发的难度系数相对比较低,开发起来还是相对的容易,所学到的基础知识基本上可以开发出来。我个人认为当时的开发效率还是比较低的,这里说的是整个项目的开发效率,不是个人负责工作的完成效率,换句话来说是团队的整体开发效率不高,没有达到高效。这个也许是团队协调与沟通交流还存在不足的地方。XXXXApp实际上基本可以满足用户的使用(表面),但是项目的代码管理(本质)比较杂乱、扩展性差、健壮性也不错、兼容性也不算好。这无疑导致开发的工作量大大的增加。产生这些问题的原因有团队的项目开发经验缺乏,有自己个人的开发水平有限、技能不足。简言之,我的专业技能还不够强。 在3月份之前,公司聘请了外包团队与我们的团队一起开发问答App。公司的目的培训公司的团队,让我们学习外包团队的技能。在外包团队的参与和指导下问答App开发工作相当顺利,团队的分工清晰、交流充分、协调都比较好。问答App的工作接近尾声,意味着XXX

设计变更作业流程

1.目的 为使设计与开发变更作业能循一定程序执行,以维护技术数据之正确性及产品质量的可靠度,同时规范设计与开发变更之识别、记录、审查、核准与传达等相关事项,特制定本流程。 2.适用范围 凡本公司生产的产品及其附属之原物料、零组件因功能需求、客户要求、设计错误、制造或组装问题等,而对原设计进行修改或加强之设计变更均适用之。 3.名词解释: 3.1 :,设计变更申请。 3.2 :,设计变更通知。 4.权责: 4.1各单位权责 (1)设计变更的申请: A.本公司内部任一单位若有设计变更之需求时,皆可依本设计变更的申请流程提出申请。 B.客户要求设计变更时,由业务单位提出申请。 C.本公司第三方建议设计变更时,由采购单位提出申请。 (2)工程单位: A.负责受理设计变更之申请与编号,并做必要性可行性与影响性的评估与判定。 B.实施与督导设计变更案件的进行。 C.设计变更案件执行后,应将信息传达本公司各相关单位。 (3)生管单位: A.协助调查厂内待设变物料状况。 B.设计变更后,督导生产单位、仓储单位管制设计变更前后物料,避免混料。 (4)采购单位: A.协助调查厂商处待设变之物料状况。 B.设计变更后,应对厂商发行设变后工程图面,回收设变前图面,同时督导厂商处理设变前 之物料。 (5)生产部门: A.依规定管制设变前后物料,避免混料。 B.设计变更后,修订相关作业标准及治工具。 (6)品管部门: A.协助生产单位管制设变前后物料。 B.设计变更后,修订相关检验标准及治具。

4.2本流程由工程单位负责制定,推动与检讨改善。 5.内容:如作业流程所示。 6.附则: 本作业流程经总经理核准后实施,修改时亦同。 7.附件: 7.1设计变更申请单()(2-3-01-01) 7.2设计变更管制记录表(2-3-01-02) 7.3物料调查表(2-3-01-03) 7.4设计变更通知单() (2-3-01-04) 8.相关文件: 8.1试模试作管理办法 8.2图面管理办法 8.3厂商管理流程 设计变更作业流程 流程图权责单位作业重点使用窗体

介绍Java Web项目开发需要使用到的技术

介绍Java Web项目开发需要使用到的技术 目前,国内外信息化建设已经进入基于Web应用为核心的阶段,Java作为应用于网络的最好语言,前景看好。然而用Java建造一个web应用不是件轻松的事情,概括一下,实施Java的WEB项目需要掌握的技术如下: Java语言 面向对象分析设计思想 设计模式和框架结构 XML语言 网页脚本语言 数据库 应用服务器 集成开发环境 下面我们具体地看每个技术. 1.Java语言 Java语言体系比较庞大,包括多个模块。从WEB项目应用角度讲有JSP、Servlet、JDBC、JavaBean(Application)四部分技术。 Java Database Connectivity (JDBC)技术: 在Java Web应用开发中,数据库管理系统(RDBMS)的使用是不可缺少的。JDBC(Java Database Connectivity) 是一种用于执行SQL 语句的Java API。它由一组用Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。简单地说,JDBC 可做三件事: 与数据库建立连接 发送SQL 语句 处理结果 Servlet技术 Servlet是运行在服务器端的程序,可以被认为是服务器端的applet。servlet被Web服务器(例如Tomcat)加载和执行,就如同applet被浏览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种操作,然后返回结果。 Servlet的主要优点包括: Servlet是持久的。servlet只需Web服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接)。 Servlet是与平台无关的。如前所述,servlet是用Java编写的,它自然也继承了Java的平台无关性。 Servlet是可扩展的。由于servlet是用Java编写的,它就具备了Java所能带来的所有优点。Java是健壮的、面向对象的编程语言,它很容易扩展以适应你的需求。servlet自然也具备了这些特征。 Servlet是安全的。从外界调用一个servlet的惟一方法就是通过Web服务器。这提供了高水平的安全性保障,尤其是在你的Web服务器有防火墙保护的时候。 Servlet可以在多种多样的客户机上使用。由于servlet是用Java编写的,所以你可以很方便地在HTML中使用它们。 JavaServer Pages(JSP) 技术: JSP是从Servlet上分离出来的一小部分,简化了开发,加强了界面设计。JSP定位在交互网页的开发。运用Java语法,但功能较Servlet弱了很多,并且高级开发中只充当用户界

新产品开发作业流程

1、目的 规范研发作业流程、提高项目完成质量、缩短项目开发周期、降低研发成本。 2、适用范围

适用于义乌路茜化妆品有限公司新项目开发。 3、相关部门职责 3.1研发部: 3.1.1工程师负责整个新项目设计,新产品内料样品的确认,研发技术资料操作,运行审核 工作新项目可行性评估;生产线的制程跟进、技术支持及产能评定。 3.1.2、工程文员负责整个研发技术配方体系和相关资料的输入,受控登记和文件资料发放到 相关部门等工作; 3.1.3助理工程师负责单元技术配方体系研发/打样工作; 3.1.4打样员协助助理工程师和工程师打样工作,并将打样记录填写完整,交助理工程师和 工程师审核,再转工程文员输入资料信息保存; 3.1.5配料主管依据配方体系和工艺流程执行配方的配制/监督工作,审核技术配料人员的工 作监管工作;配料员执行配料主管的工作安排和过程指导。 3.1.6新项目生产现场跟进及异常处理。 3.2 销售部 3.2.1掌握市场行业信息,对市场行情风险预测,拓展业务领域。 3.2.2客户订单初审,明确客户需求,参与新项目评审,准确及时反馈客户信息。 3.2.3初步确认制作的样品是否符合客户要求及样品送往客户确认。 3.3 运营部计划员、物控员 3.3.1组织最初的新项目评审会及相关工作的沟通、协调和判定; 3.3.2小批量试产物料计划、生产计划的制定与跟进; 3.3.3打样、特定物料跟催。 3.4 运营部采购 3.4.1评审最初的新项目评审物料交期能否满足项目计划要求; 3.4.2提供新产品用料《物料采购周期表》; 3.4.3新物料打样及供应商开发。 3.5生产部

Android应用程序开发(第二版)课后习题答案

第一章Android简介 1.简述各种手机操作系统的特点. 答案: 目前,手机上的操作系统主要包括以下几种,分别是Android、iOS、Windows Mobile、Windows Phone 7、Symbian、黑莓、PalmOS和Linux。 (1)Android是谷歌发布的基于Linux的开源手机平台,该平台由操作系统、中间件、用户界面和应用软件组成,是第一个可以完全定制、免费、开放的手机平台。Android底层使用开源的Linux操作系统,同时开放了应用程序开发工具,使所有程序开发人员都在统一、开放的开发平台上进行开发,保证了Android应用程序的可移植性。 (2)iOS是由苹果公司为iPhone、iPod touch、iPad以及Apple TV开发的操作系统,以开放源代码的操作系统Darwin为基础,提供了SDK,iOS操作系统具有多点触摸操作的特点,支持的控制方法包括滑动、轻按、挤压和旋转, 允许系统界面根据屏幕的方向而改变方向,自带大量的应用程序。 (3)Windows Mobile是微软推出的移动设备操作系统,对硬件配置要求较高,一般需要使用高主频的嵌入式处理器,从而产生了耗电量大、电池续航时间短和硬件成本高等缺点,Windows Mobile系列操作系统包括Smartphone、Pocket PC和Portable Media Center。随着Windows Phone 7的出现,Windows Mobile 正逐渐走出历史舞台。 (4)Windows Phone 7具有独特的“方格子”用户界面,非常简洁,黑色背景下的亮蓝色方形图标,显得十分清晰醒目,集成了Xbox Live游戏和Zune音乐功能,可见Windows Phone 7对游戏功能和社交功能的重视。 (5)Symbian是为手机而设计的实时多任务32位操作系统,它的功效低,内存占用少,提供了开发使用的函数库、用户界面、通用工具和参考示例。操作系统不是完全开放的,核心代码不开放,但是API文档是公开的。 (6)黑莓系统主要在黑莓手机上使用,其特色是支持电子邮件推送功能,邮件服务器主动将收到的邮件推送到用户的手持设备上,而不需要用户频繁地连接网络查看是否有新邮件。同时,黑莓系统提供手提电话、文字短信、互联网传真、网页浏览及其它无线信息服务功能。黑莓系统主要针对商务应用,具有很高的安全性和可靠性。 (7)PalmOS由拥有较多的第三方软件,是32位的嵌入式操作系统,主要在移动终端上使用,操作系统本身所占的内存极小,不具备录音和MP3播放功能。 (8)Linux手机操作系统具有开放源代码的特性,但是也包含入门难度高,集成开发环境差,Linux的产品与个人计算机的连接性较差,具有较强的开发实力的公司很少等不足。 2.简述Android平台的特征 答案: Android广泛支持GSM、3G和4G的语音与数据业务,支持接收语言呼叫和SMS

相关主题