12/08/2018, 09:44

Android ARCA: Auto report crash log!

Trong quá trình phát triền phần mềm, một trong những giai đoạn quan trong là test và fix bug. Trong đó crash bug là vấn đề quan trọng nhất. Để tìm được nguyên nhân và fix được crash thì Error log là vấn đề sống còn để biết được chính xác nguyên nhân gây crash. Tuy nhiên việc có 1 số trường hợp ...

Trong quá trình phát triền phần mềm, một trong những giai đoạn quan trong là test và fix bug. Trong đó crash bug là vấn đề quan trọng nhất. Để tìm được nguyên nhân và fix được crash thì Error log là vấn đề sống còn để biết được chính xác nguyên nhân gây crash. Tuy nhiên việc có 1 số trường hợp tester hoặc khách hàng feedback lỗi nhưng developer lại rất khó để tái hiện lại. Hoặc vì nguyên nhân nào đó, việc lấy được log khá là khó khăn. Trên Android có 1 bộ thư viện cho phép thực hiện việc report error log NGAY LẬP TỨC khi xảy ra crash log. Bộ thư viện này là ARCA Auto report crash log! Mình xin hướng dẫn các bạn về cách sử dụng bộ công cụ này.

arca github: https://github.com/ACRA/acra

Thư viện hỗ trợ Android Annotation: https://github.com/excilys/androidannotations

Google + page: https://plus.google.com/+Acralyzer/posts

**1: Config thư viện. **

arca: Download file arca-xxx.jar, copy vào thư mục libs.

Annotation:

  • Sử dụng jar: Download file androidannotations-X.X.X-api.jar, copy vào thư mục libs.

  • config grade:

Buildscript {
    repositories {
      mavenCentral()
    }
    dependencies {
        // replace with the current version of the Android plugin
        classpath 'com.android.tools.build:gradle:1.2.2'
        // replace with the current version of the android-apt plugin
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
    }
}
repositories {
    mavenCentral()
    mavenLocal()
}
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
def AAVersion = 'XXX'
dependencies {
    apt "org.androidannotations:androidannotations:$AAVersion"
    compile "org.androidannotations:androidannotations-api:$AAVersion"
}
apt {
    arguments {
        androidManifestFile variant.outputs[0].processResources.manifestFile
        // if you have multiple outputs (when using splits), you may want to have other index than 0
        // You can set optional annotation processing options here, like these commented options:
        // logLevel 'INFO'
        // logFile '/var/log/aa.log'
    }
}
android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 22
    }
}

2: Cách sử dụng:

Tạo 1 class MyApplication extend từ Application class. add application name trong Android Manifest.

Trong MyApplication trước dòng định nghĩa class, thêm các định nghĩa paramater cho ARCA:

    @ReportsCrashes(
        formKey = "", // This is required for backward compatibility but not used
        formUri = "http://www.backendofyourchoice.com/reportpath"
    )

Ở trên là 1 ví dụ về việc sẽ report lỗi đến server. ARCA cung cấp nhiều dịch vụ để gửi report, vd: gửi report qua email:

@ReportsCrashes(formKey = "", // will not be used
                mailTo = "reports@yourdomain.com",
                mode = ReportingInteractionMode.TOAST,
                resToastText = R.string.crash_toast_text)

Trong Oncreate của MyApplication thêm dòng sau:

ACRA.init(this);

Để hiểu thêm về cách sử dụng ARCA library, các bạn có thể tham khảo thêm tại https://github.com/ACRA/acra/wiki/AdvancedUsage#User_Interaction

Như vậy từ bây giờ mỗi khi testter hoặc khách hàng test ra lỗi , app sẽ bắn ra error log và họ có thể lựa chon report về cho developer.

Với bộ công cụ ARCA, việc lấy được Error log sẽ được đảm bảo chính xác mỗi khi test ra crash bug. Việc tìm ra nguyên nhân và fix lỗi các feedback từ khách hàng cũng trở nên dễ dàng hơn.

0