Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

(中文版本请参看[这里](#matrix_cn))

**Matrix** is an APM (Application Performance Manage) used in Wechat to monitor, locate and analyse performance problems. It is a **plugin style**, **no-intrusion** solution on Android. It includes:
**Matrix** is an APM (Application Performance Manage) used in Wechat to monitor, locate and analyse performance problems. It is a **plugin style**, **non-invasive** solution on Android. It includes:

- **APK Checker:**

Analyse the APK package, give suggestions of reducing the APK size; Compare two APK and find out the most significant growth
Analyse the APK package, give suggestions of reducing the APK's size; Compare two APK and find out the most significant increment on size

- **Resource Canary:**

Expand All @@ -25,48 +25,48 @@

- **IO Canary:**

Detect the file IO issues, including performance of file io and closeable leak
Detect the file IO issues, including performance of file IO and closeable leak

## Features
### APK Checker

- **Easy-to-use.** Matrix provides a JAR tool, which is more convinient to apply to your integration systems.
- **More features.** In addition to APK Analyzer, Matrix find out the R redundancies, the dynamic libraries statically linked STL, unused resources, and supports custom checking rules.
- **Easy-to-use.** Matrix provides a JAR tool, which is convinient to apply to your integration systems.
- **More features.** In addition to APK Analyzer, Matrix finds out the R redundancies, dynamic libraries statically linking STL, unused resources, and supports custom checking rules.
- **Visual Outputs.** supports HTML and JSON outputs.

### Resource Canary

- **Separated detection and analysis.** Make it possible to used in automated test and in release versions (monitor only).
- **Pruned Hprof.** Remove the useless data in hprof and easier to upload.
- **Detection of duplicate bitmap.**
- **Separated detection and analysis.** Makes it possible to be used in automated test and release versions (monitor only).
- **Pruned Hprof.** Remove useless data in hprof and easier to upload.
- **Detection of duplicated bitmap.**

### Trace Canary

- **High performance.** Dynamically modify bytecode at compile time, record function cost and stack with little performance loss.
- **Accurate stack of ui-block.** Provide informations such as stack, function cost, execution times to solve the problem of ui-block quickly.
- **High performance.** Dynamically modify bytecode at compile time, record function cost and call stack with little performance loss.
- **Accurate call stack of ui-block.** Provide informations such as call stack, function cost, execution times to solve the problem of ui-block quickly.
- **Non-hack.** High compatibility to Android versions.
- **More features.** Automatically covers multiple fluency indicators such as ui-block, startup time, activity switching, slow function detection.

### SQLite Lint

- **Easy-to-use.** No code intrusion.
- **Easy-to-use.** Non-invasive.
- **High applicability.** Regardless of the amount of data, you can discover SQLite performance problems during development and testing.
- **High standards.** Detection algorithms based on best practices, make the quality of SQLite statement high quality.
- **May support multi-platform.** C++ implementation make it possible to support multi-platform.
- **High standards.** Detection algorithms based on best practices, make SQLite statements to the highest quality.
- **May support multi-platform.** Implementing in C++ makes it possible to support multi-platform.

### IO Canary
- **Easy-to-use.** No code intrusion.
- **More feature.** Including performance of file io and closeable leak.
- **Easy-to-use.** Non-invasive.
- **More feature.** Including performance of file IO and closeable leak.
- **Compatible with Android P.**

## Getting Started

1. Configure Matrix version in gradle.properties.
1. Configure `MATRIX_VERSION` in gradle.properties.
``` gradle
MATRIX_VERSION=0.4.7
```

2. Add matrix-gradle-plugin in your build.gradle:
2. Add `matrix-gradle-plugin` in your build.gradle:
``` gradle
dependencies {
classpath ("com.tencent.matrix:matrix-gradle-plugin:${MATRIX_VERSION}") { changing = true }
Expand Down Expand Up @@ -95,7 +95,7 @@
}
```

4. Implement PluginListener to receive data processed by Matrix.
4. Implement `PluginListener` to receive data processed by Matrix.

``` java
public class TestPluginListener extends DefaultPluginListener {
Expand All @@ -115,7 +115,7 @@
}
```

5. Implement DynamicConfig to change parametes of Matrix.
5. Implement `DynamicConfig` to change parametes of Matrix.
``` java
public class DynamicConfigImplDemo implements IDynamicConfig {
public DynamicConfigImplDemo() {}
Expand Down Expand Up @@ -152,7 +152,7 @@
}

```
6. Init Matrix in the onCreate of your application.
6. Init Matrix in the `onCreate` of your application.
``` java
Matrix.Builder builder = new Matrix.Builder(application); // build matrix
builder.patchListener(new TestPluginListener(this)); // add general pluginListener
Expand All @@ -178,7 +178,7 @@ You can get more about Matrix output at the wiki [The output of Matrix](https://

### APK Checker Usage

APK Checker can run independently in Jar mode, usage:
APK Checker can be run independently in Jar mode, usage:

```shell
java -jar ApkChecker.jar
Expand Down Expand Up @@ -225,7 +225,7 @@ Any problem?

1. Learn more from [Sample](https://github.com/Tencent/matrix/tree/dev/samples/sample-android)
2. [Source Code](https://github.com/Tencent/matrix/tree/master)
3. [Wiki](https://github.com/Tencent/matrix/wiki) [FAQ](https://github.com/Tencent/Matrix/wiki/Matrix-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
3. [Wiki](https://github.com/Tencent/matrix/wiki) & [FAQ](https://github.com/Tencent/Matrix/wiki/Matrix-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
4. Contact us for help

## Contributing
Expand Down