ویرگول
ورودثبت نام
محمد صادق مهرافزون
محمد صادق مهرافزونAndroid developer
محمد صادق مهرافزون
محمد صادق مهرافزون
خواندن ۲ دقیقه·۶ ماه پیش

‏Strictmode در برنامه نویسی اندروید چیست و چه کاربردی دارد؟

‏StrictMode یکی از ابزارهای مهم در اندروید برای شناسایی مشکلات عملکردی (performance issues) و قوانین استفاده‌ی نادرست از منابع در اپلیکیشن است. این ابزار عمدتاً برای بررسی عملیات سنگین یا نادرست در ترد اصلی (Main Thread) و همچنین نشت منابع (resource leaks) استفاده می‌شود.

هدف StrictMode چیست؟

‏StrictMode به شما کمک می‌کند:

  • از انجام عملیات سنگین مثل دسترسی به دیسک یا شبکه در ترد اصلی جلوگیری کنید.
  • نشت منابع مثل Cursor یا Closeableهایی که بسته نشده‌اند را شناسایی کنید.
  • استفاده‌های نادرست از حافظه، تردها و فایل‌ها را پیدا کنید.

انواع Policy ها در StrictMode

1.نوع ThreadPolicy

برای بررسی عملیات‌هایی که روی ترد اصلی(Main/UI Thread) انجام می‌شن مثل:

  • دسترسی به فایل یا پایگاه‌داده
  • درخواست‌های شبکه‌ای
  • ایجاد یا اعمال lock
  • عملیات سنگین CPU

‏‏‏‏2. نوع VmPolicy

برای بررسی مشکلات مرتبط با حافظه، منابع و Context ، مثل:

  • نشت Activity یا Context
  • نشت SQLiteCursor
  • فایل‌های باز شده ولی بسته نشده
  • استفاده نادرست از کلاس‌هایی مثل Handler یا Executor


چگونه StrictMode را فعال کنیم؟

شما StrictMode را در کد کاتلین خود فعال می‌کنید، معمولاً در متد onCreate کلاس Application یا Activity اصلی برنامه. نکته بسیار مهم این است که StrictMode را فقط در نسخه‌های دیباگ (Debug Builds) فعال کنید و هرگز در نسخه‌های انتشار (Release Builds) آن را فعال نگذارید.

دلیل استفاده در نسخه‌های دیباگ: (Debug Builds)

چون در حالت Release باعث کندی یا کرش می‌شود.

مثال:

استفاده از StrictMode در کلاس Application:

مثال عملی:

فرض کن در MainActivity به صورت مستقیم فایل می‌خوانی:

اگر StrictMode روشن باشد، درLogcat هشدار می‌دهد:


جمع بندی:

‏StrictMode ابزاری بسیار مفید در اندروید است که به شما کمک می‌کند مشکلات عملکردی و نشت منابع را در اپلیکیشن‌تان شناسایی کنید. این ابزار باید فقط در حالت Debug فعال شود، چون در حالت Release ممکن است باعث کرش یا کاهش عملکرد شود.

استفاده از StrictMode به این دلیل مهم است که کمک می‌کند اشتباهاتی را پیدا کنید که ممکن است باعث کندی یا باگ در اپلیکیشن شوند. مثلاً اگر بدون توجه، عملیات سنگینی مثل خواندن فایل یا اتصال به اینترنت را در ترد اصلی (ترد مربوط به رابط کاربری) انجام دهید، یا منابعی مثل فایل یا دیتابیس را باز کنید ولی فراموش کنید آن‌ها را ببندید، StrictMode این خطاها را شناسایی و گزارش می‌کند. این مشکلات معمولاً در حالت عادی مشخص نمی‌شوند، اما می‌توانند باعث کاهش سرعت اپ یا حتی کرش شدن آن در آینده شوند.

فعال‌سازی StrictMode از طریق دو تابع اصلی انجام می‌شود:

  • ‏StrictMode.setThreadPolicy() برای بررسی عملیات مربوط به ترد
  • ‏StrictMode.setVmPolicy() برای بررسی نشت منابع و حافظه

این ابزار مخصوصاً برای توسعه‌دهندگان هنگام تست و دیباگ بسیار کاربردی است، چون به بهبود کیفیت نهایی اپ کمک زیادی می‌کند.


ممنون که تا آخر این پست همراه من بودید ، امیدوارم براتون مفید بوده باشه 🙌🙏✌ (:

بقیه آموزش ها را می توانید در تلگرام و اینستاگرام دنبال کنید!!

کانال تلگرام: mister_developerr

اینستاگرام: mister_developerr

موفق و پیروز باشید

برنامه نویسیandroidkotlinکاتلین
۳
۱
محمد صادق مهرافزون
محمد صادق مهرافزون
Android developer
شاید از این پست‌ها خوشتان بیاید