利用AXObserver监控三方app

作者: LyleWh | 来源:发表于2018-04-09 21:15 被阅读32次

在开发过程可能会遇到要监控当前app的一些工作情况,如弹出窗口,移动窗口位置等。查询资料后,发现可以通过利用AXObserver监控app的一些变化。具体步骤如下:
1 声明观察者

var observer: AXObserver? = nil

2 利用BundleIdentifier获取要监控的app

let apps = NSRunningApplication.runningApplications(withBundleIdentifier: "com.iqiyi.player")
let app = apps.last
let pid: pid_t = (app?.processIdentifier)!

3 创建回调闭包,这里只是打印通知

let myCallBack: AXObserverCallback = {
    (observer: AXObserver, app: AXUIElement, noti: CFString, refcon: UnsafeMutableRawPointer?) -> Swift.Void in
     print(noti)
  }

4 创建观察者

AXObserverCreate(pid, myCallBack, &observer)

5 将AXObserver加入Runloop中

CFRunLoopAddSource(CFRunLoopGetCurrent(), AXObserverGetRunLoopSource(observer!), CFRunLoopMode.defaultMode)

6 添加需接收到通知

AXObserverAddNotification(observer!, AXUIElementCreateApplication(pid), kAXWindowMovedNotification as CFString, nil)

相关文章

  • 利用AXObserver监控三方app

    在开发过程可能会遇到要监控当前app的一些工作情况,如弹出窗口,移动窗口位置等。查询资料后,发现可以通过利用AXO...

  • iOS 流量监控分析(1)

    网络监控前言 项目开发中,对于app 浏览的监控有几方面方式 ,包括第三方平台监控这样可以有一个比较友好的后台来进...

  • 如何利用 RunLoop 监控 app 卡顿

    本文意义在分析如何利用runloop监控卡顿。代码可以看戴铭大佬的代码 卡顿问题的几种原因 复杂 UI 、图文混排...

  • zookeeper的watcher

    利用zk的watcher功能实时监控zk节点的变化,可以利用这个功能做报警、监控,例如监控kafka的broker...

  • Aspects的hook冲突问题解决

    利用MonkeyDev分析一个第三方App时,通常可以采用hook UIViewController的viewWi...

  • 第10章 Kubernetes集群资源监控

    一. Kubernetes监控指标与监控方案 1.Kubernetes监控指标 (1).集群监控 • 节点资源利用...

  • 小试 Xcode 逆向:App 内存监控原理初探

    小试 Xcode 逆向:App 内存监控原理初探小试 Xcode 逆向:App 内存监控原理初探

  • iOS 性能检测(1)内存

    1 前言 优化app,首先是监控app,对于app 性能监控有几个工具 xcode 的debug native包含...

  • 网络监控

    本文的意义 利用苹果原生的类Reachability,实时监控网络的状态 利用框架AFNetworking实时监控...

  • 详解docker容器的资源监控方案

    docker资源的监控方案 如何监控docker容器整体的资源利用率呢?如何监控独立docker容器的资源利用率呢...

网友评论

  • Julia妈妈:这个专题的主编@背靠背的微笑,介绍团队给我们做app,收了钱却不交付任何东西,既不回应,也不谈判,不说钱花在哪里也不退钱。我微信被她拉黑,简书被她拉黑。实在是太气愤。

本文标题:利用AXObserver监控三方app

本文链接:https://www.haomeiwen.com/subject/rzlwhftx.html