05月09日1037503750手机网购发展的特色与安全性研究学生.doc

上传人:laozhun 文档编号:3930041 上传时间:2023-03-28 格式:DOC 页数:34 大小:773.50KB
返回 下载 相关 举报
05月09日1037503750手机网购发展的特色与安全性研究学生.doc_第1页
第1页 / 共34页
05月09日1037503750手机网购发展的特色与安全性研究学生.doc_第2页
第2页 / 共34页
05月09日1037503750手机网购发展的特色与安全性研究学生.doc_第3页
第3页 / 共34页
05月09日1037503750手机网购发展的特色与安全性研究学生.doc_第4页
第4页 / 共34页
05月09日1037503750手机网购发展的特色与安全性研究学生.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《05月09日1037503750手机网购发展的特色与安全性研究学生.doc》由会员分享,可在线阅读,更多相关《05月09日1037503750手机网购发展的特色与安全性研究学生.doc(34页珍藏版)》请在三一办公上搜索。

1、第一章 序论1.1手机网购的背景1.1.1智能手机的普及和应用随着智能手机的普及和应用,如今的智能手机就好比是一台缩小版的PC。手机已成为互联网上继PC之后的另一大终端。手机购物,原理和电脑上网购物一样,只不过载体从电脑变成了上网手机。结合3G通信网络的的支持,智能手机的发展趋势,势必将成为一个功能强大,集通话、短信、网络接入、影视娱乐为一体的综合性个人手持终端设备。1.1.2无线接入互联网速度提升随着上网速度更快的3G的推出,手机购物将成为现实。目前国内3大运营商的3G网络理论速度均在2.8Mb/s左右,是2G网速的20多倍;这样的速度基本可以保证用户流畅地浏览网店页面并进行网络支付,操作体

2、验和电脑上网购物几乎没有区别。随着3G网络实现无缝覆盖,那么势必会有越来越多的用户选择 “边走边购物”的手机购物模式,而手机购物也将成为“网络购物”之后,人们购物模式的又一次“升级”。1.1.3移动电子商务的迅猛发展 移动电子商务(M-Commerce),它由电子商务(E-Commerce)的概念衍生出来,电子商务以PC机为主要界面,是“有线的电子商务”;而移动电子商务,则是通过利用手机、PDA及掌上电脑等无线终端进行的B2B、B2C或C2C的电子商务。随着手机购物的流行速度飙升,电子商务具有十分广阔的前景,目前,京东、当当、凡客、淘宝、1号店大型电子商务网站纷纷推出或完善了自身的手机购物门户

3、,同时研发或升级自己的手机购物终端,努力改善用户体验。1.2 手机网购的目的及其意义手机购物,是指利用手机上网实现网购的过程,属于移动互联网电子商务。未来中国的手机购物会有一个高速增长期,用户只要开通手机上网服务,就可以通过手机查询商品信息,并在线支付购买产品。不用去实体店铺,也不用坐在电脑前“淘货”,一部手机就能完成“逛店”、选购和支付的全过程。手机网购和电脑网购一起,无疑可以更广阔的覆盖用户潜在的购物时间,让人们可以随时随地更便捷地利用电子商务,不浪费人们可能随时随地产生的消费冲动。目前中国的手机网购还处于刚起步阶段,一旦用户习惯了这种手机网购方式,那么其蕴含的巨大潜力,足以成为电子商务的

4、另一个杀手级应用。第二章 手机网购平台的关健技术研究2.1 现有主要的手机网购平台随着网上购物人群数量的增多,促进了国内各大B2C(Business-to-Customer)网站(淘宝、京东、当当)的发展,这些网站都拥有自几对应的手机客户端软件便于用户通过手机网上购物。目前,谷歌Android系统、苹果ios系统和微软Windows Phone系统占据了手机网购的大部分市场份额。2.1.1谷歌AndroidAndroid中文名“安卓”或“安致”,中国大陆地区较多人称之,其实尚未有统一中文名称,是由谷歌、开放手持设备联盟联合研发,谷歌独家推出的智能操作系统,2011年初数据显示,仅正式上市两年的

