文档库 最新最全的文档下载
当前位置:文档库 › JavaCard开发教程之入门篇

JavaCard开发教程之入门篇

JavaCard开发教程之入门篇
JavaCard开发教程之入门篇

JavaCard开发教程之规范

多年以前,Sun微系统公司实现了智能卡和类似的资源约束设备的潜能,并且定义了一组Java技术子集规范来为它们创建应用程序,Java Card小应用程序。支持这些规范的设备称为Java Card平台。在一个Java Card平台上,来自不同的供应商的多个应用程序可以安全地共存。

一个典型的Java Card设备有一个8或16位的运行在3.7MHz的中央处理器,带有1K 的RAM和多于16K的非易失性存储器(可编程只读存储器或者闪存)。高性能的智能卡带有单独的处理器和加密芯片,以及用于加密的内存,并且有一些还带有32位的中央处理器。

Java Card技术规范目前是2.2版,由三部分组成:

·Java Card虚拟机规范,定义了用于智能卡的Java程序语言的一个子集和虚拟机。

·Java Card运行时环境规范,进一步定义了用于基于Java的智能卡的运行期行为。

·Java Card应用编程接口规范,定义了用于智能卡应用程序核心框架和扩展Java程序包和类。

Sun还提供了Java Card开发工具箱(JCDK) https://www.wendangku.net/doc/702144086.html,/products/javacard/,包含了Java Card运行期环境和Java Card虚拟机的引用实现,和其它帮助开发Java Card 小应用程序的工具。本文的第二部分将详细讲述JCDK。

Java Card技术和J2ME平台

让我们比较一下Java Card和J2ME平台技术:

图. Java Card技术和J2ME平台

CDC和CLDC配置以及它们

JavaCard开发教程之程序元素

完整的Java Card应用程序由一个后端应用程序和系统、一个主机(卡外)应用程序、一个接口设备(读卡器)和卡上小应用程序、用户证书和支持软件组成。所有的这些元素共同组成一个安全的端到端应用程序:

图1. Java Card应用程序的体系结构

一个典型的Java Card应用程序不是孤立的,而是包含卡端、读取端和后端元素。让我们更详细的讲述一下每个元素。

后端应用程序和系统

后端应用程序提供了支持卡上Java小应用程序的服务。例如,一个后端应用程序可以提供到安全系统和卡上的证书的连接,提供强大的安全性。在一个电子付款系统中,后端应用程序可以提供到信用卡及其他付款信息的访问。

读取端主应用程序

主应用程序存在于一个例如个人计算机这样的台式机或者终端、电子付款终端、手机或者一个安全子系统中。

主应用程序处理用户、Java Card小应用程序和供应商的后端应用程序之间的通讯。

传统的读取端应用程序是使用C编写的。近来J2ME技术的广泛普及有望使用Java实现主应用程序;例如,它可以在一台支持MIDP和安全信赖服务应用编程接口(Security and Trust Services API)手机上运行。

智能卡供应商一般不仅提供开发工具箱,而且提供支持读取端应用程序和Java Card小应用程序的应用程序编程接口。例如OpenCard Framework https://www.wendangku.net/doc/702144086.html,/,就是一个基于Java的应用程序编程接口集,隐藏了来自不同供应商的读取器的一些细节,并且

提供了Java Card远程方法调用分布式对象模型和安全信任服务应用编程接口(SATSA),我在本文后面一部分讨论它们。

读取端卡片接受设备

卡片接受设备(CAD)是处于主应用程序和Java Card设备之间的接口设备。一个CAD 为卡片提供电力,以及与之进行电子或者射频通信。一个CAD可能是一个使用串行端口附于台式计算机的读卡器,或者可能被整合到终端内,例如饭店或者加油站内的电子付款终端。接口设备从主应用程序到卡片转送应用程序协议数据单元( Application Protocol Data Unit,简称APDU)命令(在后面讨论),并且从卡片向主应用程序转送响应。一些CAD有用于输入个人识别号码的键盘,有的可能还有显示屏。

卡片端小应用程序和环境

Java Card平台是一个多应用程序环境。在图4中我们可以看到,卡片上可能存在一个或多个Java Card小应用程序,还有支持软件--卡片的操作系统和Java Card运行时环境(JCRE)一起。JCRE由Java Card虚拟机、Java Card Framework和应用程序编程接口以及一些扩展应用程序编程接口组成。

所有的Java Card小应用程序扩展Applet基本类,并且必须实现install()和process()方法;JCRE在安装小应用程序的时候调用install(),并且在每次有一个进入的用于小应用程序的APDU的时候调用process()。

Java Card小应用程序在被装载的时候实例化,并且在断电的时候保持运行。Java Card小应用程序起一个服务器的作用,并且是无源的。在一张卡片被加电以后,每个小应用程序都保持非运行的状态直到它被选择,在此时可能会做初始化。小应用程序只有在一个APDU 被发送给它以后才被激活。一个小应用程序如何激活(被选择)在"一个Java Card小应用程序的生命周期"一节中描述。

与Java Card小应用程序通讯(访问智能卡)

你可以使用两种模型中的任何一种来在一个主应用程序和一个Java Card小应用程序之间通信。第一个模型是基本消息传送模型,第二种是基于Java Card远程方法调用(JCRMI),这是J2SE RMI分布式对象模型的一个子集。此外,SATSA通过一个基于更加抽象的应用编程接口的普通连接框架(Generic Connection Framework,简称GCF)应用编程接口,让你要么使用消息传递要么使用JCRMI来访问智能卡。

JavaCard开发教程之消息模型

图1中说明的消息传递模型是所有Java Card通信的基础。它的核心就是应用程序协议数据单元(APDU),CAD和Java Card框架之间交换的一个逻辑数据包。JavaCard框架接收任何CAD发送进来的APDU命令并且传送到相应的小应用程序中。小应用程序处理APDU命令,然后返回一个响应APDU。那些APDU遵守国际标准规格ISO/IEC 7816 - 3和7816 - 4。

图1使用消息传递模型通讯

读卡器和卡之间的通信通常基于下面两种连接协议的一种,面向字节的T = 0,或者面向数据块的T = 1。还可能会用到被称为T = USB和T = RF的替换协议。JCRE APDU类向应用程序隐藏了一些协议细节,但不是全部,因为T = 0协议相当的复杂。

⒈APDU命令

一个APDU命令的结构由它的第一个字节的值控制,大部分情况下看上去如下所示:

图2、APDU命令

一个APDU命令有一个必须有的头和一个可选的体,包含:

· CLA(1字节):这个必要的字段识别指令的一个特定应用程序类。有效的CLA值在ISO 7816 - 4规范中定义:

表格1、ISO 7816 CLA值

·理论上,你可以使用所有的CLA值0x80或者更高值来用于特定应用程序指令,但是在许多现在的Java Card实现中,只有黑体显示的是实际认可的。

· INS(1字节):这个必需的字段指明CLA字段中标示的指令类中的一个特定指令。ISO 7816 - 4标准指定用于访问卡上的数据的基本指令,当它根据在像标准中定义的卡上的文件系统那样结构化的时候。附加功能已经在这个标准中的其它地方说明,其中一些是安全功能。表2中是一个ISO 7816指令的列表。只有当使用一个相应的CLA字节值时,你才可以根据标准定义你自己的特定应用程序的INS值,。

