Background Modes
iOS 限制后台操作,以改善用户体验并延长电池寿命。随着 2010 年 iOS 4 的发布,Apple 开始允许应用程序在后台运行,并从那时起不断发展和改进后台模式。 常见的几种 Background Modes 包括:Audio,后台播放音乐。Location Updates,后台持续更新用户的位置信息。Remote Notifications,后台处理推送通知。Background Fetch 与 Background Fetch,允许后台执行任务。等。 另外,Background Modes 也常用于后台保活。短时间保活的方式有 beginBackgroundTaskWithName;长时间保活的方式有:播放无声音乐、后台持续定位、后台下载资源、BGTaskScheduler等;唤醒App的方式有:推送、VoIP等。
NSMeasurement & NSUnit
NSMeasurement 是苹果公司在 iOS 10 和 macOS 10.12 中引入的一个类,用于表示物理量的测量值。它结合了数值和单位,允许开发者以类型安全的方式处理测量数据。NSUnit 支持很多不同的单位类型,包括长度 NSUnitLength、面积 NSUnitArea、体积 NSUnitVolume、速度 NSUnitSpeed、加速度 NSUnitAcceleration、力量 NSUnitForce、能量 NSUnitEnergy、功率 NSUnitPower等等。
@interface NSMeasurement<UnitType: NSUnit *> : NSObject {
@property (readonly, copy) UnitType unit;
@property (readonly) double doubleValue;
- (instancetype)initWithDoubleValue:(double)doubleValue unit:(UnitType)unit NS_DESIGNATED_INITIALIZER;
@end
iOS 与 Unity 交互
Unity调用iOS原生代码:你可以使用 Objective-C 或 Swift 编写iOS原生代码,并使用Unity的插件系统将其集成到Unity项目中。这通常涉及到创建一个C#封装类,该类使用Unity的DllImport特性来调用原声代码中的函数。另外,Unity提供了iOS原生插件接口,允许你直接从Unity项目中调用iOS原生代码。 iOS原生代码调用Unity:Unity提供了一个名为 UnitySendMessage 的函数,允许你从iOS原生代码中调用Unity项目中的特定函数。另外,你可以在iOS原生代码中使用Unity的iOS原生插件接口来调用Unity项目中的代码。
动画降帧
给动画降帧,给 GPU 减负,用体验换性能。使用 CADisplayLink 控制更新频率,CADisplayLink 是一个与屏幕刷新率同步的定时器,通常用于实现平滑的动画。要实现降帧动画,你可以降低 CADisplayLink 的调用频率,比如将 CADisplayLink 的 preferredFramesPerSecond 属性设置为 30。使用 UIView 动画的 options 参数,通过设置 UIViewAnimationOptionPreferredFramesPerSecond30,可用支持指定动画刷新频率为 30fps。
参考文档
- iOS App后台保活:juejin.cn/post/684490…
- 玩转iOS开发:iOS 10 新特性《Measurement》:juejin.cn/post/684490…
- iOS小技能:核心动画(CoreAnimation):juejin.cn/post/720891…
- Unity3D与iOS交互详解(重在细节):juejin.cn/post/684490…
- UIView 动画降帧探究:juejin.cn/post/689637…