برطرف کردن مشکل ANR (Application Not Responding) در اندروید

برطرف کردن مشکل ANR (Application Not Responding) در اندروید
اندروید

برطرف کردن مشکل ANR (Application Not Responding) در اندروید

ANR یا به طور کامل Application Not Responding یکی از رایج‌ترین مشکلاتی هستش که برنامه‌نویس‌های اندروید باهاش روبرو میشن.

ANR چه زمانی رخ میده؟

این مشکل زمانی خودش رو نشون میده که اپلیکیشن سنگین و بزرگی رو می‌نویسید.

یا اینکه می‌خواید از المان‌های گرافیکی زیادی استفاده کنید، انیمیشن بکار ببرید و …

اینجور مواقع اکثر منابع سخت‌افزاری که در اختیار اپلیکیشن شما قرار دارن کم میارن و باعث میشه اندروید خطا بده و اپلیکیشن شما رو بیرون بندازه.

یا یک مثال دیگه‌ای بزنم.

فرض کنید از WebView استفاده کردید و قراره که یه وب‌سایت سنگینی رو توش نشون بدید.

به محض اینکه این وب‌سایت رو باز می‌کنید اپلیکیشن کند میشه و کاملا لَگ میزنه.

توی این پست میخوام یاد بدم که چطور این مشکلات رو برطرف کنید.

روش‌هایش برطرف کردن این مشکل

برای برطرف کردن این مشکل روش‌های مختلفی وجود داره که اکثرا هم به کدهای خود شما اشاره دارن.

یعنی باید برید کدهای خودتون رو بخونید و ببینید که کجای کد ممکنه که منابع بیشتری رو اشغال کنه و بهینه کنید.

ولی توی این پست می‌خوام روشی رو معرفی کنم که بتونی منابع سخت‌افزاری بیشتری رو به برنامه خودت اختصاص بدی.

اینطوری این مشکل رو می‌تونی به حداقل برسونی.

البته یه نکته‌ای رو هم بگم : همیشه کمبود رم به خاطر کدهای شما نیستش، ممکنه اپلیکیشن‌های زیادی در پسزمینه گوشی فعال باشن.

پس استفاده کردن از این کدها خیلی مهم و ضروری میتونه باشه.

اضافه کردن کدها

برای اینکه این قابلیت رو به اپلیکیشن خودتون اضافه کنید کدهای زیر رو باید به فایل Manifest پروژه‌تون توی بخش Application اضافه کنید

android:largeHeap="true"
android:hardwareAccelerated="true"

درواقع کدنهایی مثل کدهای زیر میشه

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:hardwareAccelerated="true"
    android:requestLegacyExternalStorage="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

خب دیگه کار تمومه😊

توضیحات کدها

خب بریم که یه توضیح مختصری هم در مورد کدها بدم

android:largeHeap="true"

این کد برای افزایش میزان رم اختصاص داده شده برای اپلیکیشن شماست.

android:hardwareAccelerated="true"

این کد هم برای استفاده از قدرت سخت‌افزار برای اجرای روون‌تر اپلیکیشن هستش.

دیدگاه خود را اینجا قرار دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فیلدهای نمایش داده شده را انتخاب کنید. دیگران مخفی خواهند شد. برای تنظیم مجدد سفارش ، بکشید و رها کنید.
  • عکس
  • شناسه محصول
  • امتیاز
  • قیمت
  • در انبار
  • موجودی
  • افزودن به سبد خرید
  • توضیحات
  • محتوا
  • عرض
  • اندازه
  • تنظیمات بیشتر
  • ویژگی ها
  • Custom attributes
  • زمینه های دلخواه
مقایسه
لیست علاقه مندی ها 0