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

هدف StrictMode چیست؟
StrictMode به شما کمک میکند:
انواع Policy ها در StrictMode
1.نوع ThreadPolicy
برای بررسی عملیاتهایی که روی ترد اصلی(Main/UI Thread) انجام میشن مثل:
2. نوع VmPolicy
برای بررسی مشکلات مرتبط با حافظه، منابع و Context ، مثل:
چگونه StrictMode را فعال کنیم؟
شما StrictMode را در کد کاتلین خود فعال میکنید، معمولاً در متد onCreate کلاس Application یا Activity اصلی برنامه. نکته بسیار مهم این است که StrictMode را فقط در نسخههای دیباگ (Debug Builds) فعال کنید و هرگز در نسخههای انتشار (Release Builds) آن را فعال نگذارید.
دلیل استفاده در نسخههای دیباگ: (Debug Builds)
چون در حالت Release باعث کندی یا کرش میشود.
مثال:
استفاده از StrictMode در کلاس Application:

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

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

جمع بندی:
StrictMode ابزاری بسیار مفید در اندروید است که به شما کمک میکند مشکلات عملکردی و نشت منابع را در اپلیکیشنتان شناسایی کنید. این ابزار باید فقط در حالت Debug فعال شود، چون در حالت Release ممکن است باعث کرش یا کاهش عملکرد شود.
استفاده از StrictMode به این دلیل مهم است که کمک میکند اشتباهاتی را پیدا کنید که ممکن است باعث کندی یا باگ در اپلیکیشن شوند. مثلاً اگر بدون توجه، عملیات سنگینی مثل خواندن فایل یا اتصال به اینترنت را در ترد اصلی (ترد مربوط به رابط کاربری) انجام دهید، یا منابعی مثل فایل یا دیتابیس را باز کنید ولی فراموش کنید آنها را ببندید، StrictMode این خطاها را شناسایی و گزارش میکند. این مشکلات معمولاً در حالت عادی مشخص نمیشوند، اما میتوانند باعث کاهش سرعت اپ یا حتی کرش شدن آن در آینده شوند.
فعالسازی StrictMode از طریق دو تابع اصلی انجام میشود:
این ابزار مخصوصاً برای توسعهدهندگان هنگام تست و دیباگ بسیار کاربردی است، چون به بهبود کیفیت نهایی اپ کمک زیادی میکند.
ممنون که تا آخر این پست همراه من بودید ، امیدوارم براتون مفید بوده باشه 🙌🙏✌ (:
بقیه آموزش ها را می توانید در تلگرام و اینستاگرام دنبال کنید!!
کانال تلگرام: mister_developerr
اینستاگرام: mister_developerr
موفق و پیروز باشید