درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من
    اطلاعات مطلب
      مدرس/نویسنده
      حسام رسولیان
      امتیاز: 26872
      رتبه:50
      26
      42
      6
      88
      دانشجوی کارشناسی IT برنامه نویس Java, PHP,JS CCNA,LPIC پروفایل کاربر
      دوره های مرتبط
      دوره های توسینسو ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      مدرس: مهدی عادلی فر
      این دوره را در 2 قسط خریداری کنید
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      مدرس: امیر حسین فضلیخانی
      این دوره را در 12 قسط خریداری کنید
      دوره آموزشی ساخت ربات تلگرام
      دوره آموزشی ساخت ربات تلگرام
      مدرس: کاظم تقندیکی
      این دوره را در 8 قسط خریداری کنید
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      مدرس: کاظم تقندیکی
      این دوره را در 20 قسط خریداری کنید
      با خرید این دوره مبلغ 7,040 تومان هدیه بگیرید
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 27 قسط خریداری کنید
      با خرید این دوره مبلغ 8,110 تومان هدیه بگیرید
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 17 قسط خریداری کنید
      با خرید این دوره مبلغ 8,470 تومان هدیه بگیرید
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 17 قسط خریداری کنید
      با خرید این دوره مبلغ 5,445 تومان هدیه بگیرید
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      مدرس: ایمان جوادی
      این دوره را در 13 قسط خریداری کنید
      دوره آموزشی طراحی رابط کاربری با JavaFX
      دوره آموزشی طراحی رابط کاربری با JavaFX
      مدرس: حسام رسولیان
      این دوره را در 13 قسط خریداری کنید
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      مدرس: کاظم تقندیکی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی برنامه نویسی حرفه ای پایتون به زبان ساده
      دوره آموزشی برنامه نویسی حرفه ای پایتون به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 23 قسط خریداری کنید
      با خرید این دوره مبلغ 7,425 تومان هدیه بگیرید
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی Exploit نویسی به زبان Perl
      دوره آموزشی Exploit نویسی به زبان Perl
      مدرس: ایمان جوادی
      این دوره را در 7 قسط خریداری کنید
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 78 قسط خریداری کنید
      با خرید این دوره مبلغ 82,245 تومان هدیه بگیرید
      تاریخ 6 ماه قبل
      نظرات 0
      بازدیدها 121
      در برنامه نویسی اندروید مدیریت حافظه یکی از مشکلات اساسی در مسیر توسعه اپ می باشد که آن هم وجود منابع کم گوشی های هوشمند نسبت به کامپیوتر ها می باشد. زبان جاوا جزو زبان های 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() هم در اخر استفاده کنیم همچنین سعی کنید همیشه سایز عکس های داخل اپ خودتون و در کمترین میزان ممکن قرار دهید.
      برچسب ها
      مطالب مرتبط

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

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

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

        arrow