BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Facebook Sonar:一款可视化及交互式移动应用调试工具

| 作者 Sergio De Simone 关注 18 他的粉丝 ,译者 无明 关注 3 他的粉丝 发布于 2018年6月19日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Facebook Sonar是一个开源工具集,旨在帮助开发人员以交互式和可扩展的方式检查和理解iOS及Android应用程序的结构和行为。

根据Facebook工程师EmilSjölander的说法,Sonar基于Stetho的经验基础而构建,Stetho是一个Android调试桥,允许开发人员使用Chrome DevTools调试他们的应用程序,旨在设计出一个更加可扩展的工具,也可用在iOS平台上。但是,并非所有Stetho的功能在Sonar中都有对应项。因此,开发人员在某些情况下应继续使用Stetho,比如需要使用命令行工具来转储应用程序状态。

在扩展性方面,Sonar提供了一个插件API,开发人员可以使用这组API创建自己的插件来可视化和调试应用程序数据。Sonar初始版本包含许多即用型插件,例如Logs用于检查应用程序的系统日志,Layout Inspector用于检查iOS和Android应用程序的布局,Network Inspector用于检查网络流量。这些只是Sonar提供的一些基本的功能。根据Sjölander的说法,Facebook工程师还开发了插件来监控GraphQL请求、跟踪性能标记等。

要使用Sonar,移动应用程序需要集成Sonar SDK,Sonar SDK负责与基于Electron的桌面应用程序通信,以显示调试数据。Sonar插件包含了桌面和移动组件。桌面组件使用React编写,负责与远程插件进行通信并呈现数据。移动组件可以使用Swift/Objective-C或Java/Kotlin编写,并注册一些处理程序和响应来处理来自桌面组件的请求。

项目中启用Sonar后,无论是使用Gradle还是CocoaPods,都可以很容易地在应用程序中初始化它,如下面的例子所示:

// Android
public class MyApplication extends Application {

  @Override
  public void onCreate() {
    super.onCreate();

    if (BuildConfig.DEBUG && SonarUtils.shouldEnableSonar(this)) {
      final SonarClient client = AndroidSonarClient.getInstance(this);
      client.addPlugin(new MySonarPlugin());
      client.start();
    }
  }
}
// iOS
#import <SonarKit/SonarClient.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#if DEBUG
  SonarClient *client = [SonarClient sharedClient];
  [client addPlugin:[MySonarPlugin new]];
  [client start];
#endif
  ...
}
@end

Sonar在iOS平台上的一个已知限制是它无法在Swift应用程序中运行。

查看英文原文Facebook Sonar Is a Visual and Interactive Debugging Tool for Mobile Apps

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT