Matrix 接入详解

2019-04-28  本文已影响0人  gogoingmonkey

官方地址

接入第一步

在根目录的gradle.properties 文件添加Matrix的版本号

MATRIX_VERSION=0.5.1

当前版本0.5.1运行就会报错,报错内容是栈内存超出,因为给出的代码混淆过只能知道一个i 方法报错,根本原因就是这个版本循环调用了该方法引起

解决办法:替换版本,换成0.4.8或者0.5.2(这个版本还未公布,但是也是可以使用的)

接入第二步

在项目的build.gradle文件中添加:

 dependencies {
     classpath ("com.tencent.matrix:matrix-gradle-plugin:${MATRIX_VERSION}") { changing = true }
 }

接入第三步

在app/build.gradle.文件中添加

dependencies {
    implementation group: "com.tencent.matrix", name: "matrix-android-lib", version: MATRIX_VERSION, changing: true
    implementation group: "com.tencent.matrix", name: "matrix-android-commons", version: MATRIX_VERSION, changing: true
    implementation group: "com.tencent.matrix", name: "matrix-trace-canary", version: MATRIX_VERSION, changing: true
    implementation group: "com.tencent.matrix", name: "matrix-resource-canary-android", version: MATRIX_VERSION, changing: true
    implementation group: "com.tencent.matrix", name: "matrix-resource-canary-common", version: MATRIX_VERSION, changing: true
    implementation group: "com.tencent.matrix", name: "matrix-io-canary", version: MATRIX_VERSION, changing: true
    implementation group: "com.tencent.matrix", name: "matrix-sqlite-lint-android-sdk", version: MATRIX_VERSION, changing: true
  }
  
  apply plugin: 'com.tencent.matrix-plugin'
  matrix {
    trace {
        enable = true   //if you don't want to use trace canary, set false
        baseMethodMapFile = "${project.buildDir}/matrix_output/Debug.methodmap"
        blackListFile = "${project.projectDir}/matrixTrace/blackMethodList.txt"
    }
  }

接入第四步

创建一个监听类

public class TestPluginListener extends DefaultPluginListener {
    public static final String TAG = "Matrix.TestPluginListener";
    public TestPluginListener(Context context) {
        super(context);
        
    }

    @Override
    public void onReportIssue(Issue issue) {
        super.onReportIssue(issue);
        MatrixLog.e(TAG, issue.toString());
        
        //add your code to process data
    }
}

接入第五步

创建一个配置类:

public class DynamicConfigImplDemo implements IDynamicConfig {
    public DynamicConfigImplDemo() {}

    public boolean isFPSEnable() { return true;}
    public boolean isTraceEnable() { return true; }
    public boolean isMatrixEnable() { return true; }
    public boolean isDumpHprof() {  return false;}

    @Override
    public String get(String key, String defStr) {
        //hook to change default values
        retrun defStr;
    }

    @Override
    public int get(String key, int defInt) {
      //hook to change default values
   retrun defInt;
    }

    @Override
    public long get(String key, long defLong) {
        //hook to change default values
   retrun defLong;
    }

    @Override
    public boolean get(String key, boolean defBool) {
        //hook to change default values
   retrun defBool;
    }

    @Override
    public float get(String key, float defFloat) {
       retrun defFloat;
    }
}

接入第六步

在APPlication类中初始化:

Matrix.Builder builder = new Matrix.Builder(application); // build matrix
  builder.patchListener(new TestPluginListener(this)); // add general pluginListener
  DynamicConfigImplDemo dynamicConfig = new DynamicConfigImplDemo(); // dynamic config
  
  // init plugin 
  IOCanaryPlugin ioCanaryPlugin = new IOCanaryPlugin(new IOConfig.Builder()
                    .dynamicConfig(dynamicConfig)
                    .build());
  //add to matrix               
  builder.plugin(ioCanaryPlugin);
  
  //init matrix
  Matrix.init(builder.build());

  // start plugin 
  ioCanaryPlugin.start();

这样就完成接入,跑一遍项目.然后就可以执行后续操作了

上一篇下一篇

猜你喜欢

热点阅读