Tag: 分析

CoreAnimation性能分析 – 带有CAShapeLayer的CAReplicatorLayer

我正在制作一个依赖CoreAnimation的应用程序。 它有一个CAReplicatorLayer和一个CAShapeLayer作为子图层。 当有12个重复,然后animation的path(touchMoved改变它)一旦graphics在屏幕上变大(大约12-20帧),FPS显着减less。 时间剖析器显示大约10%的CPU利用率,Open GL ES驱动器剖析器报告大约90-97%的“Render Utilization”和40-50%的“Tiler Utilization”。 本指南解释了这两个字,但不是很详细。 谁能解释这两者究竟是什么? 苹果文件 显然渲染利用率高是问题所在,那么我能做些什么来提高性能呢?

苹果App Store高级分析

我在App Store有几个应用程序,我希望得到进一步的先进的分析,他们在做什么。 我已经列出了一些对下载次数和在线排名进行分析的网站(他们会检查每个小时每个应用在每个国家/地区的排名)。 我想要有以下几点: 登陆 – 我想检查人们如何进入我的应用程序的App Store / iTunes页面; 从商业横幅,评论(我希望看到它来自一个特定的网页),从我在我的应用程序指向我的其他应用程序等内部的横幅… 应用程序商店search/关键字 – 我想检查哪些关键字是有效的,哪些是多余的。 关键字一般search – 我想检查哪些关键字一般是有效的,我的应用程序属于类别。 用户分析 – 我想检查有多less用户同时拥有我的应用的免费/精简版和完整版本。 也许有更多的分析我可以在这方面寻找(如果任何人有任何好主意)。 任何帮助或方向将非常感激。

我如何才能知道我的iOS应用程序正在运行哪些设备/操作系统版本?

我知道苹果不再允许我将“设备数据”发送给第三方服务。 因此,Flurry和其他所有分析公司不再收集操作系统/硬件版本数据。 但是,这些数据对于任何试图将开发目标定位于实际使用应用程序的人员都非常有价值。 我可以想象一些不同的方式来收集这些数据。 1)向Flurry发送一个表示硬件/操作系统版本的自定义事件。 这当然是直接违反了与苹果的协议。 但是,我怀疑有很多人这样做,只是没有被捣毁。 仍然不是一个理想的解决scheme。 即使苹果没有注意到我们正在发送这些数据,我也不希望这个应用程序被拖到我头上。 2)使用一个分析包,允许我收集我自己的服务器上的数据。 Localytics是似乎提供这个的一家公司。 但是,我不认为他们提供这个免费的计划。 有谁知道任何免费(或便宜)的分析工具,这将允许我发送数据到我自己的服务器? 3)推出我自己的解决scheme。 这可能是Flurry的全部替代品,或者我可以继续使用乱七八糟的模式,但只发送设备数据到我自己的服务器。 这有点笨重。 我宁愿将我所有的分析数据放在一个地方。 而且,如果我不必这样做,宁愿不必去处理我自己的工具 那么,有没有其他人收集设备数据? 你正在使用上述技术之一? 或者,也许有什么不同,我没有想到?

支持使用AVCaptureSession进行video的后台录制

我正在尝试在后台录制video,但是目前我的代码是在前台录制video时,应用程序将背景的方法。 -(void)captureOutput:(AVCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray *)connections error:(NSError *)error 立即发生错误 error:Error Domain=AVFoundationErrorDomain Code=-11818 "Recording Stopped" UserInfo=0x176aa180 {NSLocalizedRecoverySuggestion=Stop any other actions using the recording device and try again., NSUnderlyingError=0x1766c0e0 "The operation couldn't be completed. (OSStatus error -16133.)", NSLocalizedDescription=Recording Stopped} 我在DemoApp-Info.plist中设置了以下值 Required background modes->App plays audio or streams audio/video using AirPlay Application does not run in background->NO […]

AVCaptureSession stopRunning方法创build可怕的挂起

使用来自iOS7教程第22章的Ray Wenderlich的QRCode阅读器 ,我成功阅读了当前应用程序的QRCodes。 我现在扩展它,成功读取一个QRCode,我想要存储的AVMetadataMachineReadableCodeObject读取AVMetadataMachineReadableCodeObject , AVMetadataMachineReadableCodeObject到一个新的视图,并在新的视图上使用该数据,或多或less大多数QRCode阅读器应用程序像RedLaser等)处理条形码和QRCodes。 但是,我调用[captureSession stopRunning] (这样它不会再读取QRCodes并触发更多的细节),并且有10多秒的挂起。 我试图通过这个SO问题来实现一个async调用,但无济于事。 我也看了这些 SO 问题 ,似乎不适合这个目的。 有没有人有一个想法如何消除这挂? 这里是代码: #import "BMQRCodeReaderViewController.h" #import "NSString+containsString.h" #import "BMManualExperimentDataEntryViewController.h" @import AVFoundation; @interface BMQRCodeReaderViewController () <AVCaptureMetadataOutputObjectsDelegate> @end @implementation BMQRCodeReaderViewController { AVCaptureSession *_captureSession; AVCaptureDevice *_videoDevice; AVCaptureDeviceInput *_videoInput; AVCaptureVideoPreviewLayer *_previewLayer; BOOL _running; AVCaptureMetadataOutput *_metadataOutput; } – (void)setupCaptureSession { // 1 if (_captureSession) return; // 2 […]

iPhone 4configuration文件功耗(带仪器)

我有一个应用程序,我添加了很多animation 。 该应用程序还使用“iPhone防止睡眠”播放静音。 从那以后,我注意到电池消耗增加了4倍! 我想find一种方法来描述功耗(我认为我在仪器中看到了一个选项)来查找和消除违规方法。 我会在哪里开始寻找这样的信息? 目前,我已经把电话留在办公桌上约3小时,以logging随着时间​​的推移耗电。 有没有更好的方法来预测应用程序何时会耗尽我的应用程序连续运行? 额外的一个问题是:状态栏中显示的电池剩余电量是线性的,还是在电池寿命结束时会出现一些非线性? 编辑: 我在xcode> product> profile> CPU> Energy diagnostics中find了一个“power”预设。 它似乎并不完美,因为功耗级别总是0/20。 但它告诉我有多lessCPU时间花在应用前景,graphics和音乐上! 现在我不知道如何pipe理CPU的功率,运行CPU的能耗比可以说的30%多75%? 直觉上感觉应该是… 谢谢!

表格视图单元格中的UIButton动作

我正在试图在表视图单元格中按下button的操作。 以下代码在我的表视图控制器类中。 在我的UITableViewCell类叫做requestsCell的sockets中,button被描述为“是”。 我正在使用Parse保存数据,并希望按下button时更新对象。 我的objectIds数组工作正常,cell.yes.tag也打印正确的号码的日志,但是,我不能把这个号码到我的“连接”function,以正确运行我的查询。 我需要一种方法来获取单元格的indexPath.row来find适当的objectId。 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as requestsCell // Configure the cell… cell.name.text = requested[indexPath.row] imageFiles[indexPath.row].getDataInBackgroundWithBlock{ (imageData: NSData!, error: NSError!) -> Void in if error == nil { let image = UIImage(data: imageData) cell.userImage.image = image }else{ println("not working") […]