表格2、当CLA = 0x时的ISO 7816 - 4 INS值

· P1(1字节):这个必需的字段定义指令参数1。你可以使用这个字段来检验INS字段,或者用于输入数据。

· P2(1字节):这个必需的字段定义指令参数⒉你可以使用这个字段来检验INS字段,或者用于输入数据。

· Lc(1字节):这个可选的字段是命令的数据字段的字节数。

·数据字段(可变的,字节Lc数):这个可选的字段保存命令数据。

· Le(1字节):这个可选的字段指定在期望响应的数据字段中的极限字节数。

取决于命令数据的存在与否以及相应是否必须,命令APDU有四种变化。只有在你使用协议T = 0时,你才需要关心这些变化:

图3、APDU命令的四个可能的结构

一个典型的应用程序将以不同的结构方式使用不同的APDU命令。

2、响应APDU

响应APDU的格式很简单的:

图4、响应APDU

和一个APDU命令相似,响应APDU有可选择的和必要的字段:

·数据字段(可变长度,由APDU命令中的Le确定):这个可选择的字段包含小应用程序返回的数据。

· SW1(1字节):这个必要的字段是状态字1。

· SW2(1字节):这个必要的字段是状态字2。

这些状态字的值在ISO 7816 - 4规范中定义:

图5、响应状态码

Java Card框架应用编程接口中的ISO7816 Java接口定义了许多常数来帮助规范返回错误代码。

3、过程APDU

每当有一个进入的APDU用于所选择的小应用程序,JCRE就调用小应用程序的process ()方法,把进入的APDU作为一个参数传送。这个小应用程序必须解析APDU命令,处理数据、生成一个响应APDU,然后把控制权返回给JCRE。

RMI(JCRMI)通讯模型

第二种通信模型依靠J2SE RMI分布式对象模型的一个子集。

在RMI模型中,一个服务器应用程序创建并生成可访问的远程对象,并且一个客户应用程序获得到远程对象的远程引用,然后调用它们的远程方法。在JCRMI中,Java Card 小应用程序是服务器,而主应用程序是客户端。

JCRMI由类RMIService提供到扩展程序包javacardx.rmi中。JCRMI消息被封装到传入RMIService方法的APDU对象中,换句话说,JCRMI提供了一个基于APDU消息传递模型的分布式对象模型机制,通过这个机制服务器和客户端通信,来回传送方法信息、参数和返回值。

JavaCard 开发教程之虚拟机

Java Card 虚拟机(JCVM)规范定义了Java 程序设计语言的一个子集和一个用于智能卡的兼容Java 的虚拟机,包括二进制数据表示和文件格式,以及JCVM 指令集。

用于Java Card 平台的虚拟机是两部分实现,一部分在卡外,一部分运行在卡本身。卡上的Java Card 虚拟机解释字节码、管理类和对象等等。外部Java 虚拟机部分是一个开发工具,一般称为Java Card 转换工具,装载、检验和进一步地准备卡片小应用程序Java 类,用于在卡上执行。转换工具输出的是一个Converted Applet(CAP)文件,这是一个包含一个Java 程序包中所有类的文件。转换程序检验类是否遵循Java Card 规范。

JCVM 只支持Java 程序设计语言的一个有限的子集,然而它保留了许多熟悉的特性,包括对象、继承、程序包、动态对象创建、虚拟方法、接口和异常。JCVM 规范放弃了对许多语言元素的支持,因为这些语言元素可能会用掉很多智能卡本来就很有限的内存:

表格1、Java Card 语言限制的摘要信息

还有程序模型限制。例如一个装载库类不能再扩展到卡上;它隐含地成为final 类型。

为了符合存储限制,

JCVM 规范额外定义了许多程序属性的约束。表格4 JCVM 资源限制总结。 注意这些约束中许多对于Java Card 开发者来说是很明白的。

表格2、Java Card 虚拟机约束的摘要信息

在Java Card虚拟机中,象在J2SE虚拟机中一样,class文件是核心,但是JCVM规范定义了两种其他文件格式来进一步使平台独立,转换小应用程序(Converted Applet,CAP)和导出(Export)格式,这将后面的文章中讲述。

虚拟机的生命周期

JCVM的生命周期与卡片本身的生命周期一致:在卡片制造并测试之后至发行到持卡人手中的一段时间内它就开始了生命周期,当卡片丢失或者毁坏的时候它的生命周期也就结束了。卡片没有电力的时候JCVM也不会停止,因为它的状态被保存在卡片的非易失性存储器中。启动JCVM初始化JCRE并且创建所有的JCRE框架对象,这些在JCVM的整个生命周期都是运转着的。JCVM启动之后,与卡片所有的相互作用原则上都是被卡片上的某个小应用程序控制。当卡片没电的时候,保存在RAM中的任何数据都会丢失,但是保存在

永久性存储器中的任何状态都被保留。当再次加电以后,虚拟机又再次激活,这时虚拟机和对象的状态被恢复,并且重新开始执行等待进一步地输入。

JavaCard开发教程之接口

Java Card应用编程接口规范定义了传统的Java程序设计语言应用编程接口的一个小的子集--甚至小于J2ME的CLDC。不支持字符串也不支持多线程。没有象Boolean和Integer 这样的包装类,也没有Class和System类。

除Java核心类的小子集以外,Java Card框架还定义了它自己的特定支持Java Card 应用程序的核心类。这些包含在下面的程序包中:

· java.io定义了一个异常类,基本的IOException类,来完成RMI异常层次。除此之外,没有包含其他传统的java.io类。

·https://www.wendangku.net/doc/702144086.html,ng定义了Object和Throwable类,但是没有J2SE中那么多方法。它还定义了许多异常类:Exception基本类,各种运行时间异常和CardException。除此之外,没有包含其他传统的https://www.wendangku.net/doc/702144086.html,ng类。

·java.rmi定义了Remote接口和RemoteException类。除此之外,没有包含其他传统的java.rmi类。对远程方法调用(Remote Method Invocation,RMI)的支持被包含来简化的移植并整合到使用Java Card技术的设备中。

·javacard.framework定义了组成核心Java Card框架的接口,类和异常。它定义了重要的概念,例如个人识别号(Personal Identification Number,PIN),应用程序协议数据单元(Application Protocol Data Unit,APDU),Java Card小应用程序Applet,Java Card System(JCSystem)和一个utility类。它还定义了各种ISO7816常数和各种Java Card 特定的异常。表格5总结了这些程序包的内容:

Table 5. 表格Java Card v2.2 javacard.framework

javacard.framework.service定义了用于服务的接口、类和异常。服务处理APDU格式的进入的命令。表格6总结了框架服务应用编程接口:

表格6. javacard.framework.service

javacard.security定义了用于Java Card安全框架的类和接口。Java Card规范定义了一个强健的安全应用编程接口,包括各种型式的私钥和公钥及其算法、用于计算循环码校验(CRCs)的方法、消息摘要和签名:

表格7. javacard.security

javacardx.crypto是一个扩展程序包,定义了接口KeyEncryption和Cypher类,都在自己的程序包中,便于控制导出。使用KeyEncryption来解密一个使用加密算法的输入秘钥。Cypher是所有的密码必须实现的基本抽象类。

CardRemoteObject定义两个方法export()和unexport(),允许或者禁止从卡外到对象的远程访问。RMIService扩展了BasicService,并且实现RemoteService来处理RMI请求。

安全和信任服务应用编程接口(SATSA)

定义在JSR177中的SATSA,指定一个提供用于J2ME的安全和信任应用编程接口的可选程序包。客户端应用编程接口提供了到通过一个安全元素(例如一张智能卡)提供的服务的访问,包括敏感信息的安全存储与检索,以及加密和验证服务。

SATSA利用定义在CLDC 1.0版本中的普通连接框架(GCF)来提供到消息传递和JCRMI通信模型的更抽象的接口。为了支持信息传送,SATSA定义了APDU:URL模式和APDUConnection,并且为了支持JCRMI,它定义了JCRMI:模式和JavaCardRMIConnection。

SATSA有下面的程序包组成:

java.rmi定义了Java2标准版java.rmi程序包的一个子集,特别是Remote和RemoteException。

javacard.framework定义了一个远程方法可能抛出的标准Java Card应用编程接口异常:CardRuntimeException、ISOException、APDUException、CardException、PINException、SystemException、TransactionException和UserException。

javacard.framework.service定义了远程的方法可能抛出的一个标准的Java Card应用编程接口服务异常:ServiceException。

javacard.security定义了一个远程方法可能抛出的标准的Java Card应用编程接口与

加密相关的异常:CryptoException。

javax.microedition.io定义了两个连接子接口,APDUConnection用于基于APDU协议的智能卡的访问,JavaCardRMIConnection用于Java Card RMI协议。

javax.microedition.jcrmi定义了Java Card RMI stub编译程序生成的stub使用的类和接口。

javax.microedition.pki定义了用于用户证书基本管理的类。

javax.microedition.securityservice定义了用于生成应用程序级别的数字签名的类。

Java Card运行时环境

JCRE规范定义了Java Card虚拟机的生命周期,小应用程序生命周期,小应用程序如何被选择并相互隔离,事务和对象持久性和共享。这JCRE提供一个平台无关的接口到卡片的操作系统提供的服务。它由Java Card虚拟机、Java Card应用编程接口和任何特定供应商的扩展组成:

图Java Card体系结构和运行时环境

JavaCard开发教程之小应用程序

Java Card平台是一个安全的多应用环境-许多来自不同供应商的不同的小应用程序可以在同一张卡片上安全地共存。每个小应用程序被指派给一个执行上下文,这个上下文控制到分配给它的对象的访问。

一个执行上下文和另一个执行上下文之间的界限经常被称为小应用程序防火墙( applet firewall)。它是Java沙箱安全概念的一个Java Card运行时间改进本,联合类装入器java.ClassLoader和访问控制器、java.AccessController的功能。Java Card防火墙创建了一个虚拟堆,这样一个对象只能访问存在于相同的防火墙内的(公共的)方法和数据。一个防火墙可能包含许多小应用程序及其他对象,比如公共的秘钥。一个Java Card执行上下文目前作用域是程序包。当每个对象被创建的时候,它被指派去执行调用程序的上下文。

Java Card平台支持跨防火墙的安全对象共用。图表12描述小应用程序隔离和对象共用:

图表1. 小应用程序防火墙和对象共用

典型的流程,如图表12中的描述:

请求通过调用系统的JCSystem.getAppletShareableInterfaceObject ()方法访问Appletc的共享接口。

由于Appleta,JCRE通过调用小应用程序的getShareableInterfaceObject ()方法来要

求Appletc的可共享的接口。

如果Appletc允许共用,Appleta将获得一个Appletc的共享对象的引用。Appleta现在就可以访问Appletc了。Appleta将拥有它创建的任意对象,即使是那些定义在Appletc的。

在同一个执行上下文中的小应用程序默认情况下能够相互访问,所以Appleta和Appletb不需要遵循这个程序来共享对象。

管理内存和对象

在一个Java Card设备中,内存是最重要的资源。在一些Java Card中,实现一个垃圾收集程序可能不能使用。当一个对象被创建的时候,对象和它的内容被保存在非易失性存储器中,使之可在会话之间使用。在某些情况下,应用程序数据不需要持久- -它是暂时的或者瞬变的(transient)。为了减少智能卡的持久性内存的消耗,并且最大化它的生命周期,我们要尽可能的经常以transient更新数据。

Java Card技术不支持关键字transient。取而代之,Java Card应用编程接口(javacard.framework.JCSystem)定义了三个方法,允许你在运行时间创建transient数据,还定义了一个方法让你检查一个对象是否是transient的:

static byte[] makeTransientByteArray(short length, byte event)

static Object makeTransientObjectArray(short length, byte event)

static short[] makeTransientShortArray(short length, byte event)