5、操作系统Android已经超越称霸十年的塞班操作系统,跃居全球第一。2012年11月数据显示,安卓占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%,彻底占领中国智能手机市场,也成为了全球最受欢迎的智能手机操作系统,因为谷歌推出安卓时采用开放源代码(开源)的形式推出,所以导致世界大量手机生产商采用安卓系统生产智能手机,再加上安卓在性能和其他各个方面上也非常优秀,便让安卓一举成为全球第一大智能操作系统,安卓在世界上最为强大的竞争对手为苹果公司研发推出的iOS智能操作系统和微软公司研发推出的Windows Phone智能操作系统,而在开发商上,三星集团(可简称三星)和苹果公司也为手机

6、业竞争的死敌,三星集团也采用安卓智能系统生产智能手机,便与苹果公司共同打败了当年全球第一大手机生产商诺基亚,因为多年与强大对手苹果公司进行激烈的竞争让三星集团成为全球第二大手机生产商,而2011年10月底,三星集团智能手机出货量为2780万部,在全球智能手机市场的份额为23.8%,超越了苹果,也成为了全球手机出货量第一的手机生产商,便导致三星集团一举成为全球第一大手机生产商,但同时也更加成为了苹果公司在手机业的最强大的竞争对手,同时,三星集团也为安卓操作系统驾驭能力最好的手机生产商,在市值上,截止在2012年8月三星集团在全球企业市值中为2000亿美元,2012年三星集团年营业额为1490亿美

7、元(约合人民币9240亿元),2012年世界500强企业中,三星集团排名第20位,三星集团采用安卓获得此成就也让安卓在世界进行了非常重要的推动,也可称之安卓可在世界上拥有这样的辉煌是三星集团所给予。支持厂商:世界所有手机生产商都可任意采用,并且世界上80%以上的手机生产商都采用安卓。基于安卓智能操作系统的第三方智能操作系统:因为谷歌已经开放安卓的源代码,所以中国和亚洲部分手机生产商研发推出了基于安卓智能操作系统的第三方智能操作系统,其中来源于中国手机生产商的基于安卓智能操作系统的第三方智能操作系统最为广泛,例如米柚、乐蛙、深度OS、点心OS、腾讯tita、百度云ROM、乐OS、Cyanogen

8、Mod、JOYOS、Emotion UI、Flyme OS、Sense、LG Optimus、魔趣、OMS、百度易、Blur、阿里云OS等,其中,阿里云OS和OMS与安卓都是以Linux操作系统为内核的智能操作系统,因为阿里云OS和OMS都吸取了安卓的大量精华,所以也可以说都是基于安卓智能操作系统的第三方智能操作系统。2.1.2苹果iOS苹果公司研发推出的智能操作系统,采用封闭源代码(闭源)的形式推出,因此仅能苹果公司独家采用,截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%,为全球第二大智能操作系统,iOS在世

9、界上最为强大的竞争对手为谷歌推出的安卓智能操作系统和微软推出的Windows Phone智能操作系统,但iOS因为具有着独特又极为人性化,极为强大的界面和性能深受用户的喜爱,iOS本身就为一款发烧级的智能操作系统,苹果手机也全部采用iOS操作系统,因此苹果手机也是一款世界顶尖的发烧级手机,但也为世界上最为昂贵的手机,早期时苹果公司与三星集团共同打败当年的全球第一大手机生产商诺基亚,因为苹果公司的手机出货量全球第一,便成为了续诺基亚后的全球第一大手机生产商,而把三星集团一直打压在全球第二大手机生产商的位置,但在2011年10月底,苹果手机出货量为1710万部,市场份额为14.6%,为全球手机出货

10、量第二的手机生产商,因为苹果公司最为强大的竞争对手三星集团大发威力,手机出货量超越苹果公司,导致全球第一大手机生产商的宝座被三星集团夺取,但苹果公司为了反击夺取全球第一大手机生产商的宝座仍然在与三星集团进行激烈的竞争中,苹果公司截止在2012年8月在全球企业市值中已经突破6230亿美元,成为世界市值第一的上市公司,2011年财年苹果公司年营业额为1082.5亿美元(约合人民币6716亿元),2012年世界500强企业中,苹果公司排名第55位!支持厂商:苹果(闭源)。 2.1.3微软Windows Phone微软公司研发推出的智能操作系统,同时将谷歌的Android和苹果的iOS列为主要竞争对手

