ios设备

2024-10-27

ios设备(精选10篇)

ios设备 篇1

随着多旋翼无人机相关技术的成熟和功能扩展,无人机已不是封闭、单一的飞行工具,而是集成了飞行控制、云台控制、航拍摄像、无线图像传输、无线控制、在线路径规划等功能于一身,成为了飞行航拍平台。使用航拍无人机用于电力行业设备巡检是解决传统巡检任务效率低下、周期长、安全性差等问题的有效尝试。但是由于目前多旋翼无人机系统不是针对巡检场景设计的,使用无人机进行设备巡检往往操作繁琐、效率低下,无法取得预期巡检效果,阻碍了无人机在这些领域的应用发展。基于无人机控制软件开发工具包(Software Development Kit,SDK)构建适应航拍巡检任务要求的控制终端可以扩展无人机的控制方式,提高无人机自动化程度,使无人机成为航拍巡检系统。

本文在i OS设备及其开发环境下,提出了基于图像跟踪算法的无人机自主航拍巡检系统。在i OS的MVC(Model View Controller)开发模式下,使用DJI Mobile SDK提供的控制软件接口,构建i OS控制终端与无人机之间的通信链路,在Xcode开发环境下调用FFmpeg库并基于H.264标准对实时获取的无人机航拍视频解码,基于Open GL ES For i OS图像库进行视频显示,重点提出高效的改进STC跟踪算法实现对巡检目标的实时跟踪以获得目标在像平面的位置。根据目标成像位置与像平面中心的偏差,自动调整航拍云台方位偏航角和俯仰角,使目标时刻处于像平面中心[1],实现对巡检目标的自主航拍跟踪。

1 总体架构

文中使用的自主航拍系统客户端基于DJI于2015年5月推出的Mobile SDK APIs,该系列SDK开放了相机、云台、飞行姿态、地面站控制、电池、信号、航点信息等接口,因此本系统具备了改变无人机相机航拍参数、操控云台、获取飞行器飞行姿态以及航拍目标视频等功能。系统核心为两大模块,分别为飞行器云台控制模块和基于自适应尺度的STC目标跟踪算法[2,3]。总体功能框架如图1所示。

基本流程为:首先i OS设备通过USB通信接口与无人机控制器连接,机载无线图像传输系统将航拍相机原始YUV格式视频图像基于FFmpeg库实现H.264标准的压缩和传输[4],i OS设备由无人机控制器获取接收视频原始帧,并进行标准解码、显示、格式转换。在UIImageview对象下[5],调用了自适应尺度的STC跟踪器对Mat格式视频图像信息进行目标跟踪,获得跟踪目标的中心位置,根据该位置坐标和像平面中心的误差,云台动作控制模块生成云台角度调整参数并对云台进行角度调整,完成一帧的视频处理过程。

1.1 图像传输与显示模块

DJI Phantom3飞行器的航拍设备拍摄的视频分辨率为3 840×2 160,采用H.264标准进行视频编码,并通过无线图像传输系统进行无线传输。为完成对该编码视频的解码、显示、处理,在Xcode开发环境下,在链接库中添加FFmpeg的头文件和.a格式静态库文件[6],在Frameworks下,添加DJI Mobile SDK相关库,包括DJISDK.framework和libz.dylib。在视频解析、显示函数中定义基于H.264标准的视频接收、解码部分代码位于SDK中Video Frame Extractor.m和View Previewer.mm,视频的显示函数位于Movie GLView.m内。

通过调用Open GL库中GLView控件实现图像的渲染,使用接口函数_gl View render:_render YUVFrame[]完成对YUV格式视频帧的渲染。在实际渲染中由于i OS不支持直接渲染YUV颜色制式图像,视频解码后首先进行了由YUV到RGB颜色制式的转换。转换涉及公式如下

为实现图像处理算法对图像的调用,在View Previewer.mm增加了基于UIImage View控件,以上图像格式转换流程如图2所示。

1.2 图像处理算法

图像处理算法模块是实现自主航拍跟踪的核心,为了提高算法实时性和稳定性,系统基于Opencv For i OS实现STC跟踪算法,Opencv是一种包含了常见图像几何变换、滤波、分割、特征提取等操作的开源方案,具有较好的跨平台运行性能和优异的执行效率,在Xcode平台下进行C++/Object-C混合编程。

在Xcode的Building Phase Framework下添加Opencv2.framework,在View Previewer.mm头文件中添加Opencv相关头文件,创建基于UIImageview控件的跟踪视频显示,实现方法为创建UIImageview对象UI-Image*image,并通过调用CGRecmake()对image.frame属性进行设置。完成UIImageview的创立后,使用delegate方式实现对图像处理算法的调用,使用GCD(Grand Center Dispatch)dispatch_async方式完成对主线程的分配,方式如下:

对H.264标准视频解码、显示、处理需要进行高复杂度、多线程运算,对i OS应用程序、CPU负担极大,其中一个堵塞会引起视频卡顿甚至程序崩溃,这对i OS应用程序的多线程设计提出了较高要求。本系统使用i OS多核多线程特有的GCD任务并行执行线程池解决方案,该技术能够根据系统负载自动增减线程数量,并且实现方式简单,占用资源极少,有效避免了视频卡顿和线程拥堵。

Delegate切合i OS的MVC、单线继承编程思想,可以使主线程中对象更加规范化同时满足对多重场景的及时响应。在主线程中调用图像处理算法前,将UIImage格式图片转换为Mat格式以适应Opencv中特殊制式的图像处理操作,调用方式为:

转换完成后,调用process Image:mat Image完成图像跟踪算法,当外部再次触发设置的delegate则结束图像处理,将图像转换为UIImage进行显示,完成主线程任务。

1.3 云台控制接口

在Gimbal.m文件中定义了云台方位偏航角和俯仰角控制函数接口,其实现函数分别为:

分别用于设置方位偏航角度向前、向后,俯仰角度向上、向下。以俯仰角度向上调整为例,其具体实现方式如下:

首先在以上函数内进行云台角度调整结构体参数设置DJIGimbalRotation pitch={YES,15,Relative Angle,Rotation Forward};

调用set Gimbal Pitch完成角度设定命令的发送setGimbal Pitch:pitch Roll:roll Yaw:yaw withResult:nil。

2 自适应尺度的STC跟踪器的实现

