仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1275|回复: 10
打印 上一主题 下一主题

[学习教程] IOS教程之iOS 7利用剧本封闭VoIP APP历程仓酷云

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:30:18 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果你对iPhoneDevelopment有兴趣,以下是入门门槛供参考:首先你要有一台Mac电脑(因为iPhoneApp使用Mac平台内建的Xcode开发工具),网上也有在Windows下搭设开发环境的教程,请大家自行谷歌一下,背景先容

VoIP范例的APP有个特征,就是必要一向在背景坚持运转,以便可以随时吸收来电。正由于体系供应给VoIP历程的这类特别机制,招致我们没法间接用kill命令完整查杀VoIP历程。关于这点加倍具体的信息,可参考以下Appledeveloper网站的先容:
“BecauseVoIPappsneedtostayrunninginordertoreceiveincomingcalls,thesystemautomaticallyrelaunchestheappifitexitswithanonzeroexitcode.(Thistypeofexitcouldhappenwhenthereismemorypressureandyourappisterminatedasaresult.)However,terminatingtheappalsoreleasesallofitssockets,includingtheoneusedtomaintaintheVoIPserviceconnection.Therefore,whentheappislaunched,italwaysneedstocreateitssocketsfromscratch.”
在具体先容用剧本查杀VoIP历程理论之前,先花点篇幅说下我们为何必要查杀VoIP历程。
在IOS中,可使用instruments这个工具来启动被测使用,并实行UIAutomation所编写的主动化测试用例。二次启动instruments时,由于历程已被启动过,会在把持台抛出以下毛病:”Executable‘XXX’isalreadyrunningasprocessXXXXwhichwaslaunchedfromthe‘launchd’process.”为了不这类毛病,只能启动一次instruments,跑完一切的主动化用例.由于在命令行下启动instruments,只能指定一个实行的JS文件,以是只能把一切的主动化用例封装到这独一的JS文件里。这很难满意实践的需求。实际中我们已主动化用例数量对照年夜,必要对主动化用例按用例优先级举行分类处置,依照范例将主动化用例存在对应的JS文件里,以是必要启动屡次instruments来实行用例。因而,我们必要在启动instruments前先查杀下已存在的VoIP历程。
明显我们不成能在主动化剧本运转的过程当中,手动经由过程连按主屏幕,向上滑动APP图标来查杀VoIP历程。那接着就来看下我们的理论历程吧。
使用的工具

我们分离了以下这些工具:


  • SimulateTouch:供应坐标体例点击大概滑动屏幕的办法
  • Activator:能够设置在恣意地位按一下顶部形态栏激活多义务栏
  • KillBackgroud7:在多义务栏供应按钮,点击该按钮能够查杀一切背景历程
  • AutoTouch:能够用来录制举措存到剧本里,我们次要用这个工具来检察坐标
这几个工具在逃狱的iPhone,都能够经由过程Cydia下载到。
理论历程先容

起首,我们在设置里找到并点击Activator,然后选择并点击恣意地位,选择并点击按一下顶部形态栏,选择并点击激活义务栏,这些步骤的目标是为了在恣意地位点击一下顶部形态栏翻开多义务栏页面。下面的步骤如以下截图所示:

<br>
接着,经由过程跟下面绑定激活义务栏到单击顶部形态栏的步骤一样,我们能够绑定启动AutoTouch到双击顶部形态栏这一举措(次要用来录制,然后猎取坐标供SimulateTouch利用)
如今我们必要录制以下的举措,点击顶部形态栏(如上所述,用来翻开义务栏),然后点击KillBackgroud7在义务栏右下方的呈现的按钮(点击该按钮KillBackground7会帮我们杀失落一切背景历程),该按钮以下截图所示:

<br>
如今双击顶部形态栏,翻开AutoTouch录制功效,点击Record按钮

<br>
录制以下的举措,点击一下形态栏,接着点击一下KillBackground7在多义务栏右下角的按钮,双击顶部形态栏停止录制。
在手机桌面找到AutoTouch图标,点击该图标,定时间排序找到你刚录制的剧本,点击该剧本右侧的叹息号图标,能够看到剧本内容,提掏出形态栏坐标,KillBackgroud7在多义务栏右下角图标的坐标

<br>
从下面的步骤中,我们已取得了必要的坐标,能够用SimulateTouch来编写杀历程的剧本了。在这里也许有人会有以下的疑问,为何不间接回放AutoTouch录制的脚,经由过程SimulateTouch来编写剧本,不是画蛇添足吗?Goodquestion,但遗憾的是,如今AutoTouch还不撑持命令行下回放剧本。
那我们只要持续剧本的编写了,假定剧本定名为toush.sh吧,编写剧本以下:

<br>
OK,加上如上的正文统共6行剧本就办理这个辣手的成绩了,但SimulateTouch供应的命令要在iPhone上实行,以是我们能够经由过程SSH毗连iPhone,然后实行命令。SSH毗连必要输出暗码,为了不每次跑剧本的过程当中,再手动往输出暗码,能够经由过程参考上面链接的步骤完成:
http://hi.baidu.com/youngfragnet/item/405c78009f9708883c42e296
接着把touch.sh剧本拷贝到iPhone上SSH毗连默许的目次下,最初,把SSH毗连,实行touch.sh的命令整合到一个shell剧本里,取个霸气点的称号,如kill.sh,假定手机的IP地点为10.32.60.85,编写kill.sh以下

<br>
至此,一切的精髓都稀释到kill.sh剧本里了,必要kill历程的中央,挪用下kill.sh这个shell剧本就能够弄定了。
以上实行,在iPhone5s,版本7.0.4长进行。

管理你的ViewController的层次可以自己写View切换的动画关掉他默认的动画文档:还有个蛋疼的UIWindow都快忘了他了因为iOS是从MacosX过来的很多工具直接拿来用这个UIWindow就是在iOS里每个App独占屏幕所以同时存在的只有一个UIWindow
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 07:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表