11、,早期为全球第五大智能操作系统,截止至2012年8月,微软Windows Phone(包括旧Windows Mobile系列和Windwos Phone系列)占据了全球智能手机系统市场份额的为24%,超越了黑莓和塞班,成为了全球第三大智能操作系统,一款全新的智能操作系统的辉煌就此拉开序幕,并且,前几年的全球第一大手机生产商诺基亚与微软达成全球战略同盟并深度合作共同研发Windows Phone,因此可预计,再过不久,谷歌的Android和苹果的iOS两大全球顶尖级的智能操作系统会迎来新的强大竞争对手。支持厂商:诺基亚、三星,华为,HTC。2.2 Android系统平台技术2.2.1 Andro

12、id系统概述2.2.1.1 Android基础知识Android是目前最流行的手机开发平台,依靠Google强大开发和媒体资源,Android成为众多手机厂商追逐的对象。Android是包括一个操作系统、中间件和关键应用的移动设备的一个软件堆。目前Android的双重开发模式为:各厂商在统一开放平台开发手机和第三方开发手机应用。Android在技术上具有相当的优势,最显著的地方体现在它的全开放性,另外多硬件平台的支持、使用众多的标准化技术、核心技术完整,统一、完善的SDK和文档、完善的辅助开发工具等,使其成为众多智能手机平台。2.2.1.2 Android的开发目前,Android的开发分成三

13、种类型:移植开发手机系统、应用程序开发及Android系统开发。Android系统开发2.2.1.3 Android的SDK与源代码Android开发有两种形式,一种是Android的SDK,有Linux和Windows两种环境。一种是Android的完全源代码(完全源代码,Linux中开发)Android的SDK以二进制的形式提供,用于应用开发JAVA应用程序。不同版本的Android的SDK:p android-sdk-linux_x86-1.0p android-sdk-windows_x86-1.0p android-sdk-linux_x86-1.5_r2p android-sdk-

14、windows_x86-1.5_r2p android-sdk-linux_x86-1.6_r1p android-sdk-windows_x86-1.6_基于源代码Android的开发在获取所有源代码的基础上进行,可以开发应用程序,进行系统移植,或开发系统本身。Android的源代码可以从其git的源代码仓库中获得:android.git.kernel.org2.2.2 Android系统的开发综述2.2.2.1 Android的系统架构操作系统层使用C语言编写,运行于内核空间。底层库和JAVA虚拟机使用C语言编写,运行于用户空间。JAVA框架和JAVA应用程序使用C语言编写,运行于用户空间

15、。Android的第1层次由C语言实现,第2层次由C和/C+实现,第3、4层次主要由Java代码实现。第1层次和第2层次之间,从Linux操作系统的角度来来看,是内核空间与用户空间的分界线,第1层次运行于内核空间,第2、3、4层次运行于用户空间。第2层次和第3层次之间,是本地代码层和Java代码层的接口。第3层次和第4层次之间,是Android的系统API的接口,对于Android应用程序的开发,第3层次以下的内容是不可见的,仅考虑系统API即可。Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬

16、件和软件栈之间的抽象层。Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。p 系统 C 库 :一个从 BSD 继承来的标准 C 系统函数库, 专门为基于嵌入式linux 的设备定制的。p 媒体库 :基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制。p Surface Manager : 对显示子系统的管理,图层功能。p WebCore : 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。p SGL : Skia的2D图形引擎p 3D

17、libraries : 基于OpenGL 实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。FreeType :位图(bitmap)和矢量(vector)字体显示。Android运行库Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik 虚拟 机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了 优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译

18、,然后通过SDK 中 的 dx 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。Android应用程序框架:开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids)

19、,文本框(text boxes),按钮(buttons ), 甚至可嵌入的web 浏览器。内容提供器(Content Providers):使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据资源管理器(Resource Manager ):提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。p 通知管理器 ( Notification Manager): 使得应用程序可以在状态栏中显示自定义的提示信息。p 活动管理器( Activity Manager) :用来管理应用程序生命周期并提供常用的导航回退功能。Android应用