图像跟踪算法是自主航拍系统实现的核心任务,要求算法具备良好的实时性、稳定性,同时能以较高成功率完成对目标的跟踪。STC跟踪器是由Zhang等于2014年提出的基于贝叶斯框架下的高效目标跟踪算法,与目前常用的Meanshift、尺度不变特征等跟踪算法相比,在执行效率、抗遮挡能力、对目标尺度变化的适应性等方面均有显著优势[7]。

2.1 STC算法原理

在STC算法执行中,当前帧目标中心位置设为x*,上下文特征定义为集合Xc

其中:I(z)定义了该点的图像灰度;Ωc(x*)是以x*为中心的局部邻域。当前帧跟踪位置x相对于跟踪目标存在的概率可表示为c(x)=P(x|o),o为跟踪目标。根据概率公式有

显然对于当前帧上下文区域内任意位置x其置信图由两部分组成,P(x|c(z),o)为跟踪区域内具备上下文特征的各点相对跟踪目标的存在概率,P(c(z)|o)为上下文先验概率,即跟踪目标出现在上下文局部区域的先验概率。

根据当前帧与前一帧相关性可知,距前一帧中目标所在位置较近的点在当前帧中属于目标区域的可能性越大,并且其可能在一定范围内,满足距离目标中心位置越近其存在可能性越大,一般认为该分布满足高斯分布,在STC跟踪器中,使用了简化的高斯分布,并将置信图函数表示为

其中:表示卷积;;a为归一化参数,作用是使P(c(z)|o)∈[0,1],σ为尺度参数,I(z)为z点灰度值。在式(4)中可先进行快速傅里叶变换再将对应像素相乘,所以式(4)可转化为

其中:F代表快速傅里叶变换;⊙表示像素乘积。

STC跟踪器将图像跟踪问题转化为非参数估计问题,并通过FFT求解置信图极值获取新一帧图像跟踪目标位置。

2.2 自适应尺度STC算法设计

根据式(5)可知置信度与某像素点的二维卷积有关,对式(4)做适当改动。设上下文区域集合Xc={c(z)=(I(z),z)|z∈Ωc(x*)}中某像素点为z(x,y),记

式中:K(z)=exp(-(x2+y2))/2σ2,为二维高斯分布,

分别为z(x,y)在图像水平和垂直方向上的一阶偏导数,则

为文献[8]提出Harris角点协方差矩阵。

根据式(7)中Harris角点和STC跟踪器在目标判别方法上的相似性,本文提出使用Harris角点表征STC算法中的特征分布情况,并根据包含跟踪目标特征角点最多的凸包确定初始化目标的尺度,通过角点分布确定跟踪中心点位置。在图形学中,常用凸包表示可以将所有具备特征的点集包围的凸多边形。采用Graham扫描法获取包围风机角点的凸包。

在实时巡检视频中为实现在线逐帧更新STC尺度,将尺度算法更新如下

1)跟踪窗尺寸、尺度参数初始化

其中:S(Ω(h(xi)))为获得的目标特征聚类角点多边形的面积;S0为初始化跟踪区域面积;η取1.5~2.5之间较为合适;k文中设定为1/S(Ω(h(xi)))。

2)在线更新尺度参数。其中引入尺度参数变化率vσ用于表征尺度变化速度,如尺度变化超过阈值,则此时跟踪器跟踪效果较差,需重新执行步骤1),设置跟踪窗面积和尺度参数,未超过阈值情况下尺度参数在线更新方法如下

式中:s't为相邻两帧图像尺度变化的预测参数,为避免因噪声造成尺度变化过于敏感,在st+1计算中使用惯性滤波。

3 云台角度调整算法

设当前帧像平面内目标中心坐标为(ucurrent,vcurrent),像平面中心坐标为(ucenter,vcenter),则像平面内水平和竖直方向目标需要移动的像素分别为

需要将像平面的移动距离转化为云台在方位偏航角和俯仰角的转动角度,建立基于小孔成像模型的相机成像数学模型,如图3所示。

根据相机的视场计算公式

其中:W和H分别是拍摄设备像平面图像水平和竖直方向的像素值大小,f为拍摄设备镜头焦距。根据式(11)得到目标偏移成像公式

其中:α和β分别为拍摄设备在水平和竖直方向上拍摄视角,根据式(12)有

式(13)说明了云台在俯仰和方位偏航方向上角度的调整值与当前帧目标中心位置与像平面中心位置的像素差之间的转换关系。目前航拍设备采用的拍摄设备拍摄视角94°,已达到广角镜头的标准。可以看出云台的转动对目标在像平面成像位置影响较大,因此实现对目标成像位置的实时调整非常重要。

4 实际调试与测试

图4展示了自主航拍系统客户端界面,界面中“Captrue”按钮用于启动对航拍视频的显示跟踪,“Record”则将实时保存接收、缓冲到的视频数据,“Image Pro”用于触发图像处理算法,滑动条用于手动控制云台俯仰角度上下调整。为了说明STC跟踪算法实际效果,图5为Meanshift、原始STC、改进STC跟踪算法在实际航拍目标跟踪过程中跟踪效果测试和对比。图中虚线跟踪窗为Meanshift算法,深色实线跟踪窗为原始STC算法,浅色实线跟踪窗为改进STC算法。航拍场景为无人机进行旋转以改变飞行方向,同时需要航拍系统继续跟踪目标,此时无人机旋转速度可达1.5πrad/s,对跟踪算法执行效率和稳定性要求极高。由于初始帧可以正面拍摄到风机,因此分机形状较为分散,改进STC跟踪器的初始化跟踪窗口面积比原始算法要大,与原始STC跟踪器在旋转中后期丢失目标相比,改进的STC算法可以实现目标完整的跟踪,且跟踪误差趋于平稳。Meanshift算法误差开始较小,但随着拍摄角度和距离发生变化,造成目标颜色特征变化,Meanshift算法跟踪误差无法趋于稳定,而STC跟踪器和改进STC跟踪器对于目标的形变和形态变化不敏感,可以稳健跟踪。

定义跟踪误差计算方式为

式中:xi*和yi*为跟踪算法跟踪窗中心;xo和yo为跟踪目标实际形状质心。若跟踪误差大于跟踪窗较长边长则视为跟踪失败,则3种算法跟踪成功率分别为8.3%,16.7%,91.7%。

5 结束语

本文搭建了基于DJI Mobile SDK的无人机自主跟踪航拍云台控制终端,研究了基于STC框架的适应实际电力行业航拍巡检的目标跟踪算法。在i OS开发环境下采用Open GL ES对视频进行渲染、显示,采用GCD方式避免了视频播放、图像处理、云台控制等线程拥堵,在Opencv for i OS基础上,实现了自适应尺度的STC跟踪算法,有效解决了航拍目标在遮挡、尺度变化、航拍无人机旋转、目标重叠等情况下跟踪效果下降的问题,实现了航拍巡检系统在不同场景下对目标的跟踪。

参考文献

[1]MIGUEL A,PASCUAL C,CAROL M,et al.A pan-tilt camera fuzzy vision controller on an unmanned aerial vehicle[C]//Proc.IEEE/RSJ International Conference on Intelligent Robots and Systems.[S.l.]:IEEE,2009:2879-2884.

[2]ZHANG K H,ZHANG L,YANG M H.A Fast compressive tracking[J].IEEE transactions on pattern analysis and machine intelligence,2014,36(10):2002-2015.

[3]ZHANG K H,ZHANG L,LIU Q S,et al.Fast visual tracking via dense spatio-temporal context learning[C]//Proc.ECCV 2014.Czech Republic:Springer,2014:127-141.

[4]赵红超,李琦,韩瑾,等.基于Andriod平台的实时监控系统客户端设计[J].电视技术,2015,39(20):111-115.

[5]杨扬.i OS系统上基于P2P的视频直播功能的设计与实现[D].北京:北京邮电大学,2014.

[6]杨正洪,苏伟基.i Phone应用程序设计开发[M].北京:清华大学出版社,2007.

[7]徐建强,陆耀.一种基于加权时空上下文的鲁棒视觉跟踪算法[J].自动化学报,2015,41(9):1901-1911.

[8]HARRIS C,STEPHENS M.A combined corner and edge detector[C]//Proc.the 4th Alvey Vision Conference.[S.l.]:IEEE,1988:52-59.

ios设备 篇2

腾讯科技讯 据外媒报道,根据移动设备诊断和商业情报领导者Blancco公司近日发布的第三季度报告,苹果iOS系统的全球故障率上升到62%,该系统被认为是第三季度性能最差的移动操作系统。有趣的是,该公司的报告亦称,苹果iOS的故障率明显高于Android,后者的故障率只有47%。Blancco是在测试和分析了从全球数百万设备收集的数据之后得出该结论的。

这份报告的标题是“20第三季度移动设备性能和健康趋势报告”,发布于11月中旬。全球的媒体,无论是线上还是线下媒体,都争相恐后抢先报道,但它们都没有检查这份报告的数据的真实性。

当下,媒体的盲目性已经深入骨髓,记者和编辑轻信任何摆在他们面前的东西,一切都向着广告商的钱看。在内容筛查上的疏忽导致上百家出版商――包括Android Authority、Android Headlines、BGR、PhoneArena、PR Newswire、Digit和雅虎等知名品牌――报道了错误的信息,指责苹果iOS系统存在高故障率。

令人怀疑的iOS和Android故障率报告

Blancco在上周发布的报告中着重指出,iOS系统在年第三季度的故障率明显上升。根据这份报告,iOS设备的故障率从2016年第二季度的58%上升到第三季度的62%,增长4%。该公司直言不讳地指出,iPhone和iPad发生故障的几率几乎是Android设备的两倍。

乍一看,这些数据是基于数百万部设备发送的.故障报告得出的,没有任何问题。但在对这份报告中的数字逐条进行分析之后,报告的真实性就很可疑了。

该报告用图表列出了第三季度故障率最高的10款iOS设备。每款设备的故障率是按占iOS设备总故障率(62%)的百分比计算的。如果将这10款设备的故障率全部相加,得出结果是50%。因此,其余的iOS设备的故障率加起来必须是剩下的50%。这是不可能的,因为除了这10款设备之外,市场上只有4-5款iOS设备在售。这些设备的故障率都没有大于1%。

这还不是这份报告唯一一处让人感到怀疑的调查结果。

我们还注意到,“2016年第三季度故障率最高的10款iOS设备”和“2016年第三季度故障率最高的10款Android设备”的故障率数字也存在问题。

看下面的图片,你发现有什么可疑的地方了吗?如果没有,你再横向比较一下两边设备的故障率。数字是完全一样的!

所有这些让我们深深怀疑这份报告的调查结果。

哪个操作系统的故障率最高――iOS还是Android?

是iOS的整体故障率错了吗?如果没有,那么我们转到下一个问题!

Android的整体故障率是否有错误?

前10款iOS设备的故障率是否有错误? 如果没有,我们立即接着问――

前10款Android设备的故障率是否有错误?

原先故障率为58%,增长4%之后,结果是62%?(数学是体育老师教的!)

互联网信息来源:福兮祸兮?

我们一直在说“互联网拥有所有的信息和资源”。确实是这样,没有什么是在互联网上找不到的。我们只需点一下鼠标,就能获得所需的信息。然而,网上的信息都准确可靠吗?

互联网用户需要且理应获得逻辑正确、数据驱动的丰富内容,以做出正确的决定。这意味着我们迫切需要内容撰写者和分析师。可悲的是,任何掌握良好英语写作技能的人都会考虑成为内容作者。另一方面,为了发布更

iOS设备故障率明显比Android高?Blancco报告太不靠谱多能吸引读者的内容,媒体公司和博客网站都在鼓动内容作者成为分析师。尽管他们在内容中添加了大量数据,但这种双重角色的结果是,他们的文章经常充斥着大量不正确的数据,误导性内容,甚至完全错误的信息。

出版商们都急于转发网上出现的任何信息。它们太注重抢先于同行发布新闻,以致于忽视了这样做可能造成的深刻危害。向数百万读者提供错误信息只是整个互联网社区垮掉的开端。

无需越狱用iOS设备双环上网 篇3

你听说过“双环”上网方法吗?“双环”上网方法就是利用 iOS 自带的功能,连接到支持网络共享的蓝牙设备上网。不仅无需越狱,而且耗电量也比iBluever低,速度和iBluever相当。但是“双环”上网法需要机器支持,之前只有诺基亚S40,S60v3和一些索尼爱立信的非智能手机能享受这个福利,现在Android 2.3以上的手机也能享受了,并且只需要很简单的设置。

