面向android手机的人脸识别系统的研发.doc_第1页
面向android手机的人脸识别系统的研发.doc_第2页
面向android手机的人脸识别系统的研发.doc_第3页
面向android手机的人脸识别系统的研发.doc_第4页
面向android手机的人脸识别系统的研发.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

29 / 34 本科毕业设计(论文)面向android手机的人脸识别系统的研发学 院 计算机学院 专 业 计算机科学与技术 年级班别 2009年1班 学 号 学生姓名 指导教师 2020年02月摘 要随着信息技术的飞速成长和成熟,现代信息技术已经渗入到人们日常生活的方方面面。人们无论是工作、生活、休闲娱乐,都会与各种信息媒介发生打交道,而接触的同时,也会产生个人隐私信息泄漏的隐患。由于互联网应用而产生的隐私泄露已经屡见不鲜,邮箱、游戏帐号等信息会由于网络环境的开放而产生被盗取的危险,人们已经时刻警惕并采取了类似安装电脑杀毒软件、防火墙等的方式加以保护。此外,十几年来发展至今的移动通讯工具手机,已经由起初的简单通讯设备,逐渐演变为集合越来越多的个人应用并可移动获取资讯的新的个人信息中心。开放式手机平台的普及标志着智能手机时代已经来临,就中国而言,2008年末3G牌照的正式发放,更使得手机终端各种新应用服务势如春笋,而由于手机作为新一代个人信息中心,关于手机产生的“隐私”和“信息安全”的关注度也随之提升。作为个人的信息移动终端,手机的私密性更强,用户在手机上的私人信息与自身利益更加相关。手机的通讯录,通话记录,短信这些信息都已成为了您重要的私密信息。近期以来,随着各种手机信息安全事件及隐私泄漏事件的频频出现,手机防偷窥和防信息泄露的越来越收到人们的关注。关键词:智能手机,个人信息安全,加密解密AbstractWith the rapid development of information technology and become more and more mature,modern information technology has penetrated into every aspect of peoples daily lives.Whether people work,life,entertainment,they can not deal with all kinds of information without media occurs.when people close to the media occurs,it also bad to people because of the hidden danger from privacy information.More and more privacy has been happen because of the Intent,The mailbox,game account information such as the network environment of opening up has become easy to stolen risk.People have to be vigilant and to adopt a similar installation of computer antivirus software,firewall to protect their privacy .In addition,since the development often years,the mobile communication tool-mobile phone, this Simple communication equipment has become new Personal information center collection and mobile access to information,open-ended mobile phone platform penetration marks the era of intelligent mobile phone has come.As far as China is concerned,the formal issuance of 3G licenses issuance by the end of 2008,so more and more various new application service has been produced,as the mobile phone as a new generation of personal information center,attention on mobile phone producesprivacyandinformation securitywill increase.Key words:,目 录1 绪 论11.1研究目的和意义11.2国内外技术发展现状与趋势11.2.1题目研究方法22 相关技术42.1Android系统42.2 Android应用的构成和工作机制62.2.1 Activity72.2.2 Intent Receiver82.2.3 Service82.2.4 Content Provider92.3 开发语言java语言简介92.4 SQLite数据库102.5 DES算法103 系统设计与实现123.1需求分析123.2 系统开发环境123.3系统架构123.4具体功能实现133.4.1 界面布局133.4.2 添加权限153.4.3 数据库模块163.4.4 程序锁功能183.4.5 DES加密解密算法实现193.4.6 xml保存私人信息204 功能演示224.1 配置虚拟机224.2 程序锁234.3 加密解密24结论28参考文献29致 谢301 绪 论1.1 研究目的和意义在信息社会,信息安全关乎着每一位信息相关者的切身利益。随着3G网络的大规模建造及其业务的逐步应用,宽带移动通信呈现高速发展态势。移动通信在运行中存在两大安全隐患:一是一旦手机失窃或丢失,存入手机内的信息资源会随之丢失,并可能产生一系列负面影响;二是手机的短信、通讯录等信息传输常遭到非法读取,机主正当通讯权益遭受威胁。伴随着手机应用业务的发展,信息安全需求越来越显得重要。移动设备信息安全,是当前应用领域前沿热点问题。尽管国内外对此有比较广泛的研究,但是还不够深入,还没有真正有效的市场产品。本项目将研发一种基于人脸识别系统android手机安全软件,旨在解决上述信息安全问题。该安全软件融合人脸生物特征值技术和对私人信息加解密技术,以人脸特征标识符和随机字符为密钥,建立信息加密体系,实现加密密钥的防盗换,并以此实现手机安全认证和短信、通讯录等信息隐匿传输。为此,我们将致力于手机人脸图像捕获、人脸检测、人脸识别算法,手机加密算法,等关键问题的研究,以期实现突破,建立有效的对手机信息及数字内容安全算法及软件,以及合理的处理与响应速度。项目所研发的新型手机信息及数字内容安全软件,将在相关手机操作系统和开发软件环境下作试验。1.2 国内外技术发展现状与趋势中国报告大厅2012年中国手机市场研究预测报告研究表明,2010 年全球手机销量上升 32 达到 1.6 亿部。智能手机销量较去年同期增长 72 至 297 万台,基于 Android 平台的设备,其销售增加了近十倍至 67 亿美元。2012年中国手机市场研究预测报告研究表明,中国移动终端市场2010年第4季度国内手机销售总量达6759.8万部(不计黑手机和水货手机),环比增长5%。本季度3G手机销量突破了1500万大关,环比增长24.5%。截止2010年12月,CDMA手机已占中国手机市场销量的25.7%,其中,名列国内CDMA手机市场2010年度销量前两位的企业分别是三星和华为。就手机中应用的生物识别技术而言,目前有提到的只有指纹、声音、人脸识别三种种方法。2011年美国摩托罗拉公司推出了带指纹识别3G手机ME960;而三星的上代旗舰手机的文件系统底层里面,发现了“SecSettings.apk” 文件和指纹识别相关图片,苹果也在去年夏天收购了安全技术公司AuthenTec,更和仿生安全系统公司 Microlatch 达成交易。但是现在我们还没见到苹果手机有相关的技术成果,不过也表明苹果公司也在致力于研发指纹识别方面的技术。声音识别技术在手机中的应用早在五年前已经开始研制,并在目前的多款手机中应用2。2011年10月19日,谷歌和三星在香港召开新闻发布会,正式发布代号为“冰激凌三明治”的谷歌新一代Android 4.0系统以及三星GALAXY Nexus智能手机。谷歌新一代Android 4.0系统拥有全新设计的UI,界面简化,运行速度能力提升。系统内置全新的壁纸,在使用手机上的触摸按钮时会出现发光效果,并且增加了语音输入、人脸识别、照片编辑、流量监测、Android Beam功能。而在最新的报道里面,谷歌还准备在谷歌眼镜里面添加人脸识别功能,但 Glass 产品总监 Steve Lee 之前曾对纽约时报讲述过,除非有隐私保护政策,否则不会加入人脸识别功能。而和android手机一样操作系统的平板电脑,谷歌公司推出了一项新的功能,当用户通过Android平板电脑观看电影并按下暂停键时,可以自动在屏幕上提供电影演员和音乐的背景信息。而完成机主识别过程,同时利用生物特征值和数字水印对手机内的数字内容、短信、个人名片簿等重要信息加密或隐藏,有效提升了个人信息的安全性。这项应用现在也有很多三方应用在android市场出现。1.2.1 题目研究方法Android的安全设计包括以下两个原则:在默认情况下,在android 平台下运行的应该程序没有权限执行对其他应用程序,操作系统有害的操作。这些操作包括读写用户的隐私数据(如联系方式或短信)等。(2)Android应用程序的进程是运行在一个安全的“沙箱”环境中。它不能干扰其他应用程序,除非它明确声明权限。这些权限请求能够被不同方式的操作所处理,特别的要基于证书和用户的提示被自动允许或禁止。而且权限请求在应用程序中被声明为静态,所以在此之后在安装的时候系统会预先知道。基于android的安全设计原则,我们无法对手机的隐私数据直接操作,而谷歌的android手机系统的架构是Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,只要取得root权限,就可以对手机的一切信息进行操作,但是有利有弊,root权限对手机的安全造成了很大的影响,而谷歌在设计android系统的时候为了提供为用户一个良好的平台也提供了一个私人信息同步的模块,为了此模块,android设计了数据存取与共享机制ContentProvider为应用程序提供一些访问方法, 使用Content Provider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据12。但是此共享机制必须得到相应的权限,而且用户在安装此类软件的时候会提示用户。所以加密解密此模块就是建立在ContentProvider这种共享机制上面。通过间接的方式对手机拥有者的个人隐私信息进行读取,加密解密。2 相关技术2.1 Android系统Android一词的本义指“机器人”同时也是Google。于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分,不存在任何以往阻碍移动产业创新的专有权障碍。Google通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统1。对于设备制造商来说,Android是一个免费的平台。对硬体开发厂商来说,Android是个开放的平台。只要厂商有能力,可以在这个平台上自由加入特有的装置或功能,不受手机作业系统厂商的限制。对于手持装置的开发者来说,Android是个先进的平台。平台上的应用程式可相容于各种型号的Android 手机,免去为各种不同手机机型开发的困扰。Android平台支援各种先进的网络、绘图、3D 处理能力,可以用来提供更好的使用者体验。Android它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。关键应用程序:Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历、网页浏览器等,而更多有特色的Android应用程序还有待于广大开发者共同参与开发3。Java程序运行环境:Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。Linux内核:Android系统平台基于优化了的Linux内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层。 Android应用程序以各种组件(API)为基础,API是Android软件平台的重要组成部分,也是开发Android应用的关键所在4。当前活动程序Activity:作为最常用的应用程序组件,几乎所有Activity都会通过创建U I窗口与用户进行交流。Activity具有生命周期,它包含运行、暂停、停止等几个状态,状态间的转换可通过调用onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop ()、onDestory()等方法来实现。要开启新的activity,可以调用startActivity(Intent),或调用startSubActivity(Intent, int),后者通常和onActivityResult(int,int, String,Bundle)联合使用,以从一个activity获取某结果并返回给打开它的activity5。事件Intent: Intent抽象描述了想要执行的某种操作,它与startActivity一起使用可以开启新的activity,与startService 一起使用可以开启后台服务。Intent最重要的作用还是加载activity,它是不同activity间的桥梁。Intent也可以被认为是一种概括操作行为的数据结构,它主要包括action (动作)和data(数据)两部分,此外它还具有一些附加属性如category(intent种类)、type (数据类型)等。常用的Intent方法有intent() (构造intent)、addcategory() (添加intent类型)、getAction()(获取intent动作)、getData()(获取intent数据)等6。数据存取与共享机制ContentProvider: ContentProvider为应用程序提供一些访问方法,包括: Query(Uri, String , String,String , String, String, String)(数据信息的查询) ,insert (Uri, Contentvalues) (在Contentp rovider中添加新数据) , updata(Uri, Contentvalues, String, String )(更新Conntp rovider中的数据), delect(Uri, String,String )(删除数据) , Gettype (Uri)(获取数据类型)。其中,Uri标明了ContentProvider存储的数据类型,在执行访问方法时都需依据Uri作为路径标识来确定要访问哪个ContentProvider。后台服务Service: Service是运行在后台的应用程序组件,不直接与用户交互。当前活动程序可以使用Context. StartService()开启一项后台服务,还可以通过Context. bindService()与后台服务通信7。Android的架构是Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,如图2-1。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在Dalvik VM上运行的。图2-1 Android架构图Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。这是被优化过的最小内存依赖的格式。Java编译器(dx工具)将注册了的和运行时用到的类编译成.dex格式。Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制,和内存管理机制等。2.2 Android应用的构成和工作机制对于一个Android应用程序来说,是由Activity、 Intent Receiver 、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfestxml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等8。2.2.1 ActivityActivity是构成应用程序中最重要的构造块, 在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面9。活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈顶,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。从图2-2可以看出,Activity有三个关键的循环:(1)活动的整个生命期:从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。(2)活动的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。在这两个方法调用之间,可以维护活动显示给用户的资源。onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。(3)活动的后台生命期:从调用onResume()开始,到onPause()被调用为止。这段时间内活动处于其它所有活动之前,并与用户进行交互。一个活动可以不断在resumed状态和paused状态之间变换。Android使用了Intent类来实现活动之间的切换工作。Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用Intent:直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。间接Intent,没有指定component属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件10。图2-2 Activity状态变换路径图2.2.2 Intent ReceiverIntent Receiver是用于对外部事件的响应,当外部事件发生时,会使用Notification Manager通知用户。当一个Intent Receiver被触发时,系统会在需要的时候启动对应的应用程序。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。各种应用还可以通过使用ContextBroadcast Intent()将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯11。2.2.3 ServiceService是提供连续信息的应用程序。它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台,直到用户停止该服务或服务运行结束。本系统客户端扩展功能就是采用Service来进行设计和开发的。2.2.4 Content ProviderContent Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完成。使用Content Provider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。2.3 开发语言java语言简介Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2.3Android开发工具及平台搭建Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的Android SDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。(1) Java SDK(2) Eclipse(3) Android SDK(4) ADTAndroid开发平台搭建步骤:(1)首先到/downloads/下载Eclipse集成开发环境并且解压,这里推荐下载Java EE 集成版本。去/javase/downloads/index.jsp 站点下载SDK后安装,下载/android/android-sdk-windows-1.5_r1.zip,Android SDK1.5后解压。第一步下载工序就结束了。 (2)双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help-Install New Software- Available Software,点击右侧的“Add”输入/android/eclipse/后确定,然后在“Work with”下拉菜单中选择刚才输入的网址。过一会就会出现一个Developer Tools选项,勾上以后点击Next以后Eclipse会自动网上查找Android 开发工具插件,然后要到Android DDMS和Android Development Tools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。(3)重启后选择Eclipse菜单中的Windows- Preferences 在左侧的Android项目中SDK Location中填入Android SDK解压后的目录,然后点击Apply。(4)在Windows XP的系统变量中的path变量中添加一个值,该值指向解压后的Android SDK目录下的tools文件夹。2.4 SQLite数据库SQLite是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。Android 在运行时集成了 SQLite,所以每个 Android 应用程序都可以使用 SQLite 数据库。对数熟悉 SQL 的开发人员来时,使用 SQLite 相当简单13。2.5 DES算法数据加密算法(Data Encryption Algorithm,DEA)的数据加密标准(Data Encryption Standard,DES)是规范的描述,它出自 IBM 的研究工作,并在 1997 年被美国政府正式采纳。它很可能是使用最广泛的秘钥系统,特别是在保护金融数据的安全中,最初开发的 DES 是嵌入硬 件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用 DES。8DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环。攻击 DES 的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果 DES 使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。随着计算机系统能力的不断发展,DES 的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。3 系统设计与实现3.1需求分析3.1.1 功能需求:1.程序锁:监听android系统的任务栈,判断这个应用的包名,程序名,是否是要锁定的应用名字一致。2.加密解密:通过DES加密算法,对手机私人信息如短信,通讯录进行加密解密。3.2 系统开发环境硬件配置:机器:普通台式机CPU: Core 2 T5670 1.8GHz内存:DDR2 3G硬盘:500G操作系统:Microsoft Windows 7 开发工具:eclipse ,SQLite Expert Personal 3工具插件:Android SDK3.3系统架构 系统架构采用三层架构,模型层(model)视图层(view)控制器层(controller)并作为之后组件和模块设计的架构依据。视图层主要显示UI界面,模型层主要存放与UI分离的业务数据操作。控制器层主要目的则是确保模型层和视图层的同步,一旦模型层改变,视图层应该同步更新。 3.4具体功能实现 3.4.1 界面布局Android的资源文件保存在/res的子目录中。其中/res/drawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml目录中保存的是XML格式的数据文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中,在对界面进行绘制时要考虑到不同手机屏幕大小可能不一样,应尽量兼容大多数手机屏幕尺寸,使之显示无障碍。主界面绘制代码如下: 当用户打开程序而刚刚好在数据库中是必须加锁的时候,会跳出一个窗口,要求用户输入密码来通过验证权限。绘制代码如下: 3.4.2 添加权限在默认情况下,在android 平台下运行的应该程序没有权限执行对其他应用程序,操作系统有害的操作。这些操作包括读写用户的隐私数据(如联系方式或短信)等。除非它明确声明权限。这些权限请求能够被不同方式的操作所处理,特别的要基于证书和用户的提示被自动允许或禁止。而且权限请求在应用程序中被声明为静态,所以在此之后在安装的时候系统会预先知道。需要添加的权限代码如下: 3.4.3 数据库模块 为保存需要加锁的程序包名,在sqlite中创建了一个数据库保存起来,实现代码如下:public void onCreate(SQLiteDatabase db) db.execSQL(CREATE TABLE applock (_id integer primary key autoincrement, packname varchar(30);为了更方便的操作数据库,创建了AppLockDao.java来对数据库进行增删改查的操作,代码实现如下:public class AppLockDao private Context context;private AppLockDBHelper dbHelper;public AppLockDao(Context context) this.context = context;dbHelper = new AppLockDBHelper(context);/* * 查询 */public boolean find(String packname) boolean result = false;SQLiteDatabase db = dbHelper.getReadableDatabase();if (db.isOpen() Cursor cursor = db.rawQuery(select packname from applock where packname=?,new String packname );if (cursor.moveToNext() result = true;cursor.close();db.close();return result;/* * 添加 */public void add(String packname)if(find(packname)return ;SQLiteDatabase db = dbHelper.getWritableDatabase();if(db.isOpen()db.execSQL(insert into applock (packname) values (?), new Objectpackname);db.close();/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论