static byte isTransient(https://www.wendangku.net/doc/702144086.html,ng.Object theObj)

你可以创建一个瞬变的字节或者short基本数据类型的数组,你也可以创建一个瞬变Object。但是记住下面用于瞬变数据的行为:

一个瞬变对象的状态在会话之间不能持久保存。注意内容(不是对象本身)是什么是瞬变的。和任何其他的Java语言对象一样,一个瞬变对象只要它被引用就一直存在。

当一个事件例如卡片复位或者小应用程序取消选择发生的时候,一个瞬变对象的内容可能重置为字段的缺省值(0、false或者null)。

因为安全的理由,瞬变对象的字段不被保存在持久内存中。

对瞬变对象字段的更新不是原子性的,不会受事务的影响。

在一个Java Card环境中,数组和基本类型应在对象声明中声明,并且你应该最小化对象实例化,以利于对象重用。实例化对象在小应用程序生命周期中只有一次,最好在小应用程序的初始化阶段,在小应用程序生命周期中只被调用一次的install()方法中。

为了促进对象的重用,对象应该保持在小应用程序的生命周期的范围内或引用中,并且它们的状态(成员变量的值)在重用之前根据情况重置。因为垃圾收集程序并不总是可用的,一个应用程序可能从不回收分配给不太占用内存的对象的存储器。

持久的事务

JCRE支持原子事务,原子事务安全地更新一个或多个持久对象。如果发生掉电或者程序错误等情况,事务将保护数据的完整性。事务是在系统级支持的,通过下面的方法:

JCSystem.beginTransaction()

https://www.wendangku.net/doc/702144086.html,mitTransaction()

JCSystem.abortTransaction()

在一个为许多事务模型所共用的模式中,一个Java Card事务以对beginTransaction()的调用开始,以对commitTransaction()或者abortTransaction()的调用结束。让我们来看看使用这些应用程序编程接口的代码片断:

...

private short balance;

...

JCSystem.beginTransaction();

balance = (short)(balance + creditAmount);

https://www.wendangku.net/doc/702144086.html,mitTransaction();

...

实例变量balance的更新是为了保证一个原子操作。如果一个程序错误或者电力重置等事件发生,这个事务就会保证前面的balance值余额被恢复。

JCRE不支持嵌套事务。

JavaCard开发教程之生存周期

卡片上的每个小应用程序由一个Application标识符(AID)唯一标识。定义在ISO 7816 - 5中的AID是一段5到16字节之间的序列。所有的小应用程序必须扩展Applet抽象基本类,这个类定义了JCRE使用的方法来控制小应用程序的生存周期,如图10概括:

图表1. Java Card小应用程序生命周期方法

小应用程序生存周期在小应用程序被下载到卡片中并且JCRE调用小应用程序的static Applet.install ()方法的时候开始,并且小应用程序通过调用Applet.register ()在JCRE中注册。一旦小应用程序被安装并且注册,它处于未选择的状态,可以进行选择并且处理APDU。图表11.总结小应用程序方法的操作。

图表2、使用Java Card小应用程序方法

当处在未选择的状态的时候,小应用程序是非激活状态。当主应用程序要求JCRE选择一个卡片中特定的小应用程序的时候(通过指示读卡器发送一个SELECT APDU或者MANAGE CHANNEL APDU),一个小应用程序被选择进行APDU处理。为了通知这个小应用程序主应用程序已经选择了它,JCRE调用它的select()方法;小应用程序一般执行相应的初始化来为进行APDU处理做准备。

一旦选择,JCRE传送输入的APDU命令到小应用程序,通过调用它的process()方法来进行处理。JCRE捕捉任何小应用程序没能捕捉的异常。

当主应用程序告诉JCRE选择另一个小应用程序的时候,前一个小应用程序取消选择。JCRE 通知活动的小应用程序,它已经通过调用它的deselect()方法被取消了选择,小应用程序回到不活动的未经选择的状态。

Java Card会话和逻辑通道

卡片会话是卡片被加电并且和读卡器交换APDU的一段时间。

Java Card 2.2支持逻辑通道(logical channels)的概念,允许最多智能卡中的16个应用程序会话同时开启,每个逻辑通道一个会话。因为卡片中的APDU的处理不能中断,并且每个APDU 包含一个到逻辑通道(在CLA字节)的引用,变动的APDU可以拟同步地访问卡片上的许多小应用程序。你可以设计一个小应用程序被多次选择;也就是说,每次和一个以上逻辑通道通信。多选的小应用程序必须实现javacard.framework.MultiSelectable接口和相应方法。

在一些卡片部署中,一个默认小应用程序可以被定义为在卡片复位以后被自动地选择,用于在基本逻辑通道(通路0)上通信。Java Card 2.2允许你定义默认小应用程序,但是不指定的如何做;其机理由厂家特定。

一看就懂的Android APP开发入门教程

工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择U SE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Andro id的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

数据库应用基础教程答案

数据库应用基础教程答案 【篇一:access数据库应用基础教程(第三版)习题及答 案】 txt>程(第三版)习题集答案 第1章数据库系统概述 1. 什么是数据库?什么是数据库系统?答:数据库(database) 是存放数据的仓库,严格的讲,数据库是长期存储在计算机内,有组 织的,可共享的大量数据集合。 数据库系统(database systems),是由数据库及其管理软件组成的系统。它是为适应数据处理的需要而发展起来的一种较为理想的 数据处理的核心机构。它是一个实际可运行的存储、维护和应用系 统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。 2. 什么是数据库管理系统?它有哪些主要功能? 答:数据库管理系统(database management system)是一种操纵 和管理数据 库的大型软件,用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。 数据库管理系统的主要功能有:数据定义、数据操作、数据库的运 行管理、数据组织、数据库的保护、数据库的维护和通信。 3. 说出几种常用的数据模型。 答:层次模型、网状模型、关系模型。 4. 什么是关系模型? 答:关系模型是用二维表的形式表示实体和实体间联系的数据模型。 5. 简述数据库设计的步骤。 答:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数 据库的建立和测试、数据库运行和维护。 第2章 sql 语言简介 1. 什么是sql语言?sql语言具有哪些特点和功能? 答:sql是一种数据库查询和程序设计语言,用于存取数据以及查询更新和管理关系 数据库系统。 sql的特点和功能有:查询,操作,定义和控制四个方面,sql语言 具有高度的非过程化,语言简洁,语义明显,语法结构简单,直观

Android studio 开发安装教程

Android studio 安装教程 目录 Android studio 安装教程 (1) 1.JDK 的安装和Java 环境变量的设置 (2) 1.1 JDK 下载地址: (2) 1.2 安装JDK (2) 1.3、环境变量设置 (4) 2.Android studio 的安装 (7) 2.1 开始安装打开android studio 安装文件 (7) 2.2 缓存文件夹配置 (9) 2.3 打开Android studio (11)

1.JDK 的安装和Java 环境变量的设置 1.1 JDK 下载地址: https://www.wendangku.net/doc/702144086.html,/technetwork/java/javase/downloads/index.html JDK(Java Development Kit) 是整个Java 的核心,包括一系列Java 开发的东西,安装完毕需要配置一下环境变量。 1.2 安装JDK 安装JDK 本机是64 位,所以,选择jdk-7u21-windows-x64.exe 下载,下载完成后,进行安装

1.3、环境变量设置 1.3.1 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: 1.3. 2. JAVA_HOME JDK 的安装路径,这个环境变量本身不存在,需要创建,创建完则可以利用%JAVA_HOME% 作为统一引用路径,其值为:j d k在你电脑上的安装路径。 1.3.4 PATH PATH 属性已存在,可直接编辑。作用是用于配置路径,简化命令的输入,其值 为:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

SQL Server 2008 数据库案例教程课后习题答案

《SQL Server 2008数据库案例教程》练习题及模拟试卷答案 第1章 一、判断题 1. 数据库技术是是计算机数据处理与信息管理系统的核心。(√) 2. 数据是用于描述现实世界中具体事物或抽象概念,可存储的数字符号。(×) 3. 数据库是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。(√) 4. 数据库管理系统是一个按数据结构来存储和管理数据的服务器管理系统。(×) 5. 关系数据库,是建立在关系模型基础上的数据库。(√) 二、单选题 1. 数据(Data)是一些可存储并具有明确意义的(A) A. 符号 B.图形 C.文字 D.数字 2. 人工阶段计算机用于数值计算,没有操作系统及管理数据的软件。这一阶段的年代是(C) A. 19世纪80年代 B. 20世纪20年代 C.20世纪50年代 D. 20世纪80年代 3. 在网页中常用的图像格式是(D) A..bmp和.jpg B..gif和.bmp C. .png和.bmp D. .gif和.jpg 4.数据库系统的重要特征是什么?(D) A. 数据的独立性和动态性 B.数据的静态性和独立性 C.数据的动态性和共享性 D.数据的独立性和共享性 三、多选题 1.与数据库技术密切相关的基本概念有(ABCD) A. 数据 B. 数据库 C. 数据库管理系统 D. 数据库系统 2.数据库可分为哪几种类型?(ABC) A. 关系型数据库 B. 网状数据库 C. 层次数据库 D.树形数据库 3. DBMS提供数据操作语言DML,为用户提供了哪些操作?(ABCD) A.数据的追加B.数据的删除C.数据的更新D.数据的查询 4.DBMS要分类组织、存储和管理各种数据,包括哪些内容?(ABC) A. 数据字典 B. 用户数据 C. 存取路径 D.服务器 5. 目前,DBMS常见品牌有哪些公司?(ABC) A.微软公司的SQL Server B.IBM公司的DB2 C.甲骨文公司的ORACLE D.索尼公司的MySQL 四、填空题 1.数据库(管理)技术经历了人工管理阶段和文件管理阶段。 2.文件系统不提供对任意部分数据的(快速)访问 3.关系数据库,是建立在关系(模型)基础上的数据库。 4.实体-联系模型(简称E-R模型)是由P.P.Chen于(1976)年首先提出的。

如何开发iOS应用程序

如何开发iOS应用程序 开发iOS应用程序既有趣又回报丰厚,如果您是一位新手,自然想知道从哪里入手。本路 线图提供了iOS应用程序开发的绝佳起点。在Mac 电脑上,您可以创建在iPad、iPhone 和iPod touch 上运行的iOS应用程序。遵循本路线图以了解如何取得开发工具,理解主要概念及最佳实践,并学会查找更多信息。 继续遵循此路线图,您将使用到Xcode和iOS SDK(Apple 提供的开发工具)。您将了解Objective-C(驱动所有iOS应用程序和框架的程序设计语言)的编程基础知识,并将探索Cocoa Touch 框架。您将创建一个简单的iOS应用程序,并学会在设备上进行测试。最后,您还会学到如何将应用程序提交到App Store。 路线图中的每个页面,都介绍一个新主题,并链接到一篇或多篇有关该主题的简短文章。路线图只是提供基本的入门知识,最后一页“接下来做什么”包含您接下来应该阅读的文稿链接。完成了路线图,您就具备了进一步了解各个主题的能力,并且掌握到着手开发iOS应用程 序的知识、工具和技能。 如果您是Mac 开发者:您其实已经掌握了不少开发iOS应用程序的知识。可是,尽管iOS 和OS X 使用相同的开发工具和开发语言,两者仍然存在着一些重大的差异(您将在路线图的学习过程中发现这点)。有关这些平台差异的全面描述,请参阅iOS Technology Overview(iOS技术概述)中的“Migrating from Cocoa”(从Cocoa 迁移)。

设置 您在开发应用程序时,会使用到iOS软件开发套件(SDK) 以及Xcode,即Apple 的集成开发环境(IDE)。Xcode包括源代码编辑器、图形用户界面编辑器及其他许多功能,为您开发完美的iPhone、iPod touch 和iPad应用程序,提供了所需要的全部资源。大多数应用程序开发工具集中显示在一个窗口中,Xcode称之为工作区窗口。在此窗口内,您可以顺畅地从代码编写转换到代码调试,再到用户界面设计。iOS SDK 扩展了Xcode工具集,包含iOS专用的工具、编译器和框架。 开始之前: 1. 下载最新版本的Xcode。 在Mac 上打开Mac App Store应用程序,搜索Xcode,然后点按“免费”按钮下载Xcode。您下载的Xcode已包含iOS SDK。(Mac OS X v10.7 以及更高版本已经预装Mac App Store 应用程序。如果您使用的是较早版本的Mac OS X,则需要升级。) 您无需加入该计划也可编写应用程序并在iOS Simulator 中测试。但是,您只有加入该计划,才能在设备上测试与分发应用程序。加入该计划后,您还可以全权访问iOSDev Center 和iOS Provisioning Portal。如果您现在加入,就可以执行路线图中的所有操作步骤,包括在设备上测试应用程序。 马上开始 开发优秀的iOS应用程序,需要大量的学习和实践。不过,有了这些工具和iOS SDK,开发一个简单可用的程序并非难事。您的首个iOS应用程序教程,介绍了这些工具、基本设计模式和应用程序开发过程。通过这个教程,您将学习创建一个能接收用户文本输入并能将文本显示在屏幕上的应用程序。您还将学到如何在Mac 上的iOS Simulator 中运行这一程序。本教程中的简单步骤引入了一些简练实用的概念,将在今后的程序开发中不断地用到。

Access数据库应用基础教程(第三版)习题及答案

Access数据库应用基础教程(第三版)习题集答案 第1章数据库系统概述 1. 什么是数据库?什么是数据库系统?答:数据库(database)是存放数据的仓库,严格的讲,数据库是长期存储在计算机内,有组织的,可共享的大量数据集合。 数据库系统(database systems),是由数据库及其管理软件组成的系统。它是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。它是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。 2. 什么是数据库管理系统?它有哪些主要功能? 答:数据库管理系统(database management system)是一种操纵和管理数据

库的大型软件,用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。数据库管理系统的主要功能有:数据定义、数据操作、数据库的运行管理、数据组织、数据库的保护、数据库的维护和通信。 3. 说出几种常用的数据模型。 答:层次模型、网状模型、关系模型。4. 什么是关系模型? 答:关系模型是用二维表的形式表示实体和实体间联系的数据模型。 5. 简述数据库设计的步骤。 答:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的建立和测试、数据库运行和维护。 第2章 SQL 语言简介 1. 什么是SQL语言?SQL语言具有哪些特点和功能? 答:SQL是一种数据库查询和程序设计语言,用于存取数据以及查询更新和管理关系

数据库系统。 SQL的特点和功能有:查询,操作,定义和控制四个方面,SQL语言具有高度的非过程化,语言简洁,语义明显,语法结构简单,直观易懂的特点。SQL语言即可以作为独立语言使用,用户可以在终端键盘上直接键入SQL命令对数据库进行操作,也可以作为嵌入式语言,嵌入到其他高级语言中。 2. SQL语言包含哪几个部分? 答:SQL语言包含4个部分:数据定义语言(DDL-Data Definition Language)、数据查询语言(DQL-Data Query Language)、数据操纵语言(DML-Data Manipulation Language)、数据控制语言(DCL-Data Control Language) 3. 在联接查询中,包含哪几类联接?答:联接可分为3类: (1)内部联接(典型的联接运算,使用类似于 = 或 <> 的比较运算符)。内部联接使用比较运算符根据每个表的通用列中的值匹配两个表中的行。内部联接包括同等

Access2010数据库快速开发案例教程(二)

5.1 建表与相关字段属性的解说 学习要求:本节预计学习课时为1小时,重点是:a.新建表的操作;b.设置主键; c.理解字段的各个属性。学习说明 我们都知道,无论是多么强大、多么先进的数据库,都是基于存储在表中的数据来运行的,因此,表的设计和建立就显得特别重要,这也是数据库中最基础、最重要的组成部分之一——如若把数据库比作一个仓库的话,那么,表的设计,就好比这个仓库的仓位设计,而表的建立,就好比是仓位建设的施工——因此,如若仓库的仓位的设计和施工出了问题,毫无疑问,必然会给这个仓库的管理带来极大的不便,因此,希望大家能注重基本功的概念和练习,只有牢固的基本功,才能让我们走得更远、走得更好。 建表与相关字段属性的解说 在前面的课程中,我们已经讲过表的设计,那么,在这一节中,我们就来讲表的施工,也就是表的建立,所谓表的建立,就是将先前对应的表的设计图,在当前的对应的数据库文件中加以实现。 我们将以实际的例子加以说明,比如tblCodeyg这个表,它的表设计如下: 那么,我们应该如何实现呢? 首先,进入我们先前存储项目文件的C盘下的BXMIS目录,双击鼠标左键打开【Data.mdb】文件,则如下图所示:

对于熟悉Access 2003的人来说,这个界面可能有些陌生,但是原理都是一样的——此时,我们注意到,当前默认显示的是的栏目,接下来点选后面的小倒黑三角,则如下图所示:

接下来,我们选中【表(B)】选项,则如下图所示: 如上图所示,在【表】栏目下,我们会发现,已经有了8个名称以Sys为前缀的表的存在,需要特别说明的是,这些表并非是Access本身就有的,而是《盟威软件快速开发平台》的系统表,也就是说,除非是教程的指引,这些表是不允许我们手工修改和删除的——如若擅自改动或删除这些平台系统表,那么,可能会导致基于平台运行的各类系统出现各种难以预料的故障。 接下来,我们正式开始建表,请依次点选【创建】——【表设计】,如下图所示:

Android APP开发入门教程

Android APP开发入门教程 这篇文章主要介绍了Android APP开发入门教程,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教程,需要的朋友可以参考下。 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android 程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android 开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择USE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK 包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Android的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK 目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

苹果 iOS 移动应用开发新手入门

苹果 iOS 移动应用开发新手入门 马上着手开发 iOS 应用程序 开发iOS 应用程序既有趣又回报丰厚,如果您是一位新手,自然想知道从哪里入手。本路线图提供了iOS 应用程序开发的绝佳起点。在Mac 电脑上,您可以创建在iPad、iPhone 和iPod touch 上运行的iOS 应用程序。遵循本路线图以了解如何取得开发工具,理解主要概念及最佳实践,并学会查找更多信息。 继续遵循此路线图,您将使用到Xcode 和iOS SDK(Apple 提供的开发工具)。您将了解Objective-C(驱动所有iOS 应用程序和框架的程序设计语言)的编程基础知识,并将探索Cocoa Touch 框架。您将创建一个简单的iOS 应用程序,并学会在设备上进行测试。最后,您还会学到如何将应用程序提交到App Store。

设置 您在开发应用程序时,会使用到iOS 软件开发套件(SDK) 以及Xcode,即Apple 的集成开发环境(IDE)。Xcode 为开发完美的iPhone、iPod touch 和iPad 应用程序,提供了您所需要的一切。它包括源代码编辑器、图形用户界面编辑器和许多其他功能。大多数应用程序开发工具集中显示在一个窗口中,Xcode 称之为工作区窗口。在此窗口内,您可以顺畅地从代码编写转换到代码调试,再到用户界面设计。iOS SDK 扩展了Xcode 工具集,包含iOS 专用的工具、编译器和框架。 开始之前: 1.下载最新版本的Xcode。 在Mac 上打开Mac App Store应用程序,搜索Xcode,然后点按“免费”按钮下载Xcode。您下载的Xcode 已包含iOS SDK。(Mac OS X v10.7 以及更高版本已经预装Mac App Store 应用程序。如果您使用的是较早版本的Mac OS X,则需要升级。) 2.加入iOS Developer Program 成为Apple 开发者。 您无需加入该计划也可编写应用程序并在iOS Simulator 中测试。但是,您只有加入该计划,才能在设备上测试与分发应用程序。加入该计划后,您还可以全权访问iOS Dev Center 和iOS Provisioning Portal。如果您现在加入,就可以执行路线图中的所有操作步骤,包括在设备上测试应用程序。 马上开始 开发优秀的iOS 应用程序,需要大量的学习和实践。不过,有了这些工具和iOS SDK,开发一个简单可用的程序并非难事。“您的首个iOS 应用程序”教程,介绍了这些工具、基本设计模式和应用程序开发过程。通过这个教程,您将学习创建一个能接收用户文本输入并能将文本显示在屏幕上的应用程序。您还将学到如何在Mac 上的iOS Simulator 中运行

基础教程-SQL_Server2008_创建数据库以及数据库基础详解资料

第2章创建数据库 《转自网上-初学用到得资料,感觉很好,就分享给大家,仅仅是转载》 数据库是用来存储数据的空间,它作为存储结构的最高层次是其他一切数据库操作的基础。用户可以通过创建数据库来存储不同类别或者形式的数据。 因此,在本章用户将详细地学习针对数据库的基本操作和数据库的日常管理操作,即如何创建数据库、对数据/日志文件进行操作、生成数据库快照等日常操作。 本章学习目标: ?了解数据库对象及构成 ?掌握创建数据库的两种方法 ?掌握管理数据库的方法 ?了解数据库快照 2.1 SQL Server数据库概述 SQL Server中的数据库是由数据表的集合组成的,每个数据表中包含数据以及其他数据库对象,这些对象包括视图、索引、存储过程和触发器等。 数据库系统使用一组操作系统文件来映射数据库管理系统中保存的数据库,数据库中的所有数据和对象都存储在其映射的操作系统文件中。这些操作系统文件可以是数据文件或日志文件。 要熟练地理解和掌握数据库,必须对数据库的一些基本概念及构成有一个清楚的认识。 2.1.1 常见数据库对象 数据库中存储了表、视图、索引、存储过程、触发器等数据库对象,这些数据库对象存储在系统数据库或用户数据库中,用来保存SQL Server数据库的基本信息及用户自定义的数据操作等。 1.表与记录 表是数据库中实际存储数据的对象。由于数据库中的其他所有对象都依赖于表,因此可以将表理解为数据库的基本组件。一个数据库可以有多个行和列,并且每列包含特定类型的信息。列和行也可以称为字段与记录。字段是表中纵向元素,包含同一类型的信息,例如读者卡号(Rcert)、姓名(name)和性别(Sex)等;字段组成记录,记录是表中的横向元素,包含有

Android开发入门教程

第一篇:安装SDK 这里主要介绍如何安装Android的SDK开发包和配置开发环境。如果你还没有下载SDK,点击下面的链接开始。 Download the Android SDK 系统和软件配置要求 要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下: 支持的开发环境 Eclipse Eclipse 3.2,3.3(Europa) Android开发工具插件(可选) 其他的开发环境或者IDE JDK5.0或者JDK6.0(仅有JRE是不够的) 安装SDK 下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tools加入到你的路径中 1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/t ools的完整路径加入其中。如果没有找到设定PATH变量的行,你可以自己添加一行: export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径> 2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,你可以创建一个.bash_profile文件。 3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。 通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。需要注意到是,当你升级了SDK后,如果安装路径有变动的话,不要忘记了更新你的PATH变量的设置,将其指向变动后的路径。 安装Eclipse插件(ADT) 如果你选择Eclipse作为Android的开发环境,可以安装一个专门为Android定制的插件:Android Deve lopment Tools(ADT),ADT插件集成

编程入门教程.doc

编程入门教程 编程入门教程由勤快学基础教程https://www.wendangku.net/doc/702144086.html,梳理的一本面向程序开发入门初学者的编程入门教程,是一个涵盖了游戏、PLC、VB、数控、JAVA、APP、Matlab、C语言、Shell、IOS、Android安卓等手机和PC编程的入门教程。 1.编程入门教程 1.1. 游戏编程入门 游戏编程入门适用于任何对C++语言有基本了解的读者阅读,适宜作为读者进入游戏开发领域的技术入门学习用书。 游戏编程入门介绍如何设计和构建自己的电脑游戏。游戏编程入门不是泛泛地介绍编程理论,而是引导读者开发一个“即插即用”的游戏引擎,可以增强和重用这个游戏引擎以开发各种游戏。书中包括了7个完整游戏的详尽解释以及示例代码,使读者准备好开始自己的游戏项目开发。如果读者喜爱玩游戏,那么只需在学习了如何开发它们之后,就可以玩上自己开发的游戏了。 光盘内容:Bloodshed Dev-C++开发环境;在游戏编程入门中开发的示例和游戏的完整源代码和可执行程序文件;C++语言和Windows编程的入门指导。 1.2. plc编程入门 可编程序控制器,英文称Programmable Controller,简称PC。但由于PC容易和个人计算机(Personal Computer)混淆,故人们仍习惯地用PLC作为可编程序控制器的缩写。它是一个以微处理器为核心的数字运算操作的电子系统装置,专为在工业现场应用而设计,它采用可编程序的存储器,用以在其内部存储执行逻辑运算、顺序控制、定时/计数和算术运算等操作指令,并通过数字式或模拟式的输入、输出接口,控制各种类型的机械或生产过程。PLC 是微机技术与传统的继电接触控制技术相结合的产物,它克服了继电接触控制系统中的机械触点的接线复杂、可靠性低、功耗高、通用性和灵活性差的缺点,充分利用了微处理器的优点,又照顾到现场电气操作维修人员的技能与习惯,特别是PLC的程序编制,不需要专门的计算机编程语言知识,而是采用了一套以继电器梯形图为基础的简单指令形式,使用户程序编制形象、直观、方便易学;调试与查错也都很方便。用户在购到所需的PLC后,只需按说明书的提示,做少量的接线和简易的用户程序编制工作,就可灵活方便地将PLC应用于生产实践。 1.3. 电脑编程入门 编辑程序让电脑执行的过程就叫编程很多软件都可以编程具有代表性的计算机语言有Java,BASIC C,C++,VB,VF,SQL,网页编程JSP,ASP,PHP ,软件是eclipse,Microsoft Visual

xcode全中文教程(iOS开发快速入门利器)

介绍 本教程向您演示如何创建一个简单的iPhone应用程序。本文不打算对iPhone目前可用的特性作全面介绍,而是介绍一些技术,让您对基础开发过程有初步了解。 如果您刚开始使用Cocoa Touch进行iPhone开发,则您需要阅读本文档。阅读之前,您需要大致了解计算机编程基础,尤其是要了解Objective-C。如未曾用过该语言,则至少应通读学习Objective-C:入门教材。 本文档不是为了创建一个优雅漂亮的应用程序,而是为了向您描述: 如何使用Xcode创建并管理一个工程 基础设计模式和iPhone开发的基本技术 Interface Builder使用入门 如何让应用程序响应来自标准用户接口控件的用户输入 另外,我们还在教程中指出其他一些文档。只有阅读这些文档,您才能充分理解iPhone开发的工具和技术。 重要:为了学习本教程,您需要安装iPhone SDK和开发者工具,它们位于iPhone开发中心。 文档描述的工具包含在iPhone SDK v3.0里面—请检查一下Xcode版本,它不能低于3.1.3。 文档的组织方式 本文档分为如下章节: “教程概述和设计模式” “创建您的工程” “添加一个视图控制器” “查看Nib文件” “配置视图” “实现视图控制器”

“排除疑难” “下一步做什么?” 下页 教程概述和设计模式 本章概述您将要创建的应用程序以及将会使用的设计模式。 教程概述 在学习过程中,您将创建一个很简单的应用程序。它含有一个文本字段,一个标签和一个按键。您可以把名字输入到文本字段中,再按下按键,这时标签的文本就会变成“Hello, !”:

数据库基础教程课后习题答案顾韵华

习题1 1、简述数据库系统的特点。 答:数据库系统的特点有: 1)数据结构化 在数据库系统中,采用统一的数据模型,将整个组织的数据组织为一个整体;数据不再仅面向特定应用,而是面向全组织的;不仅数据内部是结构化的,而且整体是结构化的,能较好地反映现实世界中各实体间的联系。这种整体结构化有利于实现数据共享,保证数据和应用程序之间的独立性。 2)数据共享性高、冗余度低、易于扩充 数据库中的数据能够被多个用户、多个应用程序共享。数据库中相同的数据不会多次重复出现,数据冗余度降低,并可避免由于数据冗余度大而带来的数据冲突问题。同时,当应用需求发生改变或增加时,只需重新选择不同的子集,或增加数据即可满足。 3)数据独立性高 数据独立性是由DBMS 的二级映像功能来保证的。数据独立于应用程序,降低了应用程序的维护成本。 4)数据统一管理与控制 数据库中的数据由数据库管理系统(DBMS )统一管理与控制,应用程序对数据的访问均经由DBMS 。DBMS 提供四个方面的数据控制功能:并发访问控制、数据完整性、数据安全性保护、数据库恢复。 2、什么是数据库系统? 答:在计算机系统上引入数据库技术就构成一个数据库系统(DataBase System ,DBS )。数据库系统是指带有数据库并利用数据库技术进行数据管理的计算机系统。DBS 有两个基本要素:一是DBS 首先是一个计算机系统;二是该系统的目标是存储数据并支持用户查询和更新所需要的数据。 3、简述数据库系统的组成。 答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBase Administrator ,DBA )和用户组成。 4、试述数据库系统的三级模式结构。这种结构的优点是什么? 答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。 数据库应用1…… 外模式A 外模式B 模式 应用2应用3应用4应用5…… 模式 外模式/模式映像 模式/内模式映像 数据库系统的这种结构具有以下优点: (1)保证数据独立性。将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。 (2)有利于数据共享,减少了数据冗余。 (3)有利于数据的安全性。不同的用户在各自的外模式下根据要求操作数据,只能对

