Facebook开源其调试平台Sonar,支持 Android与iOS
授权协议:MIT
开发语言:Java C/C++ Objective-C JavaScript
操作系统:Android
开发厂商:Facebook
近日,Facebook 在其官网宣布,正式开源其内部用于移动应用调试的平台 Sonar。
Sonar 是一个用于调试 iOS 和 Android 移动应用的平台,通过一个简单的界面,开发者可以可视化地审查和控制其 APP,除了可以直接使用,Sonar 还支持使用插件 API 进行扩展。三年前 Facebook 已经开源过一款基于 Chrome 开发者工具的 Android 调试桥 Stetho,此次发布的 Sonar 比之更加先进,主要体现在跨平台、更丰富的用户体验,以及最主要的可扩展性,官方建议开发者使用 Sonar 替代 Stetho。
Sonar 由两部分组成:桌面客户端和移动SDK。 Sonar使用者与桌面客户端进行交互,而移动SDK则安装在工程师想要调试的Android或iOS应用程序中,之后将数据传输到Sonar桌面客户端。桌面客户端基于Electron和Facebook的开源项目,包括React.js、Flow、Metro、RSocket和Yarn;移动SDK也大量使用 Facebook的开源项目,如Folly和RSocket。
据介绍,Sonar 已经被使用于内部许多项目中,提供的功能包括:
- 通过显示Litho和ComponentKit组件,使工程师能够更精确地访问他们正在使用的功能的视图结构;
- 处理GraphQL请求,而不是原始网络事件;
- 实时跟踪性能指标,使开发人员能够更轻松地查找性能问题。
Sonar 官方表示,因为从一开始就与 Facebook 内部的框架和产品开发人员密切合作,所以可以保证其提供的插件 API 足够强大,而实际上 Sonar 中包含的所有工具都是插件,Sonar 的核心只提供一组 UI 组件并管理设备之间的连接,这意味着任何人都可以构建强大的插件工具。
此次发布的版本中,无论应用使用标准 Android/iOS 视图还是 Litho/ComponentKit 组件构建,Sonar 与相应插件都能够使开发者审查其层次结构,同时也可以让开发者审查来自应用的网络流量和系统日志。
通过插件扩展 Sonar,开发者需要编写了一个桌面客户端插件来渲染 UI,并且需要编写一个移动 SDK 插件来暴露数据。
对于桌面客户端插件,开发者只需要创建一个继承客户端插件基类的 React 组件,该组件负责与移动 SDK 插件进行通信并将其提供的数据进行渲染,同时桌面客户端插件也能够将命令发送回移动 SDK 插件。
移动 SDK 插件由其运行所在平台的原生语言开发,包括 iOS 上的 Swift/Objective-C 和 Android 上的 Java/Kotlin。它需要注册一组 handler 并为其定义 response,这类似于开发者通常构建的处理客户端请求的服务器应用。
如果你也有上面所说的需求,那么点击下面的链接开始吧。
相关文章
- Ros-routeros winbox for win,mac,android,ios客户端大全
- Android和iOS的设计不同之处
- 简析Android的垃圾回收与内存泄露
- Android阵营如何诞生下一个iOS?
- Bodymovin:Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画
- 【函数封装】javascript判断移动端操作系统为android 或 ios 或 iphoneX
- GitHub iOS 和 Android 正式发布!
- android屏幕适配五种,论程序员成长的正确姿势,吐血整理
- 移动端开发遇到的问题以及解决方案以及开发经验(多半是样式造成的兼容性问题在Android和ios表现出入)
- 2022年跨端(Ios/Android)方案调研
- 框架模式 MVC 在Android中的使用
- Android之计算两个时间的相差
- 【Android 屏幕适配】屏幕适配通用解决方案 ③ ( 自定义组件解决方案 | 获取设备状态栏高度 | 获取设备屏幕数据 )
- 【Android UI】Path 测量 PathMeasure ④ ( 使用 PathMeasure 绘制沿曲线运动的图像并且其朝向始终向前 | 根据切点计算曲线运动的朝向 )
- 《Android Y轴旋转动画Animation》 X轴 Y轴 Z轴
- Arcgis android - Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
- Flutter与Android iOS 的双向通信
- 【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | Launcher 应用简介 | Launcher 应用源码简介 | Launcher 应用快捷方式图标点击方法分析 )
- Realm 数据库的使用(iOS &Android)
- React-Native极光推送全程教程android和ios
- React Native优秀的第三方插件(Android & iOS)
- Android、iOS和Windows Phone中的推送技术
- android、ios与服务器端php使用rsa加密解密通讯
- 我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(三)Android客户端功能实现