Tag: 分析

分析iOS应用中的内存使用情况

自2007年以来,iPhone的结构或配置都发生了翻天覆地的变化。 内存(RAM)在2018年从128 MB增长到4GB,而存储从4 GB增长到256 GB。 然而,无论我们使用哪种操作系统,在为任何智能手机应用程序开发时,内存仍然是一个值得关注的领域。 在开发适用于iOS应用程序的日志记录框架时,主要基于内存管理,我想到了多个问题: 我的框架使用了多少内存? 我是否在主存储器中保留了太多数据? 是否有内存泄漏? 客户端应用程序是否会由于RAM利用率高而因压力负载而崩溃? iOS中的垃圾收集如何工作? 是否有类似于Java中的GC的GC? 让我们讨论每个问题并解决它们。 我的框架使用了多少内存? 我是否在主存储器中保留了太多数据? 方法1 当我们调试任何iOS应用程序时,XCode会在调试会话中提供CPU,内存,磁盘和网络的使用指标。 要打开,请在左侧窗格中选择Debug Navigator(option)选项。 单击每个参数后,主屏幕将显示详细报告。 这是内存报告的样子: 尽管此报告看起来非常有趣且内容丰富,但它具有误导性并且缺乏详细的内存中断信息。 我们将在后面的部分中看到。 如果您注意到此屏幕右上方有一个小按钮,上面写着“仪器中的配置文件”。 点击那个。 它将打开“乐器”应用程序,该应用程序显示有关应用程序如何使用内存的更好,更详细的视图。 我们稍后会在博客中详细介绍Instruments应用。 方法2 我们也可以选择以Profile模式构建应用程序: 仪器应用会打开,询问我们配置iOS应用所需的方式。 根据需求,有许多选项可供选择。 对于内存使用情况,我们可以选择分配(详细显示内存使用情况)或泄漏(显示内存使用情况与泄漏) 在下一个屏幕上,单击“记录”按钮以开始分析和使用情况。 仪器 如维基百科所述: Instruments(以前的Xray)是应用程序性能分析器和可视化工具,集成在Xcode 3.0和更高版本的Xcode中。 我们可以使用上述两种方法之一查看Instruments中的内存使用情况。 屏幕将如下所示: 让我们尝试了解此屏幕的主要组成部分: 该图顶部显示实时内存使用情况。 默认情况下,显示“所有堆”和匿名VM的组合内存使用情况。 您可以通过单击旁边的+号来选择显示其他图形。 下表中有多列对我们来说非常重要。 类别定义了内存的使用位置 永久字节定义了应用当前在内存中保留的字节数。 这在定义我们当前使用的内存量方面很有用。 #Persistent传达了多个持久对象。 这些对象总共消耗了上一列中显示的字节。 #Transient传达了该应用先前保存但现在已释放的对象数。 它们不再被我们的应用程序引用。 在确定内存使用情况时,这可能并不重要,但可以概述应用程序过去如何使用内存。 总字节数是一个令人误解的数字,将持久性和暂时性字节合并在一起。 仅当您想知道自应用程序运行以来使用了多少内存时,这才有用。 […]

迦太基与可可足-建立时间分析用例

在开发iOS项目时,您可能会面临的最著名的难题之一就是您应该使用哪个程序包管理器:Cocoapods或Carthage。 当然,没有正确的答案。 两种方法都是可能的,并且它们都有消极点和积极点。 但是在这篇文章中,我想谈谈我在大力神开发过程中对他们俩的经历,以及为什么我们选择从可可足类转变为迦太基。 在项目开始时,选择“迦太基”或“ Cocoapods”可能与我们讨论“构建时间”无关,因为使用的框架数量可能很少。 当您的项目开始增长并向其中添加更多框架时,构建时间就成为一个问题,因为在较长的构建时间中开始浪费大量的开发时间。 在Hercules开发期间,我们意识到在项目中执行干净命令后,在构建过程中损失了大约15分钟,而在执行存档时损失了大约20分钟。 此时,我们使用了17个框架(其中一些框架与Realm,Firebase,Facebook SDK和Google SDK相当),而Cocoapods作为我们的软件包管理器。 我们的构建时间简直太糟糕了,我们不得不为此做些事情。 到那时,我们已经使用了整个冲刺来分析和检验假设,以改善这种浪费的时间。 我们从分析构建时间开始,寻找哪些关键点花费太长时间来编译。 尽管我们的项目很大(+230个源文件),但我们意识到编译源文件所花的时间并不是问题。 在每次“清理和存档”期间发生的事情是,花费大量时间来编译所有框架源文件。 之所以发生这种情况,是因为Cocoapods在每次构建过程中都将框架源文件作为项目的一部分进行附加。 这意味着,即使您从未接触过这些文件,每次执行“清理”操作也会清除所有框架源文件。 您多久修改一次外部框架文件? 您可能会同意我的看法,几乎永远不会同意。 从那时起,我们决定从Cocoapods转到Carthage,成为我们独特的包裹管理器。 我将从使用迦太基的缺点之一开始。 当我们开始切换所有框架时,我们意识到其中的一些框架不支持Carthage-Google SDK,Firebase框架,Facebook pop和Fabric Analytics。 这意味着我们必须手动导入所有这些框架。 尽管这样做不是很大的问题,但这是我们在Cocoapods中所没有的额外工作。 另外,某些框架手动安装(例如Facebook pop)必须通过将框架PBX添加为主PBX的子项目来完成,这与通过Cocoapods添加它的行为类似,因为框架源文件将在每次构建时进行编译。 手动导入所有必要的框架后不久,我们遇到了迦太基的第二个负面问题:第一次carthage update 。 使用no-use–binaries标志在本地编译所有框架大约需要1个小时,这迫使所有框架都在本地编译。 尽管在执行了所有这些烦人的更改之后,我们还是开始收集使用迦太基的好处:清洁后2分钟的构建时间。 编译Facebook pop框架花了大约20秒钟,该框架必须作为子XCode项目导入,其余时间则编译我们自己的源文件。 从那时起,我们意识到由于Cocoapods自动对我们进行手工操作,从Cocoapods切换到Carthage最初很烦人,但是由于Build Time的减少,它为我们节省了巨大的开发时间。 同样,执行“存档”将与“清理”后编译代码的速度一样快,这意味着如果您频繁执行手动发布,迦太基将节省您的时间。 摘要 椰子足 尽管Cocoapods是更成熟的工具,具有更多的框架,并且超级易用,但它可能使您头疼,无法执行干净的构建并不得不等待所有框架的源文件进行编译。 另外,Cocoapods是集中式解决方案,因此请准备好开始失去对PBX / Workspace文件的控制,因为从现在开始,Cocoapods将开始控制并在某些您可能不会注意到的地方进行一些更改。 迦太基 到目前为止,我们注意到的两个负面问题是,如果您决定使用本地编译,则需要花费大量时间来编译所有框架,并且有必要手动导入一些框架。 虽然,我们在使用迦太基时节省的构建时间使初始负数变小了。 杂种 即使我之前没有提到,您也可以使用混合解决方案:Cocoapods和Carthage一起使用。 但是我认为后果很直观:您将从这两种工具中继承正负两点。 这就是我和我的团队同时使用两个程序包管理器的经验。 希望本文可以为您提供任何帮助,以便您更好地选择一个。 感谢您的阅读,并考虑在below下面留下评论/反馈

分析App Store的指南Connect App Analytics

总览 因此,您花费了无数时间进行研究,收集数据和信息以及开发应用程序。 您的团队和您花费了许多时间来开发该应用程序,以使其在性能,外观和感觉上以及在其他方面没有得到改善。 这样应用程序完成了,上传到App Store了,现在呢? 简单易学,您可以学习App Store Connect App Analytics ,作为应用商人,对应用分析有清晰的了解对您非常重要,它可以帮助您寻找业务增长的机会,可以帮助您改善应用。 您从哪里学到的呢? 就 在这里 👇。 主题:-我们将介绍的Google Analytics(分析)主题:- App Store商店 营业额 用法 App Store商店 预计在未来两年内,应用程序商店将达到约500万个应用程序。 是的,您读对了500万本。 这是一个很大的市场,您必须在所有这些应用程序的人群中发现并注意到您的应用程序,而App Store提供的指标正是您为此目的所需要的。 因此,首先,请先登录您的App Store帐户, 直接点击应用分析图标 要么 单击我的应用程序,然后单击应用程序分析 单击应用程序分析后,您将看到以下条形图。 印象数 当您滚动或浏览应用商店时,会遇到许多应用,这会增加该应用的印象。 简而言之,印象数是用户在浏览或搜索应用程序时遇到 您的应用程序 图标的次数 。 通过展示,可以计算转化率。 转化率是指通过您的应用进行安装的用户数量。 如果您的印象很高,但转化率很低,则您需要制定营销策略或调查为什么遇到该应用程序的用户不选择安装它的原因。 如您所见,我们的Scroll It应用程序具有3602次展示,但只有14个应用程序单元,因此我们要做一些工作。 产品页面浏览量 产品页面视图是点击应用程序的详细信息页面视图 (显示屏幕截图和其他详细信息的页面)的用户的指标。 这有助于我们了解有多少用户想要或有兴趣下载我们的应用程序。 营业额 应用单位 应用程序单位是用户一天中实际下载您的应用程序的次数,即用户点击“购买”或“获取”按钮进行下载的次数。 通过此操作,您可以进一步了解用户的行为。 如果您的产品页面浏览量更大,那么应用程序单元的数量就会减少,这意味着用户对页面上提供的信息不满意,或者使用户不满意。 应用内购买 它是应用内产品一天之内在您的应用中完成的销售 […]