Alex Ao

Results 51 comments of Alex Ao

@mumusa 抱歉,刚看到,我不是大佬,只是把研究过程中的心得和体会分享出来。

@newyjp 是的,之前和他有过一些技术交流。

@tigerZhang86 是的,确实可以用 `NSURLProtocol` 可以做网络请求的拦截,而且确实也有项目是这么做的,比如 **NetworkEye** ,但是我们这边做的网络监控需要实现更加细致化和定制化的需求,比如 `NSURLSessionUploadTask` 和 `NSURLSessionDownloadTask`,而且 UIWebView 的网络请求也必须使用 `NSURLProtocol` 来做拦截,所以目前我们是采用 NSURLSession 的 Hook 和 `NSURLProtocol` 混合的方式来实现的。

@iamqk 我这边测试了下,使用上述方式在 iOS 上确实拿不到 CPU 频率,而拿不到的主要是因为通过 `sysctl` 系统调用在 MacOS 和 iOS 平台上的获取系统信息的底层实现是通过内核变量的 MIB(管理信息库)来访问导出的内核变量,但是出于安全性的考虑,MIB 有些内核变量在这几个版本的 iOS 上禁止访问这些内核变量,比如你上面提到的 `HW_CPU_FREQ` 就是其中之一,类似的还有 `cpufrequency_max` 和 `cpufrequency_min`,但是网上还有很多代码是通过这种方式在较老版本上成功获取到,包括我文章提到手淘上也用这种方式,应该都是遗留代码。 那还有什么其他方式获取 CPU 主频呢?其实可以通过两种方式。 第一种方式比较简单,是采取硬编码的方式,在 App 中建立一张 CPU 主频的映射表,然后根据用户的机型去这张映射表中找出即可。 ```...

@iamqk 这个 [issue](https://github.com/jorgenpt/ObjectiveMetrics/issues/21) 也可以佐证 HW_CPU_FREQ 这个接口已经不行了

@iamqk 不客气,希望上面答案能帮助到你!

@BestZedXiao 完整功能还是只是 CPU 的 Demo?完整功能的我还在整理当中……

@BestZedXiao 好的,我今天晚上把 Demo 发到你的邮箱……

@19kka 好的,64位的汇编可以参考 @iamqk 上面给的,我还没来得及试,应该没什么问题。