设置方法如下:首先,找到“网络共享和便携式热点”选项(部分机器可能是其他名字,找带网络共享的选项即可),应该看见“蓝牙共享网络”这个选项了吧?没错,勾选该选项即可(如图1)。

然后转到iOS端,打开蓝牙,找到你的Android手机蓝牙名称,点击连接(如果找不到,检查蓝牙设置,看看是不是设置了不可被发现)。接着点击配对,如果配对成功的话,你应该会看到一个“双环”出现在iPod/iPad字样的旁边(如图2),这代表你成功了!

ios设备 篇4

一、利用Q+桌面实现ios设备无线互通

(1) 存在问题。对于利用Q+桌面实现ios设备无线互通来说, 其中一个很重要的问题就是兼容问题。对于兼容问题来说, 在实际的操作中, 有一定的“窍门”可循, 简单来说, Q+桌面并没有想象当中那么复杂, 为了能够良好的实现与ios设备无线互通, 可以借助一些其他的介质或者软件, 这样就可以避免兼容问题的发生, 虽然会影响到一定的效果, 但可以暂时满足广大用户的需求, 为科研人员争取一定的研究时间, 为将来实现更好的无线互通打下坚实的基础。

(2) 广泛的调研。广泛的调研, 就是为了良好的把握随机性, 将这种应用的各种因素良好的进行把握, 这样才能更好的实现无线互通, 从而为用户服务。

二、实例分析

首先用户需要启动Q+桌面, 随后打开“连接手机”, 一定要注意, 必须安装i Tunes系统, 才会显示这个应用。之后就可以点击“立即体验”。随后Q+将自动开启服务, 值得注意的是, 对话框右侧的红色服务, 如图1。之后的操作要简单一些, 将i Phone接入与桌面计算机相同的局域网, 也就是IP地质必须在同一网段, 播放照片, 在这个时候, 用户会看到设备的列表, 如图2。我们自然是选择“Q+-DIME-SION-9100”服务。很快的, 用户就会发现, 桌面计算机会与ios设备同步现实正在播放的照片, 用户甚至还可将这些照片进行保存, 按照同样的步骤进行, 如图3, 选择“Q+-DIMESION-9100”服务之后, 我们可以让ios设备的音乐在桌面计算机进行同步播放, 这是一种非常好的体验。

(1) 自主研究。在现阶段的ios设备中, 很多的应用都非常的大众化, 并不是ios设备所独有的, 而且对于我国现阶段的研究来说, 无论是Q+桌面, 还是ios设备, 都不是我国的专利技术, 鉴于这样的情况, 需要加强自主研究, 我国在无线互通方面的用户是相当广泛的, 鉴于这样的情况, 在自主研究方面, 需要进行一定的加强, 利用广泛的用户基础, 进行大量的调研, 同时利用Q+桌面和ios设备的基础进行研究, 从而研究出属于我国的专利技术, 这样对于我国的广大用户来说, 才是最有利的。在现阶段的发展中, 自主研究才是良策。

(2) 减少中间环节。在上文中, 我们提到了为了能够让用户较快的体验无线互通, 可以多下载一些软件, 利用这些软件作为一些介质来促进Q+桌面实现ios设备实现无线互通, 这样的方法只能改变一时的情况, 没有办法永久的使用, 因此, 必须减少中间环节, 将Q+桌面和ios设备不断的进行深化, 从而使二者良好的进行兼容, 只有这样才能给用户更加极致的体验。

总结:在现阶段的发展中, 广大的用户对ios设备的要求在不断的提高, 尤其是在无线互通方面, 每一个用户的要求都不一样。鉴于这样的情况, 利用Q+桌面实现ios设备无线互通是一种较好的方式, 但现阶段的成果还需要进行一定的深化, 减少中间环节, 加强自主研究, 将这种应用提高到一个新的层次, 只有这样才能给用户更好的体验, 促进市场的发展。

摘要:在现阶段的发展中, ios设备的应用想当广泛, 对于人们来说, ios设备不但操作简单, 而且方面。对于现今的社会发展来说, 功能的齐全是首要的选择目标, 在ios设备中, 无线互通就是人们选择的一个重要标准。对于现阶段的发展来说, 移动设备已经到了一个非常先进的阶段, 无线互通也有了新的标准, 就是所谓的Q+桌面。

关键词:桌面,ios设备,无线互通

参考文献

[1]周木高.基于i OS的动态几何研究与实现[D].电子科技大学, 2012 (01) .

[2]李柏岚.I OS平台的软件安全性分析[D].上海交通大学, 2011 (01) .

ios设备 篇5

这两天适配iOS6,在UITabBar隐藏后原区域不响应点击事件的问题上裹足不前,异常上火(不用心,就会这样)!

对于iOS7而言,隐藏UITabBar很容易:

self.tabBarController.tabBar.hidden = YES;

然后把self.view的高度加上个tabBar的高度(默认高度49)就ok了,可谓不费吹灰之力!iOS7以下就不行了!

这里有一段代码,iOS6及以上系统都可以用,我就直接粘过来了

-(void)makeTabBarHidden:(BOOL)hide { // Custom code to hide TabBar

if ( [tabBarController.view.subviews count] < 2 ) { return;

}

UIView *contentView; if ( [[tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] ) {

contentView = [tabBarController.view.subviews objectAtIndex:1]; } else {

contentView = [tabBarController.view.subviews objectAtIndex:0]; }

if (hide) {

contentView.frame. = tabBarController.view.bounds; } else {

contentView.frame. = CGRectMake(tabBarController.view.bounds.origin.x, tabBarController.view.bounds.origin.y,

tabBarController.view.bounds.size.width, tabBarController.view.bounds.size.height -

tabBarController.tabBar.frame.size.height); }

tabBarController.tabBar.hidden = hide;

}

经检验,可靠可用,再也不用担心iOS6下UITabBar隐藏后该区域还死活不能响应点击事件的问题了!

第一眼看到这段代码时,我是视而不见啊,竟然没去试试,事后,这也令我异常恼火(我想我应该活该)!

我同事试了一下,奏效!悔不当初 .多看一眼 .......

我分析一下这个代码:

在iOS6上,UITabBar位于一个viewController中self.view的上面,你要是用

self.tabBarController.tabBar.hidden = YES;

然后你这样

[self.tabBarController setTabBarItem:nil];

甚至你再这样

[self.tabBarController.tabBar removeFromSuperView];

最后你会发现,tabBar所占的区域还是不能响应点击事件,在iOS6上它也就占着茅坑不拉了,你真拿它没招...

所以用上面的代码吧!

不说啥,我只是对这种iOS6上tabBar占着茅坑不拉的行为很愤慨!

说点实用的

话说我这边是写的是一个继承自UITabBarController的一个子类,在viewDidLoad方法中我发现,self.view一开始是有两个subview的,一个就是tabBar,这个货占着self.view下方49的高度,另一个就是contentView(我姑且这么称呼,具体叫啥名估计得问xcode它父亲了).iOS7以下系统中当你把tabBar拿掉后,contentView是不会自动把自己的高度延展的,所以就你就得手动去帮它把tabBar的高度加上去,

如何iOS6和iOS7下隐藏UITabBar

而iOS7及以上的系统,苹果的开发人员应该帮我们把这活给干了,所以我们隐藏就行了。

ios设备 篇6

作为闪迪欢欣i享家族的第二代成员,新版本在提供16GB、32GB、64GB、128GB四个容量子型号的基础上进行了大幅“瘦身”,其体积只有上代产品的1/3,5.4g的重量“轻若无物”。当然,瘦身也是有代价的,具体来说就是新欢欣i享闪存盘取消了前辈内置的锂电池设计,在工作时需要消耗iPhone/iPad的电量,对续航时间有着些许影响。

此外,新欢欣i享除了标配Lightning接口外,还将另外一个标准USB接口从USB2.0升级到了USB3.0,实测顺序读取和写入速度分别为93MB/s和48MB/s,在闪存盘类型的产品中属于较高的水准,可极大地减少闪存盘与PC进行数据交互时的等待时间。

 带着手机套也不影响闪存盘使用

在外型设计上,新欢欣i享弯曲的橡胶部分略带弹性,哪怕你的iPhone/iPad配有手机套也能直接使用。同时,它与iPhone接驳时刚好形成一个圆环,可以轻松将无名指插入其中,像钥匙链一样将iPhone固定在手指上方便携带(不要甩哦)。

当新欢欣i享与iOS设备首次“接触”时会弹出安装APP的提示,按照界面提示安装并运行“iXpand Flash Drive”后,就能直接通过iPhone/iPad的屏幕对闪存盘进行数据管理。这个APP也可以扮演播放器的角色,直接播放闪存盘里WMV、AVI、MKV、MP4和MOV格式的视频文件。

新欢欣i享通过了苹果的MFI认证,它对iOS设备中的相册、联系人等程序有着完整的读取/写入权限。因此,通过APP新欢欣i享可以轻松将iOS设备中的照片、联系人备份到闪存盘中,或是将闪存盘中的照片和联系人还原到iOS设备里。此外,APP还能对照片或其他格式的文件进行加密,哪怕我们将加密的文件拷贝到PC端也无法直接查看,需要安装闪迪保险箱.exe并输入对应的密码后才能查看被加密的文件,很好地解决了跨平台的数据安全问题。

 橡胶部分可以扮演钥匙链的角色

编辑点评

iOS5带来人机对话 篇7

i Cloud可以存放照片、文档等内容, 可以通过无线网络将这些内容送到用户所有的设备上, 如此用户就可以随时在i Phone、i Pad、i Pod、Mac上使用i OS 5设备上的内容。i Cloud可以对邮件、通讯录、日历、备忘录等内容进行云备份, 该功能可以立即备份。在i OS设备插入电源、被锁定且接入WIFI时, 就会自动备份上述等诸多内容到i Cloud空间中。

i OS 5设备之间可以通过WIFI、3G网络, 在短信中发送文字、照片、视频等内容, 如此用户就可以发送免费短信了。

i Pad新增了信息功能, 其界面和i Phone此前的短信功能界面一样, 该功能可以和多位用户发送短信, 继而实现群聊, 而且每个人回复的内容大家都可以看到。

补漏行动:应对iOS安全问题 篇8

i OS,固若金汤?

i O S系统一直以来都是苹果公司引以为傲的产品,苹果公司将硬件产品与软件紧密结合的做法也一向被人们认为是安全的典范。作为一款闭环的操作系统, i OS在与Android的长期竞争中, 其安全性能始终为人所称赞。也正是因为i OS系统的安全性能优秀,使得苹果移动智能设备的用户往往会忽视掉可能存在的安全隐患,从而放松了在使用过程中的安全保护措施。

就在去年i Phone6上市前, 苹果公司发生了i Cloud用户信息大量泄漏事件。一时之间,以安全著称的i OS系统成为了众矢之的而受到用户的质疑。转眼来到今年9月,就在苹果公司发布完最新款i Phone和最新i OS 9.0系统的数天后,爆发出了针对i OS系统内应用的Xcode Ghost恶意代码事件。 多款手机应用感染Xcode Ghost病毒,当感染病毒的应用被上传到App Store并被用户下载安装之后,它们会偷偷上传软件包名、 应用名、系统版本、语言、国家等基本信息, 甚至可能还会在手机上弹出钓鱼网站页面,可能骗取i Cloud账号密码,或者其它关键信息。向来以封闭安全著称的苹果i OS系统,此次终于因为Xcode Ghost事件栽了一个大跟头。在这之前,苹果的App Store中只发现过5款恶意应用,但这次感染病毒的应用数量的规模显然比以往发现的加起来还要多几十倍。究竟是哪方面出了问题,才导致了这次的Xcode Ghost事件的大爆发?

此次事件的根源在于苹果系统程序编写软件Xcode被黑客植入了恶意代码,用户使用该恶意Xcode编写的程序时,会泄露手机隐私信息。美国《纽约时报》援引苹果公司发言人的话说,某个 “不可信任的来源”发布了伪造的开发者软件。在此之前,多家网络安全公司发布报告称,一款名为Xcode Ghost的病毒程序已被嵌入App Store中数百款合法应用当中。这也是首次大规模的病毒应用绕过了苹果严格的应用审批程序。Xcode是苹果公司官方出品的开发工具,运行在操作系统Mac OS X系统上,是目前开发Mac OS和i OS应用程序的最普遍的方式, 从某种意义上说,它是苹果引以为傲的生态系统的根基。因此, 此次事件的爆发,已经牵扯出了众多可能被感染的应用程序。其中不乏那些在下载排行榜中备受消费者欢迎的应用程序。

亡羊补牢

针对这一突发事件, 苹果公司也迅速做出了反映,苹果公司发言人Christine Monaghan表示: “ 我们已经把那些由假冒软件开发出的应用清除出了App Store。我们正在同开发者合作, 确保他们使用正版Xcode重新开发应用。” 苹果公司全球市场营销高级副总裁Phil Schiller在接受媒体采访时表示,由于Xcode下载服务器在国外,中国内地的开发者从官方渠道下载Xcode并不容易。在美国下载Xcode只需要25分钟,在中国下载可能需要花费3倍的时间。因此中国部分开发者不得不通过一些非官方渠道 下载 , 这导致部 分开发者 下载了含有Xcode Ghost病毒的山寨版Xcode。为了从根本上杜绝Xcode Ghost事件再次发生, 苹果公司将把Xcode开发工具的下载源放到中国服务器上。同时Phil Schiller接受媒体采访时还表示,苹果公司一直建议开发者们用安全的开发工具来开发程序;并且有Gatekeeper及相关签名验证机制防护。但这次山寨应用的进入、以及Gatekeeper被关闭,几个因素放在一切,才造成了Xcode Ghost事件。Palo Alto N e t w o r k s公司的高层管理人员Ryan Olson对于此次事件表示, 此次事件的性质相当严重,因为它表明如果黑客攻击了应用开发者编写合法应用的设备,那么苹果公司的App Store的安全性将大打折扣。

一边改进,一边进步

其实如今,除了植入病毒, 用户隐私安全面临的挑战还会来自于钓鱼网站、 诈骗短信和电话,甚至还有在某些社交软件中通过聊天等方式套取用户隐私信息等等。腾讯安全团队称:“经过这两年若干次攻击手法的洗礼后,我们更加清醒地意识到,黑客从业者早已不是单兵作战的脚本小子,而是能力全面的黑客团队。总结来看,移动互联网安全之路任重道远。当然,这里的危机也是安全行业的机遇。”

虽然突如其来的Xcode Ghost病毒事件使外界对于苹果公司的安全管理产生了质疑,但也不能就因为此次事件而全盘否定了苹果公司在改善产品安全性能方面所做出的努力。Phil Schiller就表示说: “没有完美的系统,但是苹果一直在进步。每次我们经历一些,就能继续进步,这个事件也是如此。这次我们学到了很多。”

针对全新推出的i OS 9.0操作系统,苹果公司对其进行了多项功能的丰富。在众多i OS 9.0耀眼功能的光芒下,有一项针对手机安全问题而进行的改进往往会被用户所忽视,那就是苹果设备的解锁密码将会从之前的4位数密码升级为6位数密码。虽然密码的位数从4位升至6位这件事看上去并不新奇,但这一举措却能给苹果设备的用户带来更加安全的使用环境。在4位数密码的环境下,密码组合只有1万种可能,对于使用暴力破解密码的黑客来说,并不需要花费太多时间就能完成1万种密码组合的尝试,从而获得正确的密码。这次6位数密码的使用, 就使得密码的组合数量达到前所未有的100万种,100万种与1万种的差距可想而知。此次密码的升级是针对所有配置Touch ID以及运行i OS系统最新版本的苹果设备。 解锁密码仍然只是可选设定,需要的用户可以凭借6位数创造更为复杂的数字密码。如果连续10次未能正确输入密码,设备将自动抹除数据。从而尽可能的帮助用户避免设备中的个人信息的泄露。IBM安全部门副总裁Caleb Barlow在接受媒体采访时,就苹果升级密码位数一事表达了自己的观点:“这是一个大事件,平心而论,苹果公司可谓是安全领域的领潮者。现在是时候一步一个脚印地推进信息安全的升级了,无论是针对个人设备的安全升级还是企业用户登录信息的安全升级。”移动智能设备的安全问题,已经不仅仅单单困扰着个人用户,因为信息安全威胁也已经成为信息时代中企业用户所面临的"顽疾"之一。企业用户对网络的需求已经成为不法分子有利可图的攻击借口。根据普华永道的调查显示,在其跟踪调查的中型公司中,在2014年遭受到的网络攻击达到了4227次,较2013年的受攻击次数上升了1646次, 增速将近达到了64%。每一次的数据泄露事件,给跟踪调查中的美国公司平均带来了大约50万美元的经济损失。Caleb Barlow表示,根据IBM的调查结果显示, 大约有90%的公司对于移动智能设备的密码要求只是简单的数字密码,并且其中80%的公司更是只要求用4位数的简单密码。这就意味着,黑客只需要花费不到20分钟的时间就可以破解多数公司的密码。此次苹果公司将自家设备的解锁密码升级到6位数, 也从侧面也映证了信息安全问题的严重性。

防不胜防

苹果公司在此次针对设备解锁密码的升级之前,早在i Phone5 s发布的时候,就已经开始采用指纹识别技术来补充数字密码在安全性上的不足。指纹识别技术已经被国内外许多智能硬件制造商所采用,用来辅助用户进行设备的解锁或是应用程序内的支付功能。相比较数字或文字密码,指纹密码应当具有更高的安全性,毕竟每一个人的指纹都是各不相同的。也正是由于指纹的唯一性,它也成为了不能进行变换的一种密码。想象一下,如果数字密码丢失了, 用户可以选择立马更换密码组合。 但如果丢失的是指纹密码,又该如何修改?美国人事管理局日前就承认了一起针对联邦政府雇员的指纹数据泄露事件。在此事件中,涉及的联邦雇员人数达到了560万,其中不乏掌握保密情报的情报人员和军事人员。一旦指纹信息被破解并利用,其所带来的损失将是不可估量的。

透过此次爆发在i OS系统的Xcode Ghost病毒事件和针对美国政府部门的大规模信息泄漏事件可以看出,无论是封闭的操作系统,还是常用的数字、 文字密码或是先进的生物密码,都不能保证用户信息百分之百的安全。只要信息存在价值,就会不断涌现出新的技术手段来试图完成信息的窃取行为。生活在信息时代,信息安全已经成为了一个我们不可回避的话题。

比较IOS探讨安卓系统的优势 篇9

安卓系统的发展源于谷歌公司在收购安卓公司后对系统的研发, 系统的建立基础是Linux内核, 通过将操作系统与用户界面进行连接, 以系统平台与应用服务满足用户需求。安卓系统版本经历了从1.6到4.0的发展历程, 在版本进步的同时, 安卓系统的功能也在逐渐完善, 包括系统界面的不断升级, 运行速度的飞速提高以及各项应用功能的性能优化等。安卓系统在发展中注重对用户体验及终端产品的开发, 通过对系统性能的完善以及功能设计的人性化, 使得安卓系统能够在实际应用中更为贴近生活, 安卓平台在系统基础上的建立也为用户的系统使用提供了广泛的软件资源, 通过系统与软件的有机结合, 增强系统的完备性和实用性。安卓系统在发展中不但注重对软件的开发, 也着力于增强系统硬件对综合性能, 处理器配置的提升以及手机外观的不断改良, 都使得系统在是市场发展中更具竞争力。

二.IOS操作系统分析

IOS系统的建立与开发比安卓系统提前。初代的系统设计虽然存在多方面的用户限制, 但优质的用户体验也为其赢得了一定的市场占有率, 在之后的发展中, IOS系统通过对自身应用的不断完善, 使得系统的功能应用能够更多的满足用户需求, 如在系统中引入复制剪贴功能, 这就为用户在建立备忘录时提供了更多便利。系统的发展在延续精细化设计理念的同时, 对移动网络及应用平台进行深层开发, App Store应用商店的创设, 为用户提供了更为广阔的应用平台, i Tunes音乐服务也满足了当代人们对高质量音乐的需求。IOS系统在发展的同时, 还注重对系统设备进行拓展, i Pod音乐播放器以及i Pad平板电脑的面世, 都为IOS系统的进一步发展开拓了市场。IOS系统的发展中, IOS4充分展现了系统性能的极大提升, 100余项最新系统功能的开发与硬件的时尚设计, 为系统赢得了更为广阔的市场占有率。当下IOS5系统实现了更多系统程序及应用的性能提升, 系统多种功能的进一步完善和应用终端的丰富, 使得IOS系统在市场竞争中具备了强大优势。

三.安卓系统的优势分析

安卓系统与IOS系统在发展中都实现了各自性能的飞跃, 更为舒适的用户界面, 更加流畅的系统运行和资源丰富的程序应用都决定了其在市场竞争中的主导地位, 伴随手机行业的发展, 安卓与IOS之间的竞争愈加激烈。就市场占有率分析, 当下安卓系统的市场发展优势相比于IOS系统更为明显, 具体优势分析如下:

3.1系源代码开放性

安卓系统是基于Linux内核下的操作系统, 不同于IOS, 安卓系统中的源代码具有良好的开放性, 能够通过用户实现代码编辑。安卓系统通过开放源代码, 为用户提供了自由的开发平台, 通过用户对系统源代码进行开发, 有效保证了用户持有系统的专一性, 使系统在使用中能够充分满足个人需求, 适合用户的使用习惯。

3.2应用资源丰富

安卓系统中安卓平台的建立丰富了系统的应用资源。安卓平台的建立, 有效实现了系统建设中第三方开发商的融入, 通过第三方开发商对应用程序加以开发, 使得系统在使用中能够满足用户的多方面需求。开发商提供程序的多元化使更多的应用程序融入到安卓系统中, 不仅对系统的运行加以完善, 还能为用户提供更多的应用资源。第三方开发商所开发应用程序的免费性也为安卓系统赢得了市场竞争优势, 更多的客户享受免费服务, 因而在系统的使用中选择安卓系统。

3.3用户界面可定制

用户在系统的使用中都会对用户界面提出不同需求, 安卓系统基于源代码的开放性和应用程序的多元化, 都使得用户在系统使用时, 能够根据自身爱好制定不同的用户界面风格。移动网络的开发也为安卓系统的桌面制定提供了丰富的资源, 用户能够通过网络连接获取更多桌面制定应用程序。IOS系统的封闭式环境, 使得用户桌面形式过于单一, 在用户对桌面进行修改时, 还应首先满足系统获取root权限的前提, 这也为用户界面的制定带来了诸多不便。

3.4 Flash技术优越性

在IOS系统的开发中, 由于对Flash技术的采取屏蔽, 使得多款基于Flash动画的应用程序无法在系统中正常运行, 这也造成了市场中普及的视频格式无法在系统中得以播放, 使得IOS系统更具封闭性。安卓系统实现了对Flash技术的有效开发, 基于Flash技术技术, 更多的应用程序在系统中得以应用, 普及的视频格式也在系统中得以正常播放, 因此, 与IOS系统相比, 安卓系统通过对Flash技术的研发, 不仅维护了用户使用Flash技术的权益, 也有效保持了Flash的普及性, 为安卓系统的发展进一步拓宽了市场。

3.5市场价格优势

从用户角度出发, 在对系统进行选择时, 价格是其中重要的考虑因素。对比于IOS系统, 安卓系统的市场价位更为廉价, 这就为安卓系统保障了一定程度的客户量。安卓系统的价位更能够顺应市场发展的经济水平, 更具平民化, 价位的低廉加之性能的优越, 使得用户在购买时更多倾向于安卓系统。

总结语:

安卓系统在与IOS系统的市场竞争中, 具有更为广阔的系统开发前景, 应用程序的普及也有效保证了其市场影响力, 伴随技术的革新和应用的普及, 安卓系统多方面的发展优势定会使得系统在发展中具有更为强大的生命力。

参考文献

基于iOS的图像动画制作 篇10

1 i OS软件的体系结构

按照从低到高的顺序,i OS的体系结构可以分为如下四层[1]:

Core OS:核心操作系统层。Core OS位于最底层i OS的许多技术都是基于Core OS的。在应用程序中,开发者虽然不会直接用到Core OS提供的功能,但是所引用的其他库很有可能会用到或者依赖于该层。开发者在处理安全问题或者与硬件进行沟通的时候,会直接用到Core OS的功能。

Core Services:核心服务层。Core Services由两个部分组成,核心服务库和基于核心服务的高级功能。

Media:媒体层。媒体层主要提供图像渲染、音频播放和视频播放的功能。

Cocoa Touch:可轻触层,也叫应用层。作为整个i OS的最顶层,这一层是最为核心的部分,负责屏幕上的多点触摸事件处理、文字输出、图片网页显示、相机或文件的存取以及加速感应等。Cocoa Touch由多个框架组成,主要有:UIKit、Map Kit、Game Kit、Message UI、Address Book UI、Event Kit UI等。

2 应用程序运行周期

UIKit的功能有:用户界面管理、事件管理以及整个应用程序的执行管理。应用程序从启动到退出的过程中,UIKit框架负责管理大部分关键的基础设施。i Phone应用程序不断地从系统接收事件并必须做出响应。接收事件是UIApplication对象的工作,响应事件则需要开发者编写定制代码进行处理。

当创建应用程序时,UIKit负责通过函数main和UIApplication Main创建应用程序对象[2]。UIApplication是i Phone应用程序的开始并且负责初始化并显示UIWindow,并负责加载应用程序的第一个UIView到UIWindow窗体中。UIApplication的另一个任务是帮助管理应用程序的生命周期,而UIApplication通过一个名字为UIApplication Delegate的代理类来履行这个任务。尽管UIApplication会负责接收事件,而UIApplication Delegate则决定应用程序如何去响应这些事件,UIApplication Delegate可以处理的事件包括应用程序的生命周期事件(比如程序启动和关闭)、系统事件(比如来电、记事项警告)。

通常对于UIApplication是没必要修改它的,只需要知道UIApplication接收系统事件即可,而如何编写代码来处理这些系统事件则是程序员的工作。处理系统事件需要编写一个继承自UIApplication Delegate接口的类,而UIApplication Delegate接口提供生命周期函数来处理应用程序以及应用程序的系统事件。

3 MVC设计

每个MVC应用程序都包含Model、View和Controller三部分。它是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式[3],至今已广泛应用于用户交互应用程序中。在MVC框架下,应用程序的输入、处理和输出被强制性地按照Model、View、Controller的方式进行分离,应用程序也被相应地分为模型层、视图层和控制层。使用MVC的目的是将M(模型)和V(视图)的实现代码分离,从而使同一个程序可以使用不同的表现形式。

在i Phone程序开发中,所有的控件、窗口等都继承自UIView,对应MVC中的V。UIView及其子类主要负责UI的实现,而UIV-iew所产生的事件都可以采用委托的方式,交给UIView Controller实现。对于不同的UIView,有相应的UIView Controller,对应MVC中的C。例如在i OS上常用的UITable View,它所对应的Controller就是UITable View Controller。至于MVC中的M,就需要用户根据自己的需求来实现了。

i OS的sdk中已经为我们提供了许多视图组件:例如:UIView,UIView Controller。这也方便开发者进行开发。同时,也对数据模型中可能使用到的一些组件进行了封装:数据库、Core Dta等,这有利于开发者迅速的建立一个基于MVC设计模式的程序[4]。

4 基于ios的图像动画制作

如图1所示,在Image Hop实例中,将使用一系列图像和一个图像视图实例创建一个循环动画;还将使用一个滑块让用户能够设置动画的播放速度。动画的内容是一个跳跃的小兔子。用户控制它每秒跳多少次。跳跃速度通过滑块设置,并显示在一个标签中;步进控件提供了另一种以特定的步长调整速度的途径。用户还可以使用按钮开始或停止播放动画。

4.1 创建项目

首先启动Xcode,并选择菜单File>New>New Project。

选择项目类型i OS Application,在右边的模板列表中找到并选择Single View Application选项,再单击Choose按钮,输入项目名Image Hop,确保选择了复选框Use Automatic Reference Counting和Use Storyboard,并选择了正确的设备,再单击Next按钮。最后,选择存储文件的位置并单击Create按钮创建该项目。

1)添加动画资源。这个项目使用了20帧存储为PNG文件的动画,这些动画帧包含在项目文件夹Image Hop的文件夹Images中。

