همیشه یکی از مشکلاتی که در هنگام انجام پروژه بصورت دورکاری داشتم اعلام باگ و کرش توسط مشتری بود و یا گزارش باگ توسط کاربران برای اپ های منتشر شده ام در مارکت ها بود در حالی که خودم آن مشکل را روی گوشیم و شبیه سازهام نداشتم. برای این کار روش هایی را در نظر داشتم که قبل از تست برای پیاده سازی یک زمانی صرف جستجو در این زمینه کردم که با توجه به آمارها متوجه شدم بیشتر دولوپر ها از کتابخانه ای به اسم ACRA استفاده می کنند.
ویژگی ها
- ارسال گزارشات به ایمیل و یا هر api آنلاینی در اینترنت دارید
- گزارشات کامل شامل متن لاگ کت + برند و مدل و نسخه اندروید گوشی کاربر تهیه می شود.
- نمایش پیام به چند روش مختلف ممکن می باشد
این کتابخانه از اس دی کا 8 به بالا کار میکند.
دستور زیر را به فایل build.gradle پروژه خود اضافه کنید و اجازه دهید اندروید استودیو کتابخانه را دانلود نماید.
compile 'ch.acra:acra:4.9.0'
نحوه استفاده
1. ابتدا در فایل styles.xml دستورات زیر را وارد نمایید.
<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:padding">4dp</item>
</style>
2. به شکل زیر دو رشته برای نمایش عنوان پیام کرش و متن پیام کرش به strings.xml اضافه کنید.
<string name="crash_report">We are sorry to inform you that the application has crashed, because of an unknown error! Send it\'s report to the developer to solve it!</string>
<string name="crash_title">Application Crash!</string>
3. یک کلاس به اسم MyApplication با داده های زیر ایجاد کنید.
@ReportsCrashes(mailTo = "m.garebaghi@gmail.com", // ایمیلی که می خواهید لاگ کت کرش به آن ارسال شود.
mode = ReportingInteractionMode.DIALOG, // ارور به شکل دیالوگ نمایش داده میشود.
resDialogText = R.string.crash_report, // عنوان دیالوگ
resDialogTitle = R.string.crash_title, // متن دیالوگ
resDialogTheme = R.style.AppCompatAlertDialogStyle, // استایل دیالوگ
resDialogIcon = R.mipmap.ic_launcher) // آیکون دیالوگ
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ACRA.init(this); // فعال کردن دیالوگ
}
}
4. کلاس ایجاد شده را به تگ application موجود در manifest بصورت ویژگی name مقدار دهید. به شکل زیر.
<application
android:name=".MyApplication" // سطر مورد نظر
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="false"
android:theme="@style/AppTheme.NoActionBar">
روش ها و تغییرات دیگری هم قابل اعمال در سیستم می باشد که برای فعال کردن آنها به مستندات خود کتابخانه مراجعه کنید.