مدیریت حافظه در اندروید

در برنامه نویسی اندروید مدیریت حافظه یکی از مشکلات اساسی در مسیر توسعه اپ می باشد که آن هم وجود منابع کم گوشی های هوشمند نسبت به کامپیوتر ها می باشد. زبان جاوا جزو زبان های garbage-collecting-language که بصورت اتوماتیک مدیریت حافظه و به عهده میگیرد اما باز هم بنا به دلایل مختلف کمبود حافظه در برنامه هایی که به شکل بهینه نوشته نشده باشند اتفاق می افتد و دلیل آن هم اشتباهات برنامه نویس می باشد.کمبود حافظه یا Memory leak زمانی اتفاق می افتد که شما برای مثال متغیری داخل برنامه دارید ولی هیچ استفاده ای ازش نمیبرید و بخاطر اینکه داخل برنامه در جایی به این متغیر رفرنس داده شده است به همین دلیل امکان پاک کردن از حافظه وجود ندارد. همین متغیر های بلا استفاده باعث مصرف منابع حافظه شده و در نتیجه دیگر جایی برای آبجکت های قابل اجرا باقی نمی ماند و برنامه کرش میکند.

مدیریت حافظه در اندروید

دلایل کمبود حافظه

--

  1. static context : در کل همیشه موقع استفاده از Context مراقب باشید و به این نکته توجه کنید که در جای مناسب از Context مناسب استفاده کنید و تا حد امکان از اپلیکیشن context به جای اکتیویتی context استفاده کنید.
  2. کلاس های داخلی : اگر از کلاس های داخلی استفاده میکنید سعی کنید آنها را به صورت استاتیک تعریف کنید چون کلاس های داخلی غیر استاتیک باعث میشود کلاس خارجی همیشه زنده یا فعال بماند. همچنین اگر داخل کلاس درونی خود از View استفاده میکنید بهتر هست که این View و به متد سازنده کلاس خود اضافه کنید چون با این کار یک weak reference ایجاد میکنید.
  3. static views : در بحث مدیریت حافظه همیشه سعی کنید که طرف static views ها نروید چون این View ها هیچوقت از بین نمیروند و همیشه در دسترس هستند.
  4. غیر فعال کردن listeners ها : در مسیر توسعه یک اپ بدون شک از listener های زیادی داخل اکتیویتی یا فرگمنت ها استفاده میکنیم ولی خیلی وقت ها فراموش میکنیم که باید این listener ها را غیر فعال یا unregister کنیم. این مسئله به سادگی باعث ایجاد کمبود حافظه میشود.برای غیر فعال کردن listener ها بهتر است که این کار و در متد onDestroy() انجام دهیم.
  5. Bitmap : ابجکت های Bitmap بسیار بزرگ هستند دلیل آن هم ساده است برای اینکه معمولا تمام پیکسل های یک عکس و داخل خودشون ذخیره می کنند. در حالت پیشفرض با خود اندروید مدیریت مموری این Bitmap ها را به عهده دارد اما وقتی به صورت دستی از این Bitmap ها استفاده می کنیم باید حتما از متد recycle() هم در اخر استفاده کنیم همچنین سعی کنید همیشه سایز عکس های داخل اپ خودتون و در کمترین میزان ممکن قرار دهید.
#مدیریت_حافظه_در_برنامه_نویسی #مدیریت_حافظه_در_اندروید #مدیریت_ram_در_اندروید #برنامه_نویسی_اندروید #میزان_حافظه_در_android
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....