2)规划变量和连接。在这个应用程序中,需要为多个对象提供输出口和操作。

4.2 设计界面

1)添加图像视图。创建图像视图,设置默认图像,复制图像视图。

2)添加滑块。设置滑块的取值范围。

3)添加步进控件。设置步进控件的取值范围。

4)完成界面的创建。添加显示速度的标签,添加Hop按钮,设置背景图像和背景色。

4.3 创建并连接到输出口和操作

1)添加输出口。将在界面交互行为中需要用到的控件对象都连接到输出口。

2)添加操作。分别添加toggle Animation、set Speed、set Increment三个方法作为IBAction、

4.4 实现应用程序逻辑

需要为每个图像视图加载动画;在Interface Builder编辑器中,指定要图像视图显示的静态图像,但这不足以让它显示动画。其次,必须实现toggle Animation,让用户单击Hop!按钮时能够开始和停止播放动画。最后,必须编写方法set Speed和set Increment以控制动画的最大播放速度。

4.5 生成应用程序

为了尝试控制小兔子,单击Xcode工具栏的Run按钮。几秒钟后,应用程序Image Hop将启动。

5 结束语

本文介绍了i OS应用的体系结构、生命周期和MVC设计,并给出基于i OS的图像动画制作实例。同时演示了图像视图、滑块和步进等控件的使用。图像视图能够快速显示已加入到项目中的图像,甚至使用一系列图像来创建动画;滑块可用于收集位于特定范围内的用户输入;步进控件也提供输入特定范围内值的方式,但采用的步进方式,更容易控制。

摘要:该文介绍了iOS软件的体系结构,分析说明了iOS应用的生命周期和MVC设计,最后给出基于iOS的图像动画制作实例,同时演示了图像视图、滑块和步进等控件的使用。

关键词:iOS,MVC,图像动画,控件,生命周期

参考文献

[1]杨帆.iPhone应用开发从入门到精通[M].北京:机械工业出版社,2011:242-258.

[2]DevDiv移动开发社区著.iOS开发实战体验[M].北京:海洋出版社,2012:201,205.

[3]杨正洪,郑齐心,郭晨.iOS5编程揭秘:iPhone与iPad应用开发入门[M].北京:清华大学出版社,2012:118,125.

上一篇:地产税收下一篇:软件测试研究