20、程序:Android会同一系列核心应用程序包一起发布,这些应用程序包也就是预置的应用程序,主要包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。2.2.2.2 Android源代码的开发环境开发Android主机环境需要Git工具、Repo工具、Java的JDK和主机编译工具。Android代码的工程分为三个部分:p 核心工程( Core Project)建立Android系统的基础,在根目录的各个文件夹中。p 扩展工程( External Project)使用其他开源项目扩展的功能,在external文件夹中。包( Pac

21、kage)提供Android的应用程序和服务,在package文件夹中。编译Android系统,在其根目录下中具有一个Makefile,直接执行make即可。$ makemake的过程将递归找到各个目录中的Android.mk文件进行编译。Android的编译将搜索所有的目录,编译本身和目录的名称以及位置没有关系。Android系统编译完成的结果全部在其根目录的out目录中,在其他目录中没有内容。 Android编译完成后可以在QEMU中运行,首先设置环境变量:$ declare -x ANDROID_PRODUCT_OUT=Androidrootout/target/product/gene

22、ric“$./out/host/linux-x86/bin/emulator -shell运行Android:按照这种方式运行后,在出现图形系统的同时,将会出现Android的shell界面。默认皮肤为:HVGA-P=320480。Android EmulatorAndroid Emulator基于QEMU,这个仿真器支持Android Virtual Device (Android虚拟设备)以及很多的调试性能。使用Android Emulator可以仿真Android整个系统运行,在运行的过程中,可以指定内核、主文件系统、用户文件系统等。$ emulator -avd - . -默认使用的内

23、核是:prebuilt/android-arm/kernel/kernel-qemu2.2.3 Android底层库与程序2.2.3.1底层库和程序的结构Android的本地实现层次具有基本的库和程序。这些库和程序是Android基本系统运行的基础。Android中增加本地的程序或者库,这些程序和库与它们所在的路径没有关系,只和它们的Android.mk文件有关系。Android.mk具有统一的写法,主要包含了一些系统公共的宏。选项参考以下文件:build/core/config.mk默认的值在以下文件中定义:build/core/base_rules.mk在一个Android.mk中也可以生

24、成多个可执行程序、动态库或者静态库。可执行程序的Android.mk:# Test ExeLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= main.cLOCAL_MODULE:= test_exe#LOCAL_C_INCLUDES :=#LOCAL_STATIC_LIBRARIES :=#LOCAL_SHARED_LIBRARIES :=include $(BUILD_EXECUTABLE)静态库(归档文件)的Android.mk:# Test Static libLOCAL_PATH:= $(call my-

25、dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= helloworld.cLOCAL_MODULE:= libtest_static#LOCAL_C_INCLUDES :=#LOCAL_STATIC_LIBRARIES :=#LOCAL_SHARED_LIBRARIES :=include $(BUILD_STATIC_LIBRARY)动态库(共享库)的Android.mk:# Test shared libLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= helloworld

26、.cLOCAL_MODULE:= libtest_sharedTARGET_PRELINK_MODULE := false#LOCAL_C_INCLUDES :=#LOCAL_STATIC_LIBRARIES :=#LOCAL_SHARED_LIBRARIES :=include $(BUILD_SHARED_LIBRARY)可执行程序、动态库和静态库生成的女表分别在以下的文件夹中:out/target/product/generic/obj/EXECUTABLEout/target/product/generic/obj/STATIC_LIBRARYout/target/product/ge

27、neric/obj/SHARED_LIBRARY其目标的文件夹分别为:XXX_intermediatesXXX_shared_intermediatesXXX_static_intermediates对于可执行程序和动态库,生成的LINK子目录中的包含带有符号的库(没有经过strip)编译模板的区别如下所示:目标的模板:可执行程序,动态库,静态库include $(BUILD_EXECUTABLE)include $(BUILD_SHARED_LIBRARY)include $(BUILD_STATIC_LIBRARY)如果编译主机的:可执行程序,动态库,静态库include $(BUILD_

28、HOST_EXECUTABLE)include $(BUILD_HOST_SHARED_LIBRARY)include $(BUILD_HOST_STATIC_LIBRARY)安装路径的问题LOCAL_MODULE_PATH和LOCAL_UNSTRIPPED_PATH增加以下可以安装到不同的文件系统:LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)文件系统的选择:TARGET_ROOT_OUT :表示根文件系统out/target/product/gener

