راهاندازی دیدبان در اندروید
نحوه مقداردهی اولیه Didban در Application.onCreate و تنظیم کلید پروژه.
محل راهاندازی
بهتر است کتابخانه Didban را در متد onCreate کلاس اختصاصی Application، پیش از اجرای بخش عمده کد برنامه، راهاندازی کنید.
package com.example.myapp
import android.app.Application
import dev.didban.android.Didban
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
// Initialize Didban as early as possible
Didban.init(
context = this,
apiKey = "didban_ing_your_project_key"
)
}
}فراموش نکنید که کلاس Application خود را در مانیفست اپلیکیشن معرفی کنید:
<application
android:name =".MyApp"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher">
<!-- activities and services -->
</application>چرا راهاندازی زودهنگام ضروری است؟
فراخوانی Didban.init در ابتدای شروع برنامه اقدامات زیر را انجام میدهد:
- ثبت شنونده استثناهای JVM: استثناهای مدیریتنشده را رهگیری کرده و شنونده قبلی سیستم را حفظ میکند تا هیچ خطایی نادیده گرفته نشود.
- راهاندازی ناظر ANR (Watchdog): یک نخ ناظر کممصرف برای پایش پاسخگویی Looper نخ اصلی فعال میکند تا قفل شدن رابط کاربری را ثبت نماید.
- فعالسازی هوک نیتیو NDK: سیگنالهای مهلک POSIX کدهای C/C++ را با امنیت کامل و جداول بدون تخصیص حافظه پایش میکند.
- بازیابی کرشهای قبلی و شروع سشن: فایلهای کرش قبلی را از دیسک خوانده و در پسزمینه آپلود میکند و سشن فعال را آغاز مینماید.
- راهاندازی ارسال لاگهای زنده (Live App Logs): بافر حلقوی درونحافظهای را فعال کرده و تایمر ارسال دستهای لاگها (هر ۱۵ ثانیه یا خروج از برنامه) را زمانبندی میکند.
انواع کلیدهای پروژه: INGEST در برابر BUILD
دیدبان دو نوع کلید مجزا با سطوح دسترسی مشخص در اختیار شما قرار میدهد:
| نوع کلید | پیشوند | محل استفاده | دسترسیها |
|---|---|---|---|
| INGEST | didban_ing_ | Mobile Runtime App | Submitting crash events & foreground sessions (write-only ingestion) |
| BUILD | didban_build_ | CI/CD & Build Machine | Uploading ProGuard/R8 mappings and unstripped native symbol files |
هشدار امنیتی
هرگز کلید BUILD را درون کدهای اپلیکیشن قرار ندهید! کلیدهای BUILD دارای مجوز آپلود و تغییر مپینگهای نمادگذاری هستند و باید فقط در متغیرهای محیطی CI/CD یا فایلهای محلی مخفی قرار گیرند. کدهای اپلیکیشن موبایل باید همیشه از کلید با پیشوند didban_ing_ استفاده کنند.
پارامترهای متد Didban.init
context: TheContext(normallythisfrom yourApplicationinstance). Didban capturesapplicationContextto prevent memory leaks.apiKey: Your project's Ingest API key (starts withdidban_ing_). Found in Dashboard under Settings → API Keys.
The SDK uses the hosted Didban API by default. An optional baseUrl override is available for local development, testing, or self-hosted deployments.