Android移动应用开发基础教程(微课版)-教学大纲

《Android移动应用开发基础教程(微课版)》教学大纲 学时:62 代码: 适用专业: 制定: 审核: 批准: 一、课程的地位、性质和任务 Android移动应用开发基础是普通高等学校计算机科学与技术专业的一门重要的专业基础课。通过本课程的学习,使学生能够在已有的计算机基础知识基础上,对Android移动应用开发有一个系统的、全面的了解、为掌握移动应用开发打下良好的基础;在系统理解和掌握Android移动应用开发基本原理的基础上,了解和掌握移动应用开发的基本原理和方法,具有设计和开发Android移动应用APP的基本能力。 Android移动应用开发是一门实践性非常强的学科,它要求学生在理解和掌握Android移动应用开发语言语法的基础上,充分利用实验课程,在计算机上动手完成程序的编写和调试。 二、课程教学基本要求 1.课程教学以Android移动应用开发方法为主,在教学过程中让学生掌握Android移动应用开发的基本原理和方法。 2.要求在教学过程中合理安排理论课时和实验课时,让学生有充分的使用在计算机上练习理论课程中学到的Android移动应用开发技巧和方法。 三、课程的内容 第1章 Android开发起步 让学生了解Android平台特点、体系架构和版本,掌握如何搭建Android开发环境,熟悉如何创建Android项目和Android编程的日志工具 第2章 Android核心组件:活动 让学生了解Android核心组件之一的活动是什么、活动生命周期,掌握活动基本操作、在活动中使用Intent、在活动之间传递数据、活动的启动模式。 第3章 UI设计 让学生熟练掌握线性布局、相对布局、通用UI组件、消息通知和菜单。 第4章广播机制 让学生了解广播机制,并熟练掌握如何使用广播接收器。 第5章数据存储 让学生熟练掌握Android文件存储、共享存储和SQLite数据库存储。 第6章多媒体 让学生熟练掌握播放多媒体文件、记录声音、使用摄像头和相册。 第7章网络和数据解析

SQLServer2008数据库应用教程课后答案

第1章数据库基础 一、单项选择题 1.C 2.A 3.C 4.D 5.D 6.B 7.A 8.B 9.B 10.D 11.C 12.A 13.C 14.B 15.A 16.B 17.A 18.D 19.B 20.B 21.A; D 22.A 23.C 24.D 25.B 26.B 27.B 28.D 29.B 30.B 二、填空题 1.概念;数据 2.属性 3.码 4.一对一联系;一对多(或多对一)联系;多对多联系 5.候选码 6.候选码 7.关系名(属性1,属性2,…,属性n) 8.关系数据结构;关系操作集合;关系完整性约束 9.实体;参照;用户定义的;实体;参照 10.空植 11.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运行和维护阶段 12.准确了解并分析用户对系统的要求,尤其是用户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应用系统的目标,产生用户和设计者都能接受的需求说明书,做为下一步数据库概念结构设计的基础。 13.将需求分析得到的用户需求抽象为信息结构即概念模型。 14.将概念结构进一步转化为某一DBMS支持的数据模型,并对其进行优化。 15.为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据库在物理设备上的存储结构和存取方法。 三、指出以下各缩写的英文意思和中文意思 1.DB:DataBase 2.DBMS:Database Management System 3.RDBMS: 4.DBS:DataBase System 5.DBA:Relational Database Management System 6.NF:Normal Form 7.DDL:Data Definition Language 四、按题目要求回答问题

APP开发入门教程

APP开发入门教程 这篇文章主要介绍了Android APP开发入门教程,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教 程,需要的朋友可以参考下 作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择USE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JA V A_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK 包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Android 的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

VBNET数据库编程基础教程

VBNET数据库编程基础教程 众所周知,https://www.wendangku.net/doc/702144086.html,自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。其中,https://www.wendangku.net/doc/702144086.html,又是.NET FrameWork SDK中重要的组成部分。要了解https://www.wendangku.net/doc/702144086.html,的数据库编程,首先要明白https://www.wendangku.net/doc/702144086.html,的工作原理以及相关的对象、方法、属性。本文将结合具体实例为你简单介绍https://www.wendangku.net/doc/702144086.html,数据库访问对象以及https://www.wendangku.net/doc/702144086.html,数据库编程基本方法。 一、https://www.wendangku.net/doc/702144086.html,数据库访问对象 (一)https://www.wendangku.net/doc/702144086.html,简介 https://www.wendangku.net/doc/702144086.html,是由微软Microsoft ActiveX Data Object(ADO)升级发展而来的。是在.NET中创建分布式数据共享程序的开发接口。https://www.wendangku.net/doc/702144086.html,的数据存取API提供两种数据访问方式,分别用来识别并处理两种类型的数据源,即SQL Server 7.0(及更高的版本)和可以通过OLE DB进行访问的其他数据源。为此ADO.NE T中包含了两个类库,System.Data.SQL库可以直接连接到SQL Server的数据,System.Data.ADO库可以用于其他通过OLE DB进行访问的数据源。如Acces s数据。 (二)https://www.wendangku.net/doc/702144086.html,的名称空间 https://www.wendangku.net/doc/702144086.html,是围绕System.Data基本名称空间设计,其他名称空间都是从Syste m.Data派生而来。它们使得https://www.wendangku.net/doc/702144086.html,不仅访问DataBase中的数据,而且可以访问支持OLE DB的数据源。 当我们讨论https://www.wendangku.net/doc/702144086.html,时,实际讨论的是System.Data和System.Data.OleDb 名称空间。这两个空间的所有类几乎都可以支持所有类型的数据源中的数据。这里我们讨论与后文实例有关的类。即OleDbconnection、OleDbDataAdapter、D ataSet和DataView。 上面列举的类中没有OleDb前缀的,派生自System.Data空间,有此前缀的派生自System.Data.OleDb空间。在使用中,如果要引用OleDb前缀的类,必须导入System.Data.OleDb名称空间。语法如下: Imports System.Data.OleDb 使用没有此前缀的类必须导入System.Data名称空间。语法如下: Imports System.Data

Android官方开发教程中文版(二)

Android官方开发教程中文版 添加操作栏 添加操作栏 操作栏是你能为你的Activity实现的重要的设计元素之一,它提供了几种用户界面特性,使你的应用能够保持和其它应用的一致性,以便用户很快熟悉它。主要功能包括:1.用专门的空间为你的应用指定标识并且指示出用户在应用中的位置。 2.以可预测的方式访问重要的操作(如搜索) 3.支持导航和视图切换(使用选项卡或下拉列表) 本课程提供了关于操作栏基础知识的快速指南,要获得关于操作栏各种特性的更多信息,请参考“操作栏”指南。 设置操作栏 操作栏的最基本形式是为Activity显示标题以及在标题左边显示应用图标。即使是这种简单的形式,操作栏也有利于通知用户当前的位置,以及为你的应用保持一致性。 操作栏包括一个应用图标和Activity标题 设置一个基本的操作栏需要你的应用使用一个Activity主题并启用操作栏。如何获取这样一个主题取决于你的应用支持的最低Android版本。因此这节课根据你的应用支持的Android最低版本分为两个部分。 仅支持Android3.0及以上版本 从Android3.0开始(API级别11),操作栏被包含在所有使用Theme.Holo(或它的派生类)主题的Activity中,当targetSdkVersion或minSdkVersion的值大于等于11时,Theme.Holo 是默认主题。 因此,要在Activity中添加操作栏,只需简单地把这两个属性之一的值设为11或更高就可以了,如:

Android APP开发入门教程_新手必学

Android APP开发入门教程 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。 当然如果你是一个初学者,你如果每天晚上有时间,你可以加企鹅(444—513_089)晚上免费和安卓开发经验丰富的架构师一起学习安卓,并获取之前的高清视频和工具以及源码。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择USE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JA V A_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK 支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Android的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录 即可。

相关文档
相关文档 最新文档