- MetricKit框架详细解析(十一) —— 基于MetricK
- MetricKit框架详细解析(十) —— 基于MetricKi
- Core Audio 框架详细解析
- MetricKit框架详细解析(九) —— Improving
- MetricKit框架详细解析(二) —— Improving
- MetricKit框架详细解析(四) —— Gathering
- MetricKit框架详细解析(六) —— Preventing
- MetricKit框架详细解析(七) —— Reducing Y
- MetricKit框架详细解析(八) —— Reducing D
- MetricKit框架详细解析(五) —— Making Cha
版本记录
版本号 | 时间 |
---|---|
V1.0 | 2021.05.17 星期一 |
前言
MetricKit
由iOS13系统进引入,用来汇总和分析有关异常和崩溃诊断以及电源和性能指标的每个设备的报告。下面我们就一起来看下这个框架。感兴趣的可以看下面几篇文章。
1. MetricKit框架详细解析(一) —— 基本概览(一)
2. MetricKit框架详细解析(二) —— Improving Your App's Performance(一)
3. MetricKit框架详细解析(三) —— Reducing Your App's Memory Use(一)
4. MetricKit框架详细解析(四) —— Gathering Information About Memory Use(一)
5. MetricKit框架详细解析(五) —— Making Changes to Reduce Memory Use(一)
6. MetricKit框架详细解析(六) —— Preventing Memory-Use Regressions & Responding to Low-Memory Warnings(一)
7. MetricKit框架详细解析(七) —— Reducing Your App's Launch Time(一)
8. MetricKit框架详细解析(八) —— Reducing Disk Writes(一)
9. MetricKit框架详细解析(九) —— Improving App Responsiveness(一)
10. MetricKit框架详细解析(十) —— 基于MetricKit的App中的电源监控,性能和诊断(一)
源码
1. Swift
首先看下工程组织结构:

下面就是源码了
1. AppDelegate.swift
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
}
2. ShoppingListTableViewController.swift
import UIKit
import MetricKit
class ShoppingListTableViewController: UITableViewController {
let fruit = ["🍏 Apples", "🍌 Bananas", "🍓 Strawberries"]
let fruitsLogHandle = MXMetricManager.makeLogHandle(category: "Fruits")
override func viewDidLoad() {
super.viewDidLoad()
let metricManager = MXMetricManager.shared
metricManager.add(self)
mxSignpost(.event, log: fruitsLogHandle, name: "Loading Fruits TableViewController")
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = fruit[indexPath.row]
return cell
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return fruit.count
}
}
extension ShoppingListTableViewController: MXMetricManagerSubscriber {
func didReceive(_ payloads: [MXMetricPayload]) {
guard let firstPayload = payloads.first else { return }
print(firstPayload.dictionaryRepresentation())
}
func didReceive(_ payloads: [MXDiagnosticPayload]) {
guard let firstPayload = payloads.first else { return }
print(firstPayload.dictionaryRepresentation())
}
}
后记
本篇主要讲述了基于
MetricKit
的App中的电源监控,性能和诊断,感兴趣的给个赞或者关注~~~

网友评论