29、ic/rootTARGET_OUT :表示system文件系统out/target/product/generic/systemTARGET_OUT_DATA :表示data文件系统out/target/product/generic/data2.2.3.2 标准C/C+库bionicbionic提供C/C+标准库的功能,它是一个专为嵌入式系统设计的轻量级标准库实现。bionic的源码和头文件在以下的目录中:bionic/相对传统的标准库实现,如glibc,bionic的体积和内存占用更小。 bionic支持标准C/C+库的绝大部分功能,支持数学库,以及NPTL线程库。它还实现了自己的Link

30、er以及Loader,用于动态库的创建和加载。bionic加入了一些Android独有的功能,比如log的底层支持。另外它还实现了一套property系统,这是整个Android的全局变量的存储区域,bionic使用共享内存的方式来实现维property系统。2.2.3.3 C语言底层库libcutilsC语言底层库提供了C语言中最基本的工具功能。这是Android本地中最为基础的库,基本上Android中所有的本地的库和程序都连接了这个库。头文件的路径:system/core/include/cutils库的路径system/core/libcutils编译的结果是:libcutils.so

31、libcutil中主要的头文件:threads.h:线程sockets.h:Android的套接字properties.h:Android的属性log.h:log信息array.h:数组ashmem.h:匿名共享内存atomic.h:原子操作mq.h:消息队列2.2.3.4 init进程Android启动后,系统执行的第一个进程是一个名称为init的可执行程序。提供了以下的功能:p 设备管理p 解析启动脚本p 执行基本的功能p 启动各种服务代码的路径:system/core/init编译的结果是一个可执行文件:init启动脚本的路径:system/core/rootdir/init.rcini

32、t的可执行文件是系统运行的第一个用户空间的程序,它以守护进程的方式运行。init.rc是在init启动后被执行的启动脚本,其语法包含了Actions,Triggers,Services,Options,Commands,Properties等。2.2.3.5 shell工具Android系统的启动后,提供了基本shell界面供开发调试使用。需要启动了一个名称为console的服务,实际上执行的程序:/system/bin/shsh代码的路径:system/core/shtoolbox代码的路径:system/core/toolbox生成的文件/system/bin/toolbox,目标文件系统

33、/system/bin/中的具有一些符号将连接到toolbox上。2.2.3.6 C+工具库libutilslibutils是Android的底层库,这个库以C+实现,它提供的API也是C+的。Android的层次的C语言程序和库,大都基于libutils开发。头文件的路径:frameworks/base/include/utils库的路径frameworks/base/libs/utils编译的结果是:libutils.soErrors.h:定义宏表示错误代码Endian.h:定义表示大小端的宏misc.h:几个字符串和文件相关的功能函数TextOutput.h:定义文本输出的基类TextO

34、utputBufferedTextOutput.h:类BufferedTextOutput,它是一个TextOutput的实现Pipe.h:定义管道类PipeBuffer.h:定义内存缓冲区域的类BufferList.h:定义链表的模版类SharedBuffer.h:定义类SharedBuffer表示共享内存。String16.h:定义表示双字节字符串的类String16String8.h:定义表示单字节字符串的类String8,并包含了从String16转换功能VectorImpl.h:定义表示向量的类VectorImplVector.h:定义继承VectorImpl的类模版VectorSo

35、rtedVector.h:定义排序向量的模版SortedVectorKeyedVector.h:定义使用关键字的向量模板KeyedVectorthreads.h:定义线程相关的类,包括线程Thread、互斥量Mutex、条件变量Condition、读写锁ReadWriteLock等socket.h:定义套结字相关的类SocketTimers.h:定义时间相关的函数和定时器类DurationTimer。ZipEntry.h、ZipFileCRO.h、ZipFile.h、ZipFileRO.h、ZipUtils.h:与zip功能相关的类。Binder用于进程间的通讯(IPC),它的实现基础是运行与

