毕业论文-基于ios的派卡系统设计与应用_第1页
毕业论文-基于ios的派卡系统设计与应用_第2页
毕业论文-基于ios的派卡系统设计与应用_第3页
毕业论文-基于ios的派卡系统设计与应用_第4页
毕业论文-基于ios的派卡系统设计与应用_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

目录摘要I关键词IABSTRACTIKEYWORDSII1前言111研究背景及意义112移动办公国内外发展现状12开发环境及相关技术221IOS系统与OBJECTIVEC简介222开发环境3221XCODEIDE3222IPHONE模拟器4223INSTRUMENTS523运行环境5231IPHONE的硬件规格5232IPHONE在线办公上的优势5233IPHONE的不足624技术简介6241MVC模式6242IOS内存管理7243单例、委托、通知、BLOCK73软件体系架构与设计831软件整体架构设计932功能性需求分析与设计10321网络通信模块10322登录模块10323首页模块10324车牌录入模块11325派卡记录查询模块11326套餐报价查询模块12327设置模块124项目功能实现1341启动界面动画实现1342网络与数据13421网络通信模块实现13422JSON数据解析实现1443登录模块14431用户登录子模块实现1444登陆模块实现15441登陆实现15442备案功能实现1745智能拍照识别功能实现1746定位功能实现1847检测更新功能实现195项目性能测试及运行情况2051项目性能测试2052项目运行情况21总结22参考文献23致谢24基于IOS的派卡系统设计与应用摘要网络技术与移动技术推动了移动互联网的迅速发展,导致新一代移动端设备的迅速发展,在这种背景下移动办公应运而生,从而渐渐改变了人们的办公方式,也改变着传统的工作模式。移动办公为自主办公提供了便捷,使它成为当前新工作模式的主流。本文在分析国内外相关研发状况的基础上,设计了一款基于IOS平台的APP办公应用,之后也逐步实现了这一设计。该应用根据移动办公过程中的特点,从用户需求分析开始,通过移动办公系统课题的研究和开发,实现了车牌信息查询录入、查询派卡记录统计、套餐实时报价查询等功能。系统中用到的理论知识和相关技术进行了详细介绍,并介绍了设计和用户体验上的具体优化,给出了APP的性能测试。关键词移动技术;IPHONE;IOS;APPPAIKASYSTEMDESIGNANDAPPLICATIONBASEDONIOSABSTRACTNETWORKTECHNOLOGYANDMOBILETECHNOLOGYPROMOTEDTHERAPIDDEVELOPMENTOFMOBILEINTERNET,LEDTOTHERAPIDDEVELOPMENTOFANEWGENERATIONOFMOBILETERMINALEQUIPMENTUNDERTHISBACKGROUND,MOBILEOFFICEARISES,ITGRADUALLYCHANGEDTHEWAYOFPEOPLESWORK,ANDCHANGEDTHETRADITIONALWORKINGMODETHEMOBILEOFFICEPROVIDESACONVENIENCEFORINDEPENDENTOFFICE,MAKEITBECOMETHEMAINSTREAMOFTHECURRENTNEWWORKMODEINTHISPAPER,ONTHEBASEOFANALYZINGTHESITUATIONWHICHISRELATEDTORESEARCHANDDEVELOPMENTINDOMESTICANDOVERSEAS,IDESIGNEDANAPPOFFICEAPPLICATIONTHATISBASEDONTHEIOS,ANDALSOREALIZETHEDESIGNGRADUALLYTHISAPPLICATIONISACCORDINGTOTHECHARACTERISTICSINTHEPROCESSOFMOBILEOFFICE,STARTINGFROMTHEANALYSISOFUSERSDEMANDITREALIZEDTHEQUERYANDINPUTOFLICENSEPLATEINFORMATION,THESTATISTICSOFQUERYINGSENTCARDSRECORD,THEQUERYOFPACKAGEWHICHCANOFFERREALTIMEQUOTATIONANDSOONTHROUGHTHERESEARCHANDDEVELOPMENTOFMOBILEOFFICESYSTEMTASKINTHISPAPER,THEREISADETAILEDINTRODUCTIONABOUTTHETHEORYOFKNOWLEDGEANDRELATEDTECHNOLOGYWHICHAREUSEDINTHESYSTEMANDITALSOINTRODUCESTHESPECIFICOPTIMIZATIONOFDESIGNANDUSERSEXPERIENCE,GIVESAPERFORMANCETESTOFTHEAPPKEYWORDSMOBILETECHNOLOGYIPHONEIOSAPP1前言11研究背景及意义随着移动网络时代的来临,手机、平板电脑、上网本等移动终端迅速发展,市场不断扩大,用户群也在不断扩大。又移动网络宽带飞跃式的增长,3G、4G、WIFI网络的普及,为移动设备的发展注入了新的动力。当人们在传统的办公形式中,通过纸质、电脑等途径办公的时候。办公效率的问题,一直困扰着人们。就在这时候,在线办公已经悄悄的走到身边。移动在线办公轻松的解决了传统模式的办公难题,员工不管在哪都能够享受到实时办公。信息实时的优势、以及更多的选择和便利性,是目前的移动在线办公正颠覆传统办公方式的三大有利因素。十年前你想听实时办公可能是白日梦,那互联网发展的今天,这些都成为了可能。很多欧美国家已普遍接受在线办公的模式,这种依托在线办公系统完成工作的活动,摆脱了空间和时间限制的优势是当前办公技术领域的研究热点。目前人们大多还是在台式不可移动设备上办公,就在近几年移动设备的优势越来越明显,接近与台式机的性能同时又兼具移动便携性,人们开始依赖这些设备生活。2007年美国苹果公司的IPHONE发布后,给移动教育解决了这一大难题。纷纷有美国、新加坡、法国、英国等多个国家开始将IPHONE引用进办公系统中,并引起了员工强大的兴趣。通过这种办公方式节省了成本,提高了效率,减少了纸质文档的印刷,为环保做了贡献,也让人们对IPHONE有了新的认识。本课题的研究是在以C/S模式设计和开发基于IPHONE的移动办公系统,目的在于改造现有的办公模式,同时在可移动使用的IPHONE设备上通过流媒体(在线视频)技术来呈现生动形象的办公内容,自由自主的办公环境,提高员工的办公效率,激发出员工对工作的热情,其关键是IPHONE客户端应用软件开发。12移动办公国内外发展现状业界早有共识1990到2000年是PC的十年;2000到2010年是互联网的十年;2010年之后的十年将是移动互联网的十年如今,联想柳传志声称要用社交网络做业务,万科王石和京东刘强东在美国用IPAD、手机遥控自家企业,此时,作为企业管理者,还站在移动互联的门外,显然是落伍的。当下,对于企业而言,移动互联网最初的颠覆就是高效的信息流转,以求与物流、资金流形成合力,目前,全球已有24的机构完全接受了移动办公方式。预计2014年这一比例将达到83。但是,在中国,老板们还有心病难除。最近的研究表明,员工喜欢移动办公,老板却未必买账。老板的心结是显而易见的一则怀疑员工到底有没有在“上班”,二则唯恐企业有紧急工作时找不到人。这些心病恰恰反映了保守派企业的短处管理思想墨守成规,管理方法不具有包容性和应变能力。数家高薪民营企业的实践表明,对从事许多项目的员工实行移动办公,不仅可以降低办公成本,还能大幅提升办公效率,更没有“找不到人”的时候。事实上,移动办公反而是考察员工责任心和效率的试金石,就像CISCO的调查显示,其3/5的员工说他们的工作效率与是否在办公室无关,超过38的人认为家庭办公最有效率。与之相对,移动办公移销宝的优势却显而易见。它不仅挖掘了时间和空间的机会,还把握了效率和价值的机会。对员工而言,移动办公令自主工作进入一个与大势相合境界。于企业而言,它节约办公费用还在其次,更实惠和核心的是能积极管理劳动力价值成本而不是劳动力价格成本,激发员工在办公室之外的工作效能,最大地挖掘其价值。仔细观察,不难发现,移动办公不仅在世界范围大受欢迎并被广泛推广,在国内很多新兴小微企业也是如此。很多新创业的公司都或多或少引用移动办公技术,以求企业的生存和快速发展。按照IDC的统计,2011年全球有10亿左右移动办公人员。到2013年,会有119亿的员工采用移动办公,占全球员工人数的349。移动办公正在成为新的办公趋势。对于企业管理者而言,是顺势而为,还是逆潮而动,答案显而易见。2开发环境及相关技术21IOS系统与OBJECTIVEC简介IOS是由苹果公司开发的移动操作系。苹果公司在2007年公布了这个操作系统,现在IPHONE、IPHONE、IPODTOUCH等设备上均使用改移动操作系统。它属于类UNIX内核的商业操作系统,具有较强得内存管理能力,能同时运行多款软件。IOS操作系统支持多点触控,可与系统进行基本手势交互,包括滑动(SWIPING)、轻按(TAPPING)、挤压PINEHING及旋转FNTATING。IOS层次架构如图21所示,IOS大体上可以分为以下四个层次。图21IOS分层架构图1、COREOS核心层包含ACCELERATEFRAMEWORK、EXTERNALACCESSORYFRAMEWORK、SECURITYFRAMEWORK、SYSTEM等几个框架,为其他方法类的使用提供基础功能,比如硬件驱动、内存管理、线程管理、文件系统、网络以及标准输入输出等。2、CORESERVICES核心服务层包含ADDRESSBOOKFRAMEWORK、CFNETWORKFRAMEWORK、COREDATAFRAMEWORK、COREFOUNDATIONFRAMEWORK、CORELOCATIONFRAMEWORK、COREMEDIAFRAMEWORK、CORETELEPHONYFRAMEWORK、EVENTKITFRAMEWORK、FOUNDATIONFRAMEWORK、MOBILECORESERVICESFRAMEWORK、QUICKLOOKFRAMEWORK、STOREKITFRAMEWORK、SYSTEMCONFIGURATIONFRAMEWORK、BLOCKOBJECTS、GRANDCENTRALDISPATCH、INAPPPURCHASE、LOCATIONSERVICES、SQLITE、XMLSUPPORT等一些框架,为系统中的其他应用提供基本系统服务,同时也提供了很多有用的方法类,如SQLITE数据库、ICLOUD存储、定位、联网以及一些安全服务等。3、MEDIAH媒体层包含COREGRAPHICS、COREANIMATION、OPENGLES、CORETEXT、IMAGEI/O、ASSETSLIBRARYFRAMEWORK、MEDIAPLAYERFRAMEWORK、AVFOUNDATION、OPENAL、COREAUDIOFRAMEWORKS、AVFOUNDATION、COREMEDIA等,提供了一些媒体技术,包括图形图像技术、视音频技术、核心动画技术等4、COCOATOUCH触摸层包括ADDRESSBOOKUIFRAMEWORK、EVENTKITUIFRAMEWORK、GAMEKITFRAMEWORK、IADFRAMEWORK、MAPKITFRAMEWORK、MESSAGEUIFRAMEWORK、UIKITFRAMEWORK等等,它们是任何应用程序的关键架构,所有应用程序里面的各种组件都来自于此,此外还提供了多任务处理、多点触控、图片文字的输出显示、文件的存取以及加速计等功能。IOS项目开发时所使用的语言是OBJEELIVEC和COCOA编程。OBJECTIVEC是种扩充C的面向对象的编程开发语言,极度简化了C语言,COCOA是对OBJEELIVEC的高级封装,可以大量简化开发者的工作量。OBJECTIVEC语言有三个主要特点,首先是有消息传递模型,其次是动态能力,最后是内存管理。OBJECTIVEC通过支持类定义,方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展提升了标准的ANSIC语言。现在OBJECTIVEC主要应用于MACOSX和I0S这两个NEXTSTEP的派生系统,为了在IPHONE上面开发C/S模式的应用,就必须使用OBJECTIVEC语言编写IOS应用。22开发环境221XCODEIDE目前IOS应用开发唯一的开发工具就是XCODE,XCODE61是目前最新版本,它是苹果公司向开发人员提供的集成开发环境,必须运行在MACOS系统下。它可用于管理工程、编写代码、构建可执行文件、进行源码级调试、进行源代码仓库管理、进行性能调节、应用发布工具等一系列开发工具,可以满足应用开发中的各种需要。XCODE支持了多种语言编写的程序,包括C、C、JAVA、OBJECTIVEC等,而且每种语言的编译速度都很快。XCODEIDE是XCODE集成开发环境主要的组成部分,开发过程中的大部分工作都是使用XCODEIDE来完成。图22是XCODE61的主界面。最新的XCODEIDE将功能融为一体,主要的功能有编译器、FIXIT、INTERFACEBUILDER、源代码编辑器。A)编译器。XCODEIDE集成了强大的OBJECTIVEC、C、JAVA、C开源LLVM编译器,使得可以生成IPHONE、IPHONE、IPODTOUCH等产品调试用的APP。B)FIXIT。在开发的过程中难免会因为疏忽造成一些语法错误,这时FIXIT就有了它的用武之地,它能够立即提醒开发者所犯的代码错误,这对开发的效率有非常大的提高。C)INTERFACEBUILDER。在开发过程中,开发者需要构建很多所需的UI界面,INTERFACEBUILDER能够很快速的生成UI界面,并且能够实现代码与界面的功能链接。图22XCODE61主界面D)源代码编辑器。在编写IPHONE应用过程中,为了使每个方法每个变量一目了然,开发者不得不使用较长的名字来分辨它们。源代码编辑器具有智能的代码补全功能,它还有代码折叠、语法高亮、消息起泡等很多实用功能。222IPHONE模拟器IPHONE模拟器即IOSSIMULATOR,在开发过程中我们需要查看代码在设备中的形态,IOSSIMULATOR的运行结果基本跟真机相似,它有完整的IOS设备的不同版本与不同机型,非常方便的让我们可以在很多机型上面测试,解决了我们需要很多真机设备测试的需求,也是调试屏幕适配的重要工具。由于电脑缺少了部分硬件所以少数功能是IOSSIMULATOR不能完成的,比如定位、加速计、相机、打电话、3G网络等功能,所以有一台真机进行测试也是必不可少的。223INSTRUMENTS为了让应用尽可能完善,在开发的同时需要保证应用是否存在闪退等一系列内存泄漏问题,也要保证用户体验要好。这时INSTRUMENTS起到了重要的作用,在IOS应用程序运行在真机或者是模拟器上时,可以利用INSTRUMENTS环境分析性能。INSTRUMENTS会清晰的记录应用程序的行为,可以查看内存分配等重要指标。这些数据都可以很方便我们对程序的评估和修改,在很大程度上提升了程序的健壮性。23运行环境231IPHONE的硬件规格由苹果公司官方在线商店(HTTP/STOREAPPLECOM/CN)得到IPHONE不同型号的硬件规格,表21所示表21IPHONE硬件规格型号IPHONE6PLUSIPHONE6IPHONE5SIPHONE5CIPHONE5屏幕尺寸55英寸47英寸40英寸40英寸40英寸处理器A8芯片拥有64位架构和M8运动协处理器A8芯片拥有64位架构和M8运动协处理器A7芯片拥有64位架构和M7运动协处理器A6芯片A6芯片显示屏MULTITOUCH显示屏MULTITOUCH显示屏MULTITOUCH显示屏MULTITOUCH显示屏MULTITOUCH显示屏分辨率1920X10801134X7501136X6401136X6401136X640摄像头后800万像素,前120万像素后800万像素,前120万像素后800万像素,前120万像素后800万像素,前120万像素后800万像素,前120万像素续航12小时11小时10小时10小时10小时TOUCHID指纹识别传感器指纹识别传感器指纹识别传感器重量172克129克112克132克112克232IPHONE在线办公上的优势IPHONE的优势之一就是便携,在地铁、在公交、在路上,随时随地非常方便。IPHONE的尺寸相对于电脑来说很小,也很轻,但是IPHONE的内容远远大于一个图书馆,对于工作者而言能够大大的减轻负担。IPHONE兼具经济性与环保性,如果公司将IPHONE应用于办公中,将传统的纸质办公、电脑办公装进IPHONE,不仅减轻了员工的公文包,降低了纸质材料印刷费,无疑在经济和环保问题上都做的贡献。在室外我们更是可以通过实时查看数据的方式,了解需要自己实时处理的问题,也方便办公者查看和办公。APPSTORE拥有许多不同的IPHONE应用,各种办公方式,激发人们对办公的热情。目前APPSTORE里IPHONE办公类应用很多。IPHONE改变了人们的信息录入习惯,让人们可以用手指与显示屏触摸和滑动输入,让使用者更加直观明了,缩短了使用者与机器的距离。IPHONE改变了人们对技术的观念,为新一代电子设备打下基础,如今时尚科技已经渗入我们的生活。233IPHONE的不足优点和缺点总是相互存在着,IPHONE也不例外。价格是IPHONE的硬伤,虽然中国GDP在不断的增长,但是对于多数家庭来说花四五千去买一台电子设备还是会显得昂贵。IPHONE开发之初就是面向个人的通信设备,至今主要还是娱乐和社交功能,因此在思想不够成熟的时候很容易分散办公者注意力。IPHONE等电子设备很多画面都采用明亮的色彩,视觉刺激过于强烈,长时间的观看会引影响人体健康。IPHONE不支持移动存储设备,在离开WIFI的环境中想要分享数据显得很不方便。IPHONE是现阶段移动办公辅助工具在业界的最高水准,如今市场上也出现了很多手机,如基于ANDROID系统的小米、华为、三星等,基于WP系统的诺基亚、HTC、三星等。虽然有部分设备硬件性能、便携性上超越了同期的IPHONE,但是是应用的数量与质量、用户体验、续航能力、性价比等还是不能和IPHONE比拟的。因此只要合理使用,在条件允许的情况下IPHONE是移动办公的不二良选。24技术简介241MVC模式MVC全名是MODELVIEWCONTROLLER,是模型MODEL视图VIEW控制器CONTROLLER的缩写,也是构成这种框架的三个部分如图23所示。MVC是一种软件设计的典范思想,用一种业务逻辑、数据、界面显示分离的方法组织代码,降低耦合,可以说任何一个完整的应用都是由MVC构成的。A)MODEL(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。模型不需要知道数据是怎样被试图呈现的,也不关心是怎样被控制器操作的。图23MVC框架图B)VIEW(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。视图不能直接与数据通信,使用DATASOURCR接口从控制器获取数据信息。C)CONTROLLER(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。在IOS程序开发过程中视图和控制器之间的通信是固定的,主要通过OUTLET和ACTION来实现。在MVC架构下,视图和模型是两个完全独立的成分,以控制器为中介进行交互者,两者没有直接的联系。开发者编写的对象可以很容易划分到其中的某个部分,也就是低耦合,这种模式适用与大多数语言编程,不仅仅是OBJECTIVEC。242IOS内存管理程序运行时,开辟的内存空间。使用它,释放它的过程,写的好的程序尽可能少使用内存。OBJECTIVEC的内存管理机制与NET/JAVA那种全自动的垃圾回收机制是不同的,它本质上还是C语言中的手动管理方式,只不过稍微加了一些自动方法。内存管理模式基于对象的“所有权”上。任何对象都会被有一个或多个使用者引用,只要对象还有一个使用者,该对象就应该继续存在。如果一个对象没有使用者了,系统将自动销毁它。为了让开发者清晰的了解使用对象和不再使用对象的场景,COCOA设置了以下策略1管好自己创建的对象。开发者使用ALLOC、NEW、COPY和MUTABLECOPY来创建对象。2使用RETAIN来获得对象的所有权。某个函数接受的对象,通常保证在该函数调用期间仍然可用,并可以安全返回对象给上层调用者。开发者在以下两种情况下使用RETAINA在“访问函数”(ACCESSOR)的实现中或者在INIT方法,为了将对象作为自己的属性。B防止对象被其他操作释放掉,从而变为无效的对象。3当你不在需要的时候,必须放弃对象所有权。243单例、委托、通知、BLOCK单例设计模式SINGLETON,单例模式的意思就是只有一个实例,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式的优点有实例控制SINGLETON会阻止其他对象实例化其自己的SINGLETON对象的副本,从而确保所有对象都访问唯一实例。灵活性因为类控制了实例化过程,所以类可以更加灵活修改实例化过程。在OBJECTIVEC中要实现一个单例类,至少需要做以下四个步骤A为单例对象实现一个静态实例,并初始化,然后设置成NIL。B实现一个实例构造方法检查上面声明的静态实例是否为NIL,如果是则新建并返回一个本类的实例。C重写ALLOCWITHZONE方法,用来保证其他人直接使用ALLOC和INIT试图获得一个新实力的时候不产生一个新实例。D适当实现ALLOCWITHEZONE,COPYWITHZONE,RELEASE和AUTORELEASE。DELEGATE中文叫做委托,通常会用在CLASS内部把一些事件处理“委托“给别人去完成。委托设计模式的实质就是指针的传递。传递指针的问题在于,对方持有了对象指针之后是不安全也不合理的,因为当有了对象指针就可以操作对象中任何内容,所以这时候采用委托就很好的避免了对指针的操作。举个例子,XMLPARSER可能他知道怎么PARSEXML,但是PARSE到的东西要怎么处理XMLPARSER可能不知道。所以NSXMLPARSER就提供了一个NSXMLPARSERDELEGATE给CLIENT去实作,当PARSE到某个ELEMENT的时候,就CALLBACKDELEGATE所定义的MESSAGE,让他CLIENT自己去决定怎么去处理这个ELEMENT。通知即NSNOTIFICATIONCENTER,是专门供程序中不同类间的消息通信而设置的。每个运行中的APPLICATION都有一个NSNOTIFICATIONCENTER的成员变量,它的功能就类似公共栏。对象注册关注某个确定的NOTIFICATION如果有人捡到一只小狗,就去告诉我。我们把这些注册对象叫做OBSERVER。其它的一些对象会给CENTER发送NOTIFICATIONS我捡到了一只小狗。CENTER将该NOTIFICATIONS转发给所有注册对该NOTIFICATION感兴趣的对象。我们把这些发送NOTIFICATION的对象叫做POSTER。BLOCK的实际行为和FUNCTION很像,最大的差别是在可以存取同一个SCOPE的变量值。BLOCK实体形式如下传入参数列行为主体BLOCK实体开头是“”,接着是由小括号所包起来的参数列比如INTA,INTB,INTC,行为主体由大括号包起来,专有名字叫做BLOCKLITERAL。行为主体可以用RETURN回传值,类型会被COMPILER自动辨别。如果没有参数列要写成VOID。3软件体系架构与设计31软件整体架构设计派卡系统平台IPHONE客户端的构建完全遵循MVC的设计模式,同时构建基于IOS系统的软件所使用的SDK都是遵循MVC设计模式的。根据公司需求,软件首先需要实现与服务器之间的数据通信,然后软件框架分为派卡首页、派卡记录统计、信息查询录入、套餐实时报价等模块,具体框架如图31。图31客户端功能模块图框架采用基于C/S模式的三层架构,分别是用户界面层、业务逻辑层、数据持久层。界面层主要由IPHONE客户端完成,业务逻辑层在WEB服务器上,数据层主要是写本地数据库和缓存。32功能性需求分析与设计321网络通信模块网络通信是本应用软件的基本支撑,通过访问网络得知服务器数据的变化,从而呈现不同的课程也界面功能。当网络通信故障、或者网络切换时,需要有相应的提示信息告知用户。322登录模块用户登录功能是本应用软件的一项基本功能,用户必须在登录状态下进行查询、录入等功能。在一定得时间内,应用软件会保存用户的登录状态,勉强了用户反复登录的麻烦。用户必须输入公司发放的用户名和密码组合,使用虚拟键盘登录。会在本地判断输入信息是否合法,然后发送给服务器比较。服务器返回“登录成功”时登入系统,否则提示错误,需要重新登录。用户注册模块是为了用户使用本应用软件的特殊功能的通道,用户登陆时,同一个账号只能激活一台IPHONE手机,若再激活另外设备,则需要进行系统备案,需要后天进行审批。应用软件登录模块的实际图如图32所示。图32用户登录子模块实际图323首页模块系统首页界面是用户登陆之后看见的第一个界面,派卡首页是需要登录才能查看的界面,通过相应的操作可以跳转到相应的功能模块。课程首页分为车牌录入、套餐查询和记录统计。其中套餐查询是由服务器返回套餐分类以及详情查看的模块,记录统计将由服务器返回之前的派卡记录,接下来的就是本系统的车牌录入模块,车牌录入是通过车牌信息进行相关操作的模块。派卡首页模块的实际图如图33所示。图33派卡首页模块实际图324车牌录入模块车牌录入模块是本应用软件重点功能,车牌录入模块是通过输入相应车牌,查找相应车牌信息,对之前有过记录的车牌信息进行显示,已经联系人的添加以及修改,通过添加派卡记录,可对相应车牌的客户进行礼品赠券的派发以及记录。其中车牌的输入可以通过手动输入或者通过拍照识别车牌进行操作,拍照识别是通过手机拍照,然后截取图片,将图片传入底层C模块,让底层C识别车牌,然后返回识别出来的车牌。车牌录入模块的实际图如图34所示。图34车牌录入模块实际图325派卡记录查询模块派卡记录查询模块是客户端通过POST请求,与服务器后天进行数据交互,获得之前该登陆账号的派发记录,然后通过界面的形式,将数据显示出来。能给让用户对自己之前的派发记录有一个了解。派卡记录查询模块的实际图如图35所示。图35派卡记录查询模块实际图326套餐报价查询模块套餐报价查询模块是本应用软件的对现有套餐显示的界面,在用户在进行派卡之余可以通过套餐资讯了解相应的套餐信息,增加用户的知识面。从了提高用户对套餐的了解,更好的服务客户。给用户带来一个较好的使用体验,会有眼前一新的感觉。套餐报价查询模块的实际图如图36所示。图36套餐报价查询模块实际图327设置模块设置模块包含版本更新,默认车牌前缀设置以及缓存,其中首次登录更新缓存。设置模块的实际图如图37所示。图37设置模块实际图4项目功能实现41启动界面动画实现启动界面在IOSAPPS中比较常见,也包括一些桌面应用程序,就是启动应用软件的时候看到的第一个界面。IPHONE启动界面分为两种方式,一种是使用系统自带的,按规则定义启动图片名称即可,显示为1秒,要想延长时间,用NSTHREADSLEEPFORTIMEINTERVAL50,另一种就是自定义UIIVEW,加到WINDOW中去。由于本应用软件想给用户一个不一样的体验,同时也向用户加入了一个微广告的目的。所以在不影响应用软件正常启动效果的情况下,采用了两种方式相结合。即在应用软件按方式一添加启动画面的同时,在APPDELEGATEM对象内的APPLICATIONDIDFINISHLAUNCHINGWITHOPTIONS方法里面加入了一个UIVIEW动画,再使用NSTIMER让动画结束后隐藏启动画面。这样即有了良好的用户体验,又加入了不会让用户反感的微广告。这种做法已经被业界接受,很多应用软件都尝试着在这样做。42网络与数据421网络通信模块实现网络通信模块负责实现服务器与客户端之间的数据通信功能,IOS系统的网络通信对象是NSURLCONNECTION,NSURLCONNECTION提供对网络异步加载请求的支持,并且将获取的数据返回给代理方法CONNECTIONDIDRECEIVEDATA。提供了简单的接口去创建和取消连接,同时使用DELEGATE方法去支持连接过程的反馈和控制。在实际开发中直接用的不多,所以对NSURLCONNECTION进行了封装,实现了DOWNLOAD类和DOWNLOADFINISH类。在原有单条数据通信外,实现了多线程下载,也就是同时多条数据下载。DOWNLOADFINISH为单例类,整个应用软件中使用的DOWNLOADFINISH都是同一个对象,方便了对服务器通信的管理。日常生活中,用户可能在不同的网络环境下使用应用软件,因此使用了REACHABILITY和NETREACHABILITY来检测网络环境的连接情况,REACHABILITY给定了三种网络状态,如表41所示。应用软件启动的同时会对网络环境进行检查,在APPDELEGATEM中完成此工作。在应用软件运行的过程中,应用软件会对网络连接做实时的检测,当网络通信故障或者网络环境切换时,会给用户一个UIALERTVIEW的提示。表41REACHABILITY三种网络状态网络状态NOTREACHABILITY无连接REACHABILITYVIAWIFIWIFI网络连接REACHABILITYVIAWWAN3G/GPRS网络连接在应用软件中,检测网络环境的相关核心代码如下所示。A检测当前网络环境是否是WIFIBOOLISENABLEWIFIRETURNREACHABILITYREACHABILITYFORLOCALWIFICURRENTREACHABILITYSTATUSNOTREACHABLEB检测当前网络环境是否是3GBOOLISENABLE3GRETURNREACHABILITYREACHABILITYFORINTERNETCONNECTIONCURRENTREACHABILITYSTATUSNOTREACHABLE422JSON数据解析实现本应用软件的服务器采用WEBSERVICE部署,客户端与服务端使用HTTP协议进行数据通信,使用GET或者POST方法与服务器交互,最终返回JSON格式数据。JSON指的是JAVASCRIPT对象表示法(JAVASCRIPTOBJECTNOTATION),是轻量级的文本数据交换格式,独立于语言和平台,具有自我描述性。从IOS5开始,APPLE提供了对JSON的原生支持(NSJSONSERIALIZATION),但是为了兼容以前的IOS版本,可以使用第三方库来解析JSON。JSON解析常见的IOS解析方法有TOUCHJSON、SBJSON、JSONKIT和IOS5所支持的原生的JSON方法等,其中系统的API的解析速度最快,我们在工程项目中选择使用。43登录模块431用户登录子模块实现本应用软件用户登录子模块主要实现用户账号密码信息的输入、验证,最终完成登录。由于用户账号密码的保密性,登录数据请求参数做了加密处理,可以有效的保护用户隐私。登录请求参数见表42,用户登录核心方法见表43。表42登录请求参数表参数类型说明ACCOUNTSTRING登录账号USERPASSWORDSTRING登录密码表43登录核心方法表核心方法方法说明VOIDBTNCLICKUIBUTTONBTN响应用户点击页面登录键事件,实现登录功能。VOIDDIDLOGINACTION向服务器发送登录请求处理,并反馈用户信息。VOIDDOWNLOADFINISH记录服务器返回的用户信息到本地,供下次启动应用软件使用。用户登录子模块使用了UITEXTFIELD、UIIMAGEVIEW、UIBUTTON、UIALERTVIEW等控件进行视图的布局,应用软件登录子模块的实际图如图41所示。图41用户登录子模块实际图44登陆模块实现441登陆实现登陆需要的UUID是由KEYCHAINITEMWRAPPER第三方封装实现,首先,简单介绍一下UDID这个东西UDID是UNIQUEDEVICEIDENTIFIER的简称,也就是唯一设备标识的意思。于IOSSDK中取得的方法是UIDEVICE的一个叫UNIQUEIDENTIFIER的NSSTRING,由于这个ID字符串是基于设备的,应用开发人员可以通过获取此ID来用于记录区分设备。正是由于这个特性,可能会导致一些隐私等等相关的问题,APPLE于IOS5中将这个UDID废掉了,SDK中被标记为了DEPRECATED,虽然为了兼容低版本的源代码而继续存在,但并不会再返回任何有实际意义的东西。在做派卡登陆这个功能时,发现还是需要用到可以识别设备的东西的,对设备经行备案,使一个账号只能激活一台设备,经过一段时间的研究、试验,发现了这个应该还算是比较靠谱的方法其实早在UDID被DEPRECATED的消息刚出来时,就已经有很多人开始研究对策了,我也GOOGLE到了各种五花八门的解决方案,最后还是觉得这个UUID的方案比较合适,毕竟是苹果官方文档里推荐的替换UDID的方法关于UUID的具体说明可以查看下面参考文章中给出的苹果官方文档链接。简单来说,UUID就是一个随机序列字符串生成器,有点像MICROSOFTWINDOWS的COMGUID生成器的作用,比起自己随机一个字符串的好处就是这东西能够保证唯一性,适用于标记。这样的做法把生成的ID保存起来,下次再用的时候就直接读取已经保存的ID了。显然,那个UUID生成只是个“随机字符串”生成器,并不能像UDID那样保证每次取得的串都一样保存起来虽然能保证用户再次打开这个应用时,能够获得一致的标识ID,但不能保证用户删除应用重新安装后这个ID的一致性,因为NSUSERDEFAULTS只是个像游戏存档一样的东西,游戏删了,存档也就跟着一块删了。所以,这个“存存档”的方法并不是一个比较完善的解决方案,一个更好的做法是利用KEYCHAIN保存这个生成的UUID。KEYCHAINITEMWRAPPERWRAPPERKEYCHAINITEMWRAPPERALLOCINITWITHIDENTIFIER“DEVICEIDENTIFIER“ACCESSGROUPNILNSSTRINGUNIQUEIDENTIFIERWRAPPEROBJECTFORKEYIDKSECATTRACCOUNTNSLOG“DEVICE_IDENTIFIER“,UNIQUEIDENTIFIERIFUNIQUEIDENTIFIERISEQUALTOSTRING“WRAPPERSETOBJECTGETUUIDFORKEYIDKSECATTRACCOUNTUNIQUEIDENTIFIERWRAPPEROBJECTFORKEYIDKSECATTRACCOUNTWRAPPERRELEASE442备案功能实现备案功能主要账号第一次登入手机无需备案,如更换手机则需进行申报备案、审批。备案也同样需要UUID。代码如下KEYCHAINITEMWRAPPERWRAPPERKEYCHAINITEMWRAPPERALLOCINITWITHIDENTIFIER“DEVICEIDENTIFIER“ACCESSGROUPNILNSSTRINGUNIQUEIDENTIFIERWRAPPEROBJECTFORKEYIDKSECATTRACCOUNTIFUNIQUEIDENTIFIERISEQUALTOSTRING“WRAPPERSETOBJECTGETUUIDFORKEYIDKSECATTRACCOUNTUNIQUEIDENTIFIERWRAPPEROBJECTFORKEYIDKSECATTRACCOUNTWRAPPERRELEASENSSTRINGSTRURLNSSTRINGSTRINGWITHFORMAT“UNAME_DLMADDDOWNLOADWITHURLSTRINGKADDDEVICELOGAPI_URLANDTYPE8ANDPOSTYESANDPOSTSTRSTRURL45智能拍照识别功能实现智能拍照识别是通过相机拍照,通过第三方库对照片进行处理,将图片传入底层核心C,底层通过对图片处理,对图片中车牌的符号一个识别,然后将识别结果传回,得到照片车牌的车牌号码。拍照识别功能的实际图如图42所示。图42拍照识别功能实际图46定位功能实现定位功能通过苹果自带的定位功能,由于苹果在IOS80下CLLOCATIONMANAGER定位服务需要授权。在INFOPLIST文件还要加上NSLOCATIONWHENINUSEUSAGEDESCRIPTION这个KEY,VALUE可以为空,。定位功能核心代码如下VOIDMAPLOCATION_LOCATIONMANAGERCLLOCATIONMANAGERALLOCINITIFCLLOCATIONMANAGERAUTHORIZATIONSTATUSKCLAUTHORIZATIONSTATUSNOTDETERMINEDIFDEF_IPHONE_8_0IF_LOCATIONMANAGERRESPONDSTOSELECTORSELECTORREQUESTALWAYSAUTHORIZATION_LOCATIONMANAGERPERFORMSELECTORSELECTORREQUESTALWAYSAUTHORIZATION/用这个方法,PLIST中需要NSLOCATIONALWAYSUSAGEDESCRIPTIONIF_LOCATIONMANAGERRESPONDSTOSELECTORSELECTORREQUESTWHENINUSEAUTHORIZATION_LOCATIONMANAGERPERFORMSELECTORSELECTORREQUESTWHENINUSEAUTHORIZATION/用这个方法,PLIST里要加字段ENDIF/设置代理_LOCATIONMANAGERDELEGATESELF/定位的频率(位置变化多少发送)_LOCATIONMANAGERDISTANCEFILTERKCLDISTANCEFILTERNONE/定位的精准十米误差_LOCATIONMANAGERDESIREDACCURACYKCLLOCATIONACCURACYBEST/开始更新位置_LOCATIONMANAGERSTARTUPDATINGLOCATION/当位置更新时调用此方法VOIDLOCATIONMANAGERCLLOCATIONMANAGERMANAGERDIDUPDATELOCATIONSNSARRAYLOCATIONS/此处LOCATIONS存储了持续更新的位置坐标值,取最后一个值为最新位置,如果不想让其持续更新位置,则在此方法中获取到一个值之后让LOCATIONMANAGERSTOPUPDATINGLOCATIONCLLOCATIONCURRENTLOCATIONLOCATIONSLASTOBJECTCLLOCATIONCOORDINATE2DCOORCURRENTLOCATIONCOORDINATE/经度_COMPLONGITUDETEXTFIELDTEXTNSSTRINGSTRINGWITHFORMAT“F“,COORLONGITUDE/纬度_COMPLATITUDETEXTFIELDTEXTNSSTRINGSTRINGWITHFORMAT“F“,COORLATITUDECLGEOCODERGEOCODERCLGEOCODERALLOCINITGEOCODERREVERSEGEOCODELOCATIONCURRENTLOCATIONCOMPLETIONHANDLERNSARRAYPLACEMARKS,NSERRORERRORCLPLACEMARKFIRSTPLACEMARKPLACEMARKSFIRSTOBJECT_PAIKEPLACETEXTFIELDTEXTFIRSTPLACEMARKNAMENSLOG“地址“,_PAIKEPLACETEXTFIELDTEXT_LOCATIONMANAGERSTOPUPDATINGLOCATION47检测更新功能实现检测更新是通过获取当前使用APP的版本以及服务器中APP的最新版本,通过两者的比较,如果服务器中APP的版本号比当前使用的APP的版本号高,则可进行版本更新。检测更新功能的实际图如图43所示。图43拍照识别功能实际图5项目性能测试及运行情况51项目性能测试本应用软件是IPHONE版的,固然不支持IPAD设备。所有的IPHONE硬件性能、屏幕分辨率、屏幕尺寸等可能会不一样,但是开发人员最关心的是屏幕宽高比。目前所有IPHONE的型号相对ANDROID来说很少,所有开发人员不用花太多力气去适配屏幕。在测试的过程中也减少了跨终端测试,所以测试数据要稳定很多。但是由于网络环境的千差万别加上时间与条件的限制,本应用软件没有进行大规模的针对网络环境的测试。本应用软件测试其他性能均使用WIFI网络环境,使用IPHONEAIR硬件设备。重点的测试对象是内存泄漏测试、与服务器数据匹配测试、用户体验测试、基本功能测试,内存测试使用INSTRUMENTS工具,如图51所示图51INSTRUMENTS内存检测图测试发现视频播放有轻微的内存泄漏,查找原因发现是重复创建播放对象产生的,将对象做为全局的对象只ALLOC一次解决了问题。在应用软件重复测试的时候发现了闪退的问题,后续查询结果是因为服务器数据结构不稳定导致,故在数据解析时候加了很多关于数据结构的判断,最终解决了这个问题。测试是一个应用软件的终身任务,每个程序员都知道没有一个应用软件是完全没有漏洞的,只有不断的测试和用户反馈才能修复一个又一个的漏洞,才能保证良好的用户体验。52项目运行情况经过长期的讨论开发测试,最终完成了应用软件的开发阶段,应用软件核心的界面如图52所示。图52核心界面图应用软件在目前的所有IPHONE(IOS70以上)设备中都能够正常运行,方便了用户随时随地的办公,能够切切实实的帮助到员工。总结1所有的UI操作,都要切换到主线程中进行否则,会发生莫名其妙的错误2在主线程中,RUNLOOP默认是开启状态的。非主线程中,如果要用到RUNLOOP,必须手动开启RUNLOOP。4严格遵守IPHONE内存管理手册,对于不是由你创建的对象,不要越权RELEASE,否则,可能会导致程序CRASH有时,一些看起来非常严重的BUG,在经过N过次努力,多种思路尝试FIX之后,再回头分析BUG产生的原因,你会发现,造成这个严重BUG的原因,很可能是你违反了一个众所周知的规则引起的这个规则你非常清楚,熟悉,但就是在CODING的时候,稍不留神违反了

温馨提示

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

评论

0/150

提交评论