درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
دوره های مرتبط
دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
مدرس: حسین احمدی
این دوره را در 17 قسط خریداری کنید
دوره آموزشی طراحی رابط کاربری با JavaFX
مدرس: hharddy
این دوره را در 13 قسط خریداری کنید
دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
مدرس: dr-iman
این دوره را در 13 قسط خریداری کنید
دوره تخصصی آموزش متن کاوی با ابزار NLTK
مدرس: taghandiki
این دوره را در 11 قسط خریداری کنید
دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
مدرس: Amirhossein Fazlikhani
این دوره را در 12 قسط خریداری کنید
دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
مدرس: taghandiki
این دوره را در 20 قسط خریداری کنید
ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
مدرس: مهدی عادلی
این دوره را در 2 قسط خریداری کنید
دوره آموزشی Exploit نویسی به زبان Perl
مدرس: dr-iman
این دوره را در 7 قسط خریداری کنید
دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
مدرس: حسین احمدی
این دوره را در 11 قسط خریداری کنید
دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
مدرس: مهدی عادلی
این دوره را در 17 قسط خریداری کنید

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

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

Image


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

--
  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() هم در اخر استفاده کنیم همچنین سعی کنید همیشه سایز عکس های داخل اپ خودتون و در کمترین میزان ممکن قرار دهید.
برچسب ها
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
هیچ نظری ارسال نشده است

    برای ارسال نظر ابتدا به سایت وارد شوید

    arrow