36、kernel空间的binder驱动。2.2.3.7 Android的系统进程Android中几个重要系统进程为:/init/system/bin/servicemanager ,/system/bin/mediaserversystem_serverzygote前面init分析章节提到init通过解析init.rc,启动对应的服务程序。servicemanager,zygote和mediaserver都通过这种方式启动。system_server则是通过zygote孵化出来。这几个进程是Android系统运行的基础2.2.4 Android的连接Wifi(Wireless Fidelity),

37、是使用了IEEE的802.11协议的无线局域网(Wlan)技术。在android中Wifi包括kernel的支持和用户空间的程序和库两个部分。Wifi用户空间的程序和库:external/wpa_supplicant生成库:libwpaclient.so 生成守护进程:wpa_supplicantWifi管理库:hardware/libhardware_legacy/wifi/Android的WIFI系统的JNI的部分:frameworks/base/core/jni/android_net_wifi_Wifi.cppWIFI系统的的JAVA部分实现代码:frameworks/base/ser

38、vices/java/com/android/server/frameworks/base/wifi/java/android/net/wifi/Android的WiFi本地实现部分主要包括wpa_supplicant以及wpa_supplicant适配层。WPA是WiFi Protected Access的缩写,中文含义为“WiFi网络安全存取”。WPA是一种基于标准的可互操作的WLAN安全性增强解决方案,可大大增强现有以及未来无线局域网系统的数据保护和访问控制水平。wpa_supplicant适配层是通用的wpa_supplicant的封装,在Android中作为WIFI部分的硬件抽象层来

39、使用。wpa_supplicant适配层主要用于封装与wpa_supplicant守护进程的通信,以提供给Android框架使用。它实现了加载,控制和消息监控等功能。wpa_supplicant适配层的头文件如下所示:hardware/libhardware_legacy/include/hardware_legacy/wifi.hwpa_supplicant适配层是通用的wpa_supplicant的封装,在Android中作为WIFI部分的硬件抽象层来使用。wpa_supplicant适配层主要用于封装与wpa_supplicant守护进程的通信,以提供给Android框架使用。它实现了加

40、载,控制和消息监控等功能。wpa_supplicant适配层的头文件如下所示:hardware/libhardware_legacy/include/hardware_legacy/wifi.hAndroid的Settings应用程序对WiFi的使用,是典型的WiFi应用方式,也是用户可见的Android WiFi管理程序。这部分的实现代码在以下的目录中:packages/apps/Settings/src/com/android/settings/wifi/Settings里的WiFi部分是用户可见的设置界面,提供WiFi开关、扫描AP、连接/断开等基本功能。另外,通过实现WifiLayer

41、.Callback接口提供了一组回调函数,用以响应用户关心的WiFi状态的变化。2.3 ios系统平台技术2.3.1 iPhone SDK 苹果公司将大部分系统接口发布在框架这种特殊的数据包。一个框架就是一个目录,它包含一个动态共享库以及使用这个库所需的资源(例如头文件、图像以及帮助应用程序等)。如果要使用某个框架,则需要将其链接到应用程序工程,这一点和使用其他共享库相似。另外,您还需要告知开发工具何处可以找到框架头文件以及其他资源除了使用框架,苹果公司还通过标准共享库的形式来发布某些技术。 由于iOS以UNIX为基础,操作系统底层的许多技术都源自开源技术,这些技术的许多接口可以从标准库和接口

42、目录访问。2.3.1.1 Cocoa Touch 层Cocoa Touch层包含创建 iOS应用程序所需的关键框架。上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础。在开发应用程序的时候,请尽可能不要使用更底层的框架,尽可能使用该层的框架。2.3.1.2多任务尽管应用程序进入后台就会被挂起,但可以通过下述的技术让其在后台继续运行:应用程序可以请求一定的时间完成某些重要的任务。应用程序可以声明自身支持的某种服务需要获得定期后台执行时间。应用程序可以使用本地通告在指定时间向用户发通知。这种方式对于应用程序是否运行没有要求。不管应用程序是被挂起还是在后台运行,支持多任务不

43、需要付出额外的工作。但是在某些情况(例如内存不足)下,应用程序可能会被结束运行。因此,应用程序应该可以在任何时候退出。这就意味着许多在退出应用程序时需要执行的任务必须改为在应用程序切换到后台的时候执行。这就要求您在应用程序委托中实现一些新的方法以响应程序的状态切换。2.3.1.3数据保护和敏感用户数据打交道的应用程序可以使用设备内建加密功能(有些设备可能不提供内建加密功能)对数据进行保护。如果应用程序指定某个文件受保护,系统会以加密格式将该文件保存在磁盘。当设备锁住的时候,您的应用程序以及其他潜在的闯入者都不能访问该文件,而当用户解锁设备后,系统会生成一份密钥以便您的应用程序就访问该文件。如需

44、实现数据保护,应用程序应在待保护数据的创建和管理方式下一些功夫。它必须能够在数据创建之时保证其安全,而且需要适配设备上锁或未上锁造成的文件可访问性的变化。2.3.1.4苹果推送通知服务从设计角度看,让应用程序支持推送通知包含两个部分。首先,iOS应用程序需要请求系统向其发送通知,然后要合理配置应用程序委托使其可以对通知进行恰当处理。这些工作可以通过应用程序委托以及UIApplication对象合作完成。第二,您需要提供一个服务器端进程用于产生最初的通知。该进程运行在您自己的本地服务器,它和苹果推送通知服务协同工作以产生最初的通知。2.3.1.5本地通知iOS 4.0引入了本地通知。本地通知是对

45、已有推送通知的补充,通用程序可以通过它在本地生成通知,不再需要依赖外部服务器。当有重要的事件发生时,后台应用程序可以利用本地通知获得用户关注。举个例子,运行于后台的导航应用程序可以使用本地通知提醒用户要转弯。应用程序也可以安排在未来的某个时刻向用户发送本地通知,而且发送这些通知并不要求应用程序处于运行状态。本地通知的优点是它独立于您的应用程序。一旦某个通知被安排好后,系统会负责通知发送。而且在发送通知的时候,您的应用程序无需处于运行状态2.3.1.6手势识别器iOS 3.2引入了手势识别器。手势识别器是一个绑定到视图的对象,用于检测常见的手势类型。将手势识别器绑定到视图后,您可以告诉它某个手势

46、发生的时候执行何种动作。之后,手势识别器就可以对原始事件进行跟踪,根据系统定义的试探方式识别手势。在引入手势识别器前,如果要识别一个手势,您需要跟踪视图的原始触摸事件流,然后再使用复杂的试探方法来判断这些事件是否表示某种手势。现在,UIKit框架中包含一个UIGestureRecognizer类,它定义了所有手势识别器的基本行为。您可以使用自定义的手势识别器子类或者系统定义的某个子类处理下面这些标准手势: 拍击 (任意次数的拍击) 向里或向外捏 (用于缩放) 摇动或者拖拽 擦碰 (以任意方向) 旋转 (手指朝相反方向移动) 长按如需进一步了解您可以使用的手势识别器2.3.1.7文件共享支持应用

47、程序可以使用文件共享让用户访问程序的用户数据文件。文件共享允许应用程序通过iTunes向用户显露应用程序/Documents目录的内容。这样,用户就可以在iPad和桌面计算机来回移动文件。但是,该功能不允许应用程序和同一设备上的其他应用程序共享文件。如果希望在程序间共享文件,请使用剪贴板或者文档交互控制器对象。您可以通过如下步骤来让应用程序支持文件共享:1. 在应用程序的Info.plist文件中添加UIFileSharingEnabled键,并将键值设置为YES。2. 将您希望共享的文件放在应用程序的Documents目录。3. 一旦设备插入到用户计算机,iTunes 9.1就会在选中设备的Apps标签中显示一个File Sharing区域。4. 此后,用户就可以向该目录添加文件或者将文件移动到桌面计算机中。如果应用程序支持文件共享,当文件添加到Documents目录后,应用程序应该能够识别并做出适当响应。例如说,应用程序可以将新文件的内容显示界面上。请不

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号