前言:中文期刊网精心挑选了程序开发范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
程序开发范文1
APP流量成本的急剧攀升做渠道运营的同学可能会清楚,过去两年里,APP推广的成本是呈翻倍增长的。有些垂类APP的CPA单价高达500元以上,对于创业者来说没有太多钱可以去砸在流量上,但流量往往是控制产品的命脉,每年有50%的新APP死在流量问题上。
移动互联网格局基本已定,用户主要需求场景已被巨头把持移动互联网发展已有五年时间,在这几年时间里,从PC时代迁移过来的连接人与信息、连接人与人、连接人与商品、连接人与服务四个大类已经基本完成了格局重塑。用户的主要需求场景,尤其是同时具备刚需和高频两个特点的场景,基础工具、生活服务、娱乐等都已经有PC时代的老巨头继续把持,或者移动互联网新生的小巨头们占据山头。
面向所有产品对用户时间的竞争在之前的文章里,白崎反复讲过一个观点就是现在的竞争不仅仅是同类竞品的竞争,其实是你在和所有产品竞争用户的时间。显然微信是目前的翘楚,平均每天长达4小时以上的停留时长。很多APP面临的问题便是用户即便下载安装了,但也想不起打开,或者打开了很快就被关闭。
(来源:文章屋网 )
程序开发范文2
关键词:电源管理; WDM; PCI; IRP
中图分类号:TN302.7 文献标识码:A
文章编号:1004-373X(2010)14-0196-03
Driver Development of Power Management for PCI Device
CHENG Hai-quan1,2, HU Jun1, XU Shu-yan1, XIE Ai-ping3
(1. Space Optics Research Department, Changchun Institute of Optics, Fine Mechanics and Physics, Chinese Academy of Sciences, Changchun 130033, China;
2. Graduate School, Chinese Academy of Sciences, Beijing 100039, China;
3. College of Communication Engineering, Jilin University, Changchun 130032, China)
Abstract: The cooperation of operating system (OS) and driver is needed to control the power status of equipments for making PCI device to possess the function of power management. By the aid of the study on the power supply of systems and devices under Windows OS, a power management scheme is proposed to control the power status of equipments through processing system power IRP in WDM driver. WDM driver's mechanism of processing the power management IRP is elaborated. An experiment shows that WDM driver based on this scheme can work well with Windows XP.
Keywords: power management; WDM; PCI; IRP
0 引 言
随着计算机软硬件技术发展,要求设备能够从待机或睡眠中快速启动;要求在不使用时,移动设备能够保持待机或休眠以节省电能的情况越来越多,传统的冷启动或热启动(复位启动)已不能满足人们的要求。微软在Windows操作系统下设计了电源管理构架,为系统和设备的电源管理需求提供了广泛的支持。目前Windows系统下的电源管理支持(advanced configuration and power interface ,ACPI) 高级配置和电源界面工业标准。
根据微软的WDM驱动程序模型,很容易写出具有一定功能的驱动程序,可是在设备运行了一段时间后,当系统要进入待机或休眠状态时,就会发现桌面上弹出一个窗口――禁止待机。出现这种现象是由操作系统的默认电源管理策略所致,实际的原因在于驱动程序中没有写关于电源管理的代码。本文中研究的WDM驱动就是为了使设备配合操作系统支持系统的待机和休眠。
1 系统和设备的电源策略
电源管理主要涉及操作系统和设备,系统电源状态指示整个系统的总体电源使用,而设备电源状态指示鞲霆设备使用多少能量。PCI设备支持的电源等级是由PCI配置空间中的电源管理能力结构描述的[1]。PCI总线电源管理接口规范描述了电源管理能力结构寄存器和电源管理事件信号以及辅助电源,这些寄存器和信号让操作系统可以控制PCI总线以及总线上每个功能的电源[2]。
电源管理器管理着系统级的电源策略,设备电源策略主负责设备的电源策略,它们互相配合才能完成系统和设备的电源状态转换。
1.1 系统和设备电源状态
Windows操作系统定义了6种系统状态S0~S5,S0称为工作状态,S1~S4属于睡眠状态。S5是关闭状态。设备按照ACPI规范定义了4种设备状态D0~D3。在D0状态中,设备处于全供电状态。在D3状态中,设备处于无供电(或最小限度的电流)状态。中间的D1和D2状态指出设备的2个不同睡眠状态。Microsoft规定了不同类型设备的类专用的电源需求,该规范要求每个设备至少要支持D0和D3两个状态[3]。
1.2 电源状态转换
应用程序请求、系统活动/电池级别或用户按下电源按钮会导致电源状态的改变,例如系统在响应待机(standby)命令过程中,电源管理器首先向每个驱动程序发送带有IRP_MN_QUERY_POWER副功能码的IRP_MJ_POWER请求以询问设备能否接受即将到来的电源关闭请求。如果所有驱动程序都同意,电源管理器将发送第2个带有IRP_MN_SET_POWER副功能码的电源管理IRP(I/O reequest package),然后驱动程序把其设备置入低电源状态以响应这个IRP[3-4]。
前文中驱动程序不能待机的原因,也就在这里,不符合电源管理要求的驱动程序否决了电源管理器发来的要求改变电源状态IRP,导致系统不能待机。
1.3 PCI总线驱动程序与电源管理能力结构
总线驱动程序在电源管理中发挥着重要作用,甚至可以是电源策略主[5]。PCI电源管理能力结构为操作系统提供了一种标准机制来控制设备的功耗管理。对于某一个PCI设备来讲,设备本身直接由PCI总线驱动程序管理[3]。总线驱动程序通过存取PCI电源管理能力结构的寄存器直接控制设备运行,达到物理上改变设备的电源状态。
2 驱动程序设计过程
要使WDM驱动程序具有电源管理功能,首先需要在DriverEntry入口函数中注册IRP_MJ_POWER IRP的派遣函数例程[6-7]。
pDriverObject->MajorFunction[IRP_MJ_POWER]= PowerDispatchRoutine;
驱动程序的电源管理例程围绕电源IRP_MJ_POWER IRP进行处理,这些例程处理这个IRP,并在需要时产生这个IRP。这个IRP有4个电源管理次功能代码,如表1所示。
表1 IRP_MJ_POWER次功能代码
次功能IRP代码描述
IRP_MN_QUERY_
POWER查询系统或设备状态变化是否可行
IRP_MN_SET_POWER设置系统或设备电源状态
IRP_MN_WAIT_WAKE唤醒计算机,响应1个外部事件
IRP_MN_POWER_SEQUENCE发送这个IRP,确定设备是否真正进入特定的电源状态
大多数驱动程序要求必须处理表1中前2个IRP,具有唤醒能力的设备驱动要处理IRP_MN_WAIT_WAKE。这里对IRP_MN_WAIT_WAKE和IRP_MN_POWER_SEQUENCE做默认处理。
NTSTATUS PowerDispatchRoutine(IN PDEVICE_OBJECT fdo, IN PIRP Irp) {
PAGED_CODE();
KdPrint(("Enter PowerDispatchRoutine\\n"));
NTSTATUS status = STATUS_SUCCESS;
switch(stack->MinorFunction) {
case IRP_MN_SET_POWER:
status = SetPowerState(fdo, Irp);
break;
case IRP_MN_QUERY_POWER:
status =QueryPowerState(fdo, Irp);
break;
case IRP_MN_WAIT_WAKE:
case IRP_MN_POWER_SEQUENCE:
default:
status = DispatchPowerDefault(fdo, Irp);
break;
}
return status;
}
电源管理器,维护一个单独的电源IRP内部队列,这保证在系统中只有一个“设置系统电源”IRP在处理,还保证每个设备只有一个“设置设备电源”IRP在运行[5]。
设备在完成一个电源IRP的处理时,必须告诉电源管理程序,使得它可以开始下一个电源IRP的处理。一般的默认处理就是简单地把一个IRP沿设备栈向下传递(没有完成例程),在跳过或复制当前IRP栈单元之前,应调用PoStartNextPowerIrp函数,如果使用完成例程,通常也必须调用PoStartNextPowerIrp。
NTSTATUS DispatchPowerDefault(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
PoStartNextPowerIrp(Irp);
IoSkipCurrentIrpStackLocation(Irp);
return PoCallDriver(pdx->LowerDeviceObject, Irp);
}
2.1 设备电源能力结构
PnP管理器在启动设备后向设备发出查询设备能力的请求,该请求的参数是一个DEVICE_CAPABILITIES结构,PCI总线驱动程序通常填充DEVICE_CAPABILITIES结构,该结构包含了与电源管理有关的几个域。功能设备驱动程序应该首先向设备栈下转发该IRP,等待IRP完成后,在必要时可以更改DEVICE_CAPABILITIES结构。
电源策略主负责检查DEVICE_CAPABILITIES结构中的DeviceState域来确定每个系统电源状态对应的设备电源状态。这个结构中指出了对应于一个系统电源级设备可以处于的最高电源状态。功能驱动程序可以在设备扩展中存储这个结构中相关的域,在这个IRP完成以后,驱动程序不能改变它的内容[3]。
2.2 处理系统电源IRP
如果驱动程序收到一个“设置系统电源状态”IRP,首先必须确定等效的设备电源状态,如果当前设备电源状态与要求的设备状态不同,必须改变设备的状态。通常总是把设备设置成与设备的当前活动、设备的电源能力以及系统的电源状态相一致的最低电源状态。
在向底层驱动程序传递“设置系统电源状态”IRP之前改变设备状态,在所有底层驱动程序处理后再给设备加电。必须给自己发出“设置设备电源状态”IRP以改变设备电源状态,然后等待这个IRP完成,然后可以继续处理“设置系统电源状态”IRP。以处理系统将要管理为例说明这个过程[4],如图1所示。
图1 降低系统电源IRP处理过程
2.3 处理设备电源IRP
如果收到“设置设备电源状态”IRP,在调用低层驱动程序前,必须关闭设备的电源。在所有低层驱动程序启动后,再启动设备。这意味着应设置一个完成例程,并在那里给设备加电。这里以处理降低设备电源状态为例[5]说明这个过程,如图2所示。
图2 降低设备电源IRP处理过程
2.4 实验结果及分析
在Windows XP系统上加载采用这种电源管理方案的虚拟设备驱动程序,使系统从全功耗运行转向休眠,再从休眠中恢复,用DebugView工具得到驱动打印的Log信息如下:
Enter HelloWDMPower
Power Manager query power state
Enter DispatchSystemPowerIrp
Enter CompletionSystemPowerRoutine
Send device power IRP according to system power IRP
Enter HelloWDMPower
Power Manager query power state
Enter DispatchDeviceQueryPower
Device power state query
newDeviceState = 4
Ready to pass down IRP for device power state query
Enter PowerDownPrepCallback
Enter DevicePowerCompleteCallback
Enter HelloWDMPower
System or device power is going to be change
Enter DispatchSystemPowerIrp
System power state change
newSystemState = 5
Enter CompletionSystemPowerRoutine
Send device power IRP according to system power IRP
Enter HelloWDMPower
System or device power is going to be change
Enter DispatchDeviceSetPower
Device power down
newDeviceState = 4
Ready to pass down IRP for device power state change
Enter PowerDownPrepCallback
Enter DevicePowerCompleteCallback
Enter HelloWDMPower
System or device power is going to be change
Enter DispatchSystemPowerIrp
System power state change
newSystemState = 1
Enter CompletionSystemPowerRoutine
Send device power IRP according to system power IRP
Enter HelloWDMPower
System or device power is going to be change
Enter DispatchDeviceSetPower
Device power up
newDeviceState = 1
Enter CompletionDevicePowerUp
Enter PowerUpCallback
Enter DevicePowerCompleteCallback
上述结果表明使用这种电源管理方案的驱动程序能和系统配合休眠,并能够成功从休眠的状态下启动,另外具体应用到硬件上时要在说明的地方加上与设备相关的代码。
3 结 语
本文介绍了PCI设备电源管理驱动程序的开发,电源管理在PCI规范中是可选的,现在PCI Express设备越来越多,而PCI Express设备必须实现电源管理能力。由于PCI Express与PCI软件上兼容这里研究的电源管理方案同样适用于PCI Express设备[8-10]。限于篇幅本文只给出了部分实现代码,完整实例请参考WDK给出的toaster程序。
参考文献
[1]PCI-SIG. PCI bus power management interface specification revision 1.2[EB/OL].[ 2004-03-03] . .
[2]李贵山,陈金鹏.PCI局部总线及其应用[M].西安:西安电子科技大学出版社,2003.
[3]Microsoft. Windows driver kit 7600[EB/OL].[ 2009-10-01] ..
[4]ONEY Walter. Programming the microsoft windows driver model[M]. US: Microsoft Press, 1999.
[5]Chris Cant.Windows WDM设备驱动程序开发指南[M].孙义,译.北京:机械工业出版社,2000.
[6]PCI-SIG. PCI local bus specification v3.0[EB/OL].[ 2010-03-10] ..February 3,2004.
[7]张强.Compact PCl板卡硬件设计与传输速率测试[J].光学精密工程,2009,17(8):2049-2050.
[8]PCI-SIG. PCI.Express.Base.Specification.v1.1 [EB/OL].[ 2005-03-28] ..
程序开发范文3
【关键词】Java程序开发 数据库 框架
科学技术与经济的发展加快了信息时代的到来,使很多计算机技术被不断开发和应用,促进我们生活水平的提高,也增加了我们大学生的学习内容,形成了专门的计算机专业,Java程序就是计算机技术中的一种常见技术,现在已经被广泛应用于我们的生活,所以我们要学习好和应用好Java技术。要想学好Java技术就必须先学习好相关基础,然后学习如何搭建环境,最学习JSP/Servlet,如果我们要开发新的Java程序,就必须了解数据库系统和框架的应用,同时也要提高对开发条件的重视。对此,本文作者根据自己的Java程序学习经验,简要分析了Java程序开发数据库与框架应用。
1 Java程序开发数据库系统的简单概述
数据库系统主要由数据库、数据库管理系统和数据库应用系统组建而成,具体如下:
1.1 数据库( database,DB)的简单概述
数据库实质上是一种集组织数据结构、存储数据和管理数据的一种综合型仓库,一般仓库内都设置有、DBMS ( database management system)。数据库里数据的应用形式主要是文件形式,包括数据、控制还日志三种文件,其中数据文件的作用在于实现数据的存储,控制文件的作用在于实现数据文件的维持,日志文件的作用在于实现对数据中日志信息的记录。
1.2 数据库管理系统的简单概述
数据库管理系统是数据系统中的中间部分,应用形式主要是软件,处于数据库与数据库应用系统之间,其作用在于开发新的数据库应用功能,是数据库应用系统得以正常运行的重要基础,一般而言我们会使用Navicat Premium数据库管理系统,因为该种系统更有利于数据库应用功能的开发。通过日常学习了解到除了上面提到的数据库管理系统以外,常见的数据库管理系统还包括oracle数据库管理系统、My SQL数据库管理系统和SQL Server数据库管理系统等。其中SQL Server的应用形式是是微软,这就意味着SQL Server只能在 Windows上进行运行,其他的数据库管理系统均能够在UNIX / Linux上进行运行,其系统性能、安全性和可靠性均忧于SQL Server。
1.3 数据库应用系统的简单概述
数据库应用系统(DBAS)实质上就是一种外模式,其应用原理在于利用sql语句对数据库进行操作,然后实现对需要数据的提取,通常情况下一个外模式数据只对应一个用户访问,因此具有很高的安全性。
2 已经实施开发的管理系统分析
2.1 My SQL数据库管理系统
My SQL属于一种典型的关系型数据库管理,其中的API提供主要由多种编程语言实现,如c,c++,Java,php 等。My SQL具有数据库存储空间小、数据存储速度快、数据管理成本低等特点,所以通常都应用于中小型开发项目中去。
2.2 SQL Server数据库管理系统
SQL Server数据库管理系统的应用原理在于Web实现对数据的安全性访问,然后实现度系统程序管理的过程,其程序管理具有强大性、灵活性和Web基础性,常应用于中型开发项目中,现已经升级到SQL Server2005、SQLServer2008版本,具有更多的功能。
2.3 Oracle数据库管理系统
Oracle具有数据信息存储量大、数据适用性强、功能灵活性强等特点,此外还能够运行于所有主流平台,并可以对所有工业标准提供支持,加之开发策略的形式是完全开放式的,能够实现用户对最佳解决方案的选择,因此常被使用与大型的公司开发项目中去。
3 Java开发框架的应用分析
3.1 Mybatis持久层框架的应用分析
3.1.1 环境搭建
(1)jar包的引用;
(2)核心文件的配置;
(3)数据库的建立;
(4)数据库信息的配置和连接。
3.1.2 实体建立
Bean->持久化类,主要用于所有数据库操作。
3.1.3 一个映射文件建立
(1)通过Bean->、、的配合来实现CRUD配置;
(2)在核心配置文件中纳入映射文件;
(3)进行测试操作。
3.2 Spring容器框架的应用分析
Spring主要由Io C和 AOP模块组建而成,其中Io C模块:是指先将Spring 作为Web级容器,实现对Class的转换,Class转换成Bean时进行管理,然后通过对Bean对象的加载和实例,实现Bean对象向Bean Factory的移交并管理,这个Bean注入、转换和管理的过程为IOC;AOP模块:形成过程与Io C模块相似,只是应用是面向切面的,如日志和事务。
3.3 Spring MVC Web层框架框的应用分析
(1)实现对核心文件的配置;
(2)实现对Controller的注入;
(3)实现数据测试。
4 结论
综上所述,Java程序开发是一个比较复杂的过程,决定它的组成是一个复杂的系统,主要由数据库、数据库管理系统和数据库管理系统,其中数据库管理系统是实现Java程序开发和应用的关键,主要包括My SQL、SQL Server和Oracle数据库管理系统,开发框架则包括 Mybatis持久层框架、 Spring容器框架和Spring MVC Web层框架框。
参考文献
[1]肖成金,吕冬梅.Java程序开发数据库与框架应用[J].科技展望,2017(05):19.
[2]姚丽萍.建立Java应用程序框架降低Java信息系统开发难度[J].硅谷,2014(15):53+28.
[3]w争东.基于Java的数据库应用框架的研究设计和探索[J].信息系统工程,2015(07):79+81.
程序开发范文4
关键词:水深测量;水位改算;程序设计
中图分类号:U612 文献标识码:A 文章编号:1006―7973(2017)06-0032-02
水深测量的水位改算,计算方法繁琐,工作量大,费时费力。为提高水深测量数据处理的自动化程度,减少测绘人员内业工作量,本文结合实际生产进行了软件的开发,针对水位改算中的不同个数的水位站的改算方法进行了探讨,并编制出相应软件,使之能适应各种复杂的测区水位控制情况。
1 水位改算原理与方法
在河口海湾、河道水下地形测量中,河底高程是根据回声测深仪测得的实测水深与相应的水位求得的:
公式中,G为河底高程;Z为某一基面以上的水位;H为测点施测时的水深。
因此,测点高程的精度取决于该点水位与实测水深的精度。若所用定位与测深设备精度较高,则河底高程G的精度就主要决定于测点水位的精度。
在宽度不大的潮汐河道中,两相邻站之间的水位可按距离线性内插求得。河口和海湾水域的宽度通常较大,水位不仅有纵向变化,可能还有明显的横向变化,在计算测点水位时,必须考虑水位的这种横向变化。
计算施测点在施测时刻t下,参与计算的水位站t时刻下的水位。根据时间进行插补计算t时刻下,单个水位站的水位。单个水位站所测水位是某一个时间序列下的水位变化:
给定t时刻,在上述时间序列判断t时刻位于tk、tk+1之间或者t时刻与tk时刻相等。再根据时间差值进行内插,求得t时刻下单个水位站的水位。
1.1 双站水位改算
对于横比降较小的河段,可采用线性插补进行水位改算。
由图1中的A1、A2(两个水位站)和P点(水下测点)坐标,可求得P点A1A2直线的垂点A3的坐标,然后在直线A1A2上按照距离内插得到A3的水位:
式中,SA1A3为A1与A3之间的距离;SA1A2为A1与A2之间的距离。
1.2 三水位站改算
对于三水位站改算的方法,如果考虑横比降时可以采用二步内插法或者三角形单元面积加权法进行水位改算。判断实测P点在三个水位站构成三角形A1A2A3的内部还是外部,如果在外部,可选取河岸同侧的两个水位站参与计算,按照双水位站的计算方法,如果在内部,可按照三水位站方法进行计算,如下:
(1)二步内插法计算P点的水位:
A1、A2、A3代表三个水位站,对应的某时刻水位分别为Z1、Z2、Z3。如果P点位于三角形A1A2A3内,则对于P点的水位Zp计算如下:
第一步:根据A2与A3某时刻的水位利用距离内插计算出A1P与A2A3交点A4点该时刻下的瞬时水位。
第二步:根据A1与A4该时刻下水位利用距离内插计算P点该时刻下的瞬时水位。
(2)三角形单元面积加权法计算P点的水位:
A1、A2、A3代表三个水位站,对应的某时刻水位分别为Z1、Z2、Z3。如果P点位于三角形A1A2A3内,则对于P点的水位Zp可以按照三角形面积加权法计算:
1.3 多水位站改算
例如在湖泊地区可采用距离加权法进行水位改算,湖面广阔横比降情况不易掌握,此时的水位改算可采用距离加权法。
设A1、A2、A3、A4四个水位站某时刻水位分别为Z1、Z2、Z3、Z4,则P点的水位可由P点至四个已知水位点距离的倒数加权求得,设P点至上述四点的距离分别为SA1、SA2、SA3、SA4,则P点的水位为:
(公式6)
由上述四水位站计算施测点瞬时水位,进而可推出N(N>=4)个水位站计算P点瞬时水位的方法。
2 水位改算程序数据结构设计
根据水位改算算法,设计水位改算程序输入、输出文件类型及格式。本次程序开发主要以autocad dwg格式为底图,底图所包含数据应有河道中心线、临时水位站位置点、水深测量测点数据。
此文件为软件的输出文件,存在的意义在于方便各级审查,因此所包含的信息要尽可能的齐全,包括的字段为测点点名、施测日期、施测时间、北坐标、东坐标、测时水深、测时水位、河底高程、备注。各字段间采用tab或者逗号分隔。
3 程序开发及应用
本程序以.NET为平台,采用C#语言操作ActiveX_automation CAD进行开发,程序设计主界面如图6所示:
程序可导入不同仪器的原始测点文件,进行中间格式转换为计算需要的水下测点文件中间格式。程序设计不同个数水位站进行水位推算的方法,在CAD图中选择河道中心线获取中心线的坐标信息,同时选择水位站点可获取水位站的位置坐标信息,选择对应水位站的水位数据文件。此程序可将数据与图形结合,如图7所示,可在CAD图中选择计算的水位站数据和河道中心线。
4 总结
本程序在长江河段、湖泊水深测量工程中,得到了实际应用,经过软件自动处理的水位数据与人工进行断面改算所得的水位进行比较,水深差值均在水深测量精度0.1米以下,具有较高水位处理精度,能够满足水深测量的相关规范要求。
参考文献:
[1]中华人民共和国水利部.SL257-2000《水道观测规范》[S].北京.中国水利水电出版社,2001.
[2]李贵生,柳,车兵,张伟军.基?于?H?y?p?a?c?k?软?件?水?位?推?算?的?应?用[J].水利水电快报,2012(33):22-24.
[3]叶境湖,李俊位.港口水深测量中的水位改正方法[J].中国高新技术企业, 2015(24):37-38.
程序开发范文5
在iOS6当中,苹果使用了自家地图服务,MapKit框架也和自家的地图服务绑定。因此,地图的整合和开放将会更进一步,第三方APP也将有机会和地图应用进行交互。也就是说,如果你所开发的APP自身未搭载地图模块,那也可以打开内置地图,并显示路线和地点。
UI状态保存
苹果希望用户下一次打开APP时,能保持关闭前的界面状态。此前,如果APP不支持后台运行的话,需要从root View Controller开始,把所有的VC(视图控制器)归档存成NSData,而下次启动APP时再进行恢复。这样既不省事,也不优雅。
不过在iOS6当中,苹果帮开发者做了这件脏活累活。其实实现的原理不会有太大变化,无外乎是把这些代码放到APP启动里去做了。
全新的CollectionViews控件
全新的UICollection View控件通过PSCollection vieW功能,实现了类似Pinterest那样的“瀑布流”展示方式。UICollectionView比Pinterest更灵活,它可以根据要求改变排列方式。此外,苹果还提供了UICollection ViewController,相信不少照片展示类APP可以用到。
不过,为了保证APP能在低版本的ios中正常运行,还是建议大家暂时使用开源代码实现。
新的IAP
现在借助IAP(应用内购买),用户能直接从iTunes Store购买音乐,可以在APP内直接购买APP。虽然此前黑客宣称破解了苹果的IAP,但如今苹果向开发者发邮件确认已修复这一漏洞。
对于广大辛勤堆代码的开发者而言,苹果在iOS6当中也算为我们开辟了一条新“财路”――多了一种更加便捷的APP贩售渠道。
如果不出意外,几天后苹果便会正式下一代iPhone。正所谓兵马未动粮草先行,全新iPhone搭载的iOS6已在WWDC 2012中崭露头角。通过随后的Seesion,我们可以看到iOS6中新增的很多新特性,或许接下来在为全新iPhone开发程序的时候,各位开发者们能够用到。
深度社交网络集成
iOS6深度集成了新浪微博。对中国开发者来说,确实是个好消息。如果只想发条信息的话,不再需要进行繁琐的API申请和应用审核,也不再需要忍受新浪程序员写的错误百出的SDK了。
新的Social.framework控件可以简单地从系统中拿到认证然后向社交网络发送消息,这对APP推广是一个很好的补充。
PaSSbOOk和PaSSKit
Passbook是iOS 6自带的新应用,PassKit是新加入的,主要是配合或呼应Passbook存在的框架。开发者可使用PassKit生成和读取包含一些类似优惠券和电影票之类信息的特殊格式文件,然后以加密签名的方式发送给用户。
如此一来,开发者可利用PassKit进行售票系统或优惠系统开发。从而可以引入更方便的购票体系,以争取更多的客户。
Game Center
这个ios4中的东东,在iOS6中迎来了少许升级。值得注意的是,MountainLion也加入了Game Center。这或许可以让iOS设备和Mac通过Game Center联机对战,甚至用Mac和Mac进行联机。
这为没有自己服务器、自己不会写服务器后端或没有精力维护的个人开发者提供了很好的思路。使用Game Center做一些简单的网络游戏并不很难,成本也将会非常低。不过,苹果还是赶紧在国内架设Game Center服务器吧!
增强的提醒功能
程序开发范文6
【 关键词 】 面向对象;应用程序开发
Easily Respond to Visual FoxPro Object-oriented Application Development
Sheng Juan
(Northeastern University at Qinhuangdao, Computing Education Center HebeiQinhuangdao 066004)
【 Abstract 】 According to the problems faced by students in object-oriented application development, In this paper many key and difficult knowledge point are discussed, they are including application development thought, data analysis and database design, system interface design, interface data and database record data by value and so on.
【 Keywords 】 object-oriented;application development
1 引言
数据库由于能方便地对数据进行存储、分类、查询等操作,因而在现实中得到了较为广泛的应用,数据库技术也成为广大学生的必学课程,Visual Foxpro由于本身小巧、易用、功能全面的特点被很多学校作为教学内容,但在教学过程中学生一方面要识记数据库自身支持的命令、语句,另一方面在进行应用程序开发时又要面临对程序所涉及的各功能模块的整合,尤其是要采用面向对象的设计思想,常常会陷入困境,为此本文对面向对象的课程设计的设计思路、设计要点等内容进行了阐述。
2 应用程序开发思想
在应用程序开发过程中,主要涉及两部分内容:(1)数据部分:包括各种关系表、数据库,主要是为数据处理提供数据准备;(2)应用程序界面部分:此部分主要用来实现程序的相关功能,包括数据的添加、删除、修改、查询、统计,其中查询是数据处理中应用较多的部分。开发的步骤需要完成五方面内容:(1)需求分析;(2)数据分析与数据库设计;(3)应用程序设计;(4)软件测试;(5)应用程序。应用程序的开发流程和步骤如图1和2所示。不论应用程序的题目有何不同,都可以遵循这个框架流程进行。
3 确定需求及划分功能模块
在进行应用程序开发前,首先要分析题目,确定系统的需求,并按据“自顶向下,逐步细化”的原则,对系统所应达到的功能按层次模块进行合理的划分和设计。 这样才能下一步的程序开发有的放矢。如要要完成 “学生信息管理系统”,经分析此系统要完成以下的功能。
(1)各种信息的输入,主要包括几部分:学生信息;成绩信息;开设课程科目。
(2)各种信息的查询、修改与删除等。
(3)输出相关报表与打印,如学生表、成绩表等。
系统的功能模块图如图3所示。
4 组织数据
在对应用程序的功能确定分析之后,接下来则需要对数据进行组织,包括创建数据库及关系表、完成数据库设计,数据设计需遵循几个原则:(1)相同主题设计在一个表中;(2)避免数据冗余;(3)表中字段设置合理;(4)功能相似表合为一个表;(5)确定表间的合理关系。
根据数据库设计原则,对学生信息管理系统的的数据库设计如图4所示。
5 系统界面设置
根据设定的系统功能,可利用表单设计器方便快速的完成界面设置,通常应用程序中均会包含数据添加、数据定位、数据删除、数据查询、数据统计等操作,学生可根据对控件的掌握情况采用简单控件,如图5采用文本框、标签、按钮;或是稍复杂控件,如图6列表框、表格、选项卡等完成。对完成的各功能表单还需要通过在表单上加载菜单统一调用,来实现对各功能的调用,如图6所示。
在窗体界面设计过程中的两个难点分别是:数据操作语句的选用和面向对象的事件编程。针对第一个难点,整理了如表1中常用功能语句,可在应用程序开发过程中根据情况进行选用。
对于第二个难点,即面向对象编程,需要掌握”面向对象,事件驱动的编程思想”,将表单中控件的值通过变量和数组做好数据传递,再结合数据库语句便能较为容易的实现应用程序。如在图6中,若将文本框中对应学号,科目代码等内容添加到数据表“学生信息中”,可先将文本框中的内容赋值给变量,然后通过insert语句完成向数据表中添加数据的操作,操作代码如图7所示。
6 项目连接
在将各个功能模块开发完毕后,即可通过项目管理器对整个应用程序进行项目连编,使得整个应用程序能以exe或app的形式。在项目连编时需要设定主程序,同时还要注意应用程序所需要的图片、音乐等资源的保存位置,对于程序所需的相关数据最好分门别类加以保存,形成清晰的文件夹层次结构,如图8所示。
7 结束语
虽然数据库的应用范围多种多样,数据库中对于数据的使用也各有侧重,但只要了解了应用程序的开发步骤,在开发过程中做好需求分析、合理设计数据库、有效进行任务分解、掌握面向对象的编程思想,做好界面数据和数据库中数据的映射,是能够实现轻松应对应用程序的开发任务的。
参考文献
[1]王娟.数据基础及Visual Foxpro程序设计教程[M],东北大学出版社,2011.
[2] 黄力明.《SQL Server 数据库原理及应用》精品课程建设改革与实践[J]. 计算机教育, 2009(23): 77-79.
[3] 易开宇. 案例教学法的探索[J]. 信息与电脑,2010(04):211-212.