[关闭]
@qinyun 2018-06-14T03:09:53.000000Z 字数 3649 阅读 1575

Sonar:Facebook开源的移动应用调试平台

未分类


近日,Facebook在GitHub开源了可扩展的移动应用程序调试平台Sonar。

Sonar是iOS和Android上调试移动应用程序的平台。通过桌面界面,就能可视化、检查和控制你的应用程序,它还提供了一系列有用的工具,包括日志查看、交互式布局检查器和网络检查器。

你可以直接使用Sonar,也可以使用插件API来扩展它,通过插件来可视化和调试移动应用程序中的数据,Sonar负责来回发送数据、调用函数以及在移动应用程序上监听事件。

使用方法

Sonar由两个部分组成:

要使用Sonar,你需要将移动SDK添加到你的应用程序中。

桌面应用

Sonar在桌面应用上不需要任何特定的设置,只需下载应用程序的最新版本并启动它即可。桌面应用程序可用于macOS,并需要在系统上安装Android、iOS开发工具。

一旦启动Sonar和启动模拟器或连接设备之后,你就可以在Sonar中查看设备的日志,如果要查看应用特定的数据,你需要将原生SDK和应用相集成在一起。

设置Android应用程序

Sonar通过JCenter发布,将依赖关系添加到你的build.gradle文件中。

  1. repositories {
  2. jcenter()
  3. }
  4. dependencies {
  5. debugCompile 'com.facebook.sonar:sonar:0.0.1'
  6. }

现在,你可以在你的应用程序中初始化Sonar onCreate,方法如下:

  1. public class MyApplication extends Application {
  2. @Override
  3. public void onCreate() {
  4. super.onCreate();
  5. SoLoader.init(this, 0);
  6. if (BuildConfig.DEBUG && SonarUtils.shouldEnableSonar(this)) {
  7. final SonarClient client = AndroidSonarClient.getInstance(this);
  8. client.addPlugin(new MySonarPlugin());
  9. client.start();
  10. }
  11. }
  12. }

设置iOS应用程序

要与iOS应用程序集成,你可以使用CocoaPods,将移动Sonar SDK及其依赖项添加到你的Podfile中:

  1. platform :ios, '8.0'
  2. swift_version = '4.1'
  3. target 'MyApp' do
  4. pod 'RSocket', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/iOS/third-party-podspecs/RSocket.podspec?token=ADr9NE_I05Vu8g7oq_g6g_9FLx784NFmks5bJ5LvwA%3D%3D'
  5. pod 'DoubleConversion', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/iOS/third-party-podspecs/DoubleConversion.podspec?token=ADr9NOxtIEmr5ODP9PWq6-sht-Ye6UYGks5bJ5MjwA%3D%3D'
  6. pod 'glog', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/iOS/third-party-podspecs/glog.podspec?token=ADr9NBHbrlbkFR3DQTPzj0CnZdria4jvks5bJ5M3wA%3D%3D'
  7. pod 'Folly', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/iOS/third-party-podspecs/Folly.podspec?token=ADr9NNTjwJ8xqLFwc3Qz3xB3GsCk-Esmks5bJ5NGwA%3D%3D'
  8. pod 'PeerTalk', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/iOS/third-party-podspecs/PeerTalk.podspec?token=ADr9NB8frQTrUWytsMXtdv_P8km7jV_Mks5bJ5NbwA%3D%3D'
  9. pod 'Yoga','~>1.8.1', :modular_headers => true
  10. pod 'Sonar', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/xplat/Sonar/Sonar.podspec?token=ADr9NFO7byH9uAuhGAIEYuoJeBNyBxf6ks5bJ5N8wA%3D%3D'
  11. pod 'SonarKit', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/SonarKit.podspec?token=ADr9NBuYoodM_NeysQg899hkxXw0WZ7Xks5bJ5OVwA%3D%3D'
  12. pod 'SonarKit/SonarKitLayoutComponentKitSupport', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/SonarKit.podspec?token=ADr9NBuYoodM_NeysQg899hkxXw0WZ7Xks5bJ5OVwA%3D%3D'
  13. pod 'SonarKit/SKIOSNetworkPlugin', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/SonarKit.podspec?token=ADr9NBuYoodM_NeysQg899hkxXw0WZ7Xks5bJ5OVwA%3D%3D'
  14. pod 'ComponentKit', :podspec => 'https://raw.githubusercontent.com/facebook/Sonar/master/iOS/third-party-podspecs/ComponentKit.podspec?token=ADr9NNV9gqkpFTUKaHpCiYOZIG3Ev-Hyks5bJ5O-wA%3D%3D'
  15. post_install do |installer|
  16. installer.pods_project.targets.each do |target|
  17. if ['YogaKit'].include? target.name
  18. target.build_configurations.each do |config|
  19. config.build_settings['SWIFT_VERSION'] = swift_version
  20. end
  21. end
  22. end
  23. end
  24. end

通过运行pod install来安装依赖项,当你打开应用的Xcode工作区文件时,你可以在AppDelegate中导入并初始化Sonar。

  1. #import <SonarKit/SonarClient.h>
  2. @implementation AppDelegate
  3. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  4. {
  5. #if DEBUG
  6. SonarClient *client = [SonarClient sharedClient];
  7. [client addPlugin:[MySonarPlugin new]];
  8. [client start];
  9. #endif
  10. ...
  11. }
  12. @end

最后,你需要将插件添加到你的Sonar客户端中,具体添加方式,可通过以下链接查看:

https://fbsonar.com/docs/network-plugin.html

https://fbsonar.com/docs/layout-plugin.html

链接

GitHub:

https://github.com/facebook/sonar

入门:

https://fbsonar.com/docs/getting-started.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注