آموزش الگوی طراحی repository 1.5 (2)

انتخاب الگوی طراحی repository انتخاب معماری مناسب با پروژه دغدغه همیشگی برنامه نویس هاست. متاسفانه هیچ کدام از معماری های موجود پاسخگوی تمام نیازهای برنامه نیستند. راه حل این مشکل توجه به این مورد است که قصد مدیریت کدام قسمت از پروژه را دارید. خود این پاسخ وابسته به موارد متعددی ست. وقتی این مورد repository یا منبع داده ای باشد که برنامه شما از آن تغذیه می کند، راهکارهای مفیدی برای نوشتن کد تمیز و قابل ارجاع وجود دارد. ممکن است لازم باشد منطق برنامه و دسترسی به داده ها در منطق...

افزایش عمر باتری هنگام استفاده از Retrofit 2

استفاده از cache در Retrofit 2 Retrofit 2 کتابخانه قدرتمند برای ارتباط با سرور و دریافت اطلاعات می باشد. هنگام تعامل با سرور موارد زیادی وجود دارند که باید مدیریت شوند. کتابخانه Retrofit 2 به خوبی از عهده این کار بر می آید. پیشتر در مقاله ای به آشنایی و کار با این کتابخانه پرداخته ایم. در این مقاله پیاده سازی قدم به قدم کتابخانه Retrofit در پروژه اندرویدی را بررسی نموده ایم. هنگام تعامل با سرور مواردی باید دانلود شوند. از بین آنها مواردی وجود دارند که تکراری هستند و نباید هر بار که برنامه با...

مدیریت ترد ها

از بین بردن تردها در جاوا
از بین بردن ترد ها در جاوا یک ترد به شکل خودکار با اجرای کامل متد run() از بین می رود. اما ممکن است به اقتضای برنامه نیاز باشد متوقف شده یا از بین برود. برای چنین منظوری قبل تر از متدهای suspend()، resume() و stop() استفاده می شد. اما این متدها به خاطر مشکلاتی که ایجاد می کردند منسوخ شدند. روش های بهتر برای توقف یا جلوگیری از اجرای یک ترد استفاده از یک متغیر Boolean یا متد Thread.interrupt() است. استفاده از یک متغیر Boolean به سادگی مقدار این متغیر را در زمان لازم برای خروج به true تغییر می دهیم. class...

Leak Canary برای شناسایی نشت حافظه در اندروید

کتابخانه Leak Canary برای شناسایی منشا نشت حافظه در اندروید
Leak Canary چیست؟ Canary یک کتابخانه متن باز است که با هدف تشخیص نشت حافظه در اندروید، توسطSquare توسعه یافته است.پیشتر در این مقاله به چگونگی و چرایی نشت حافظه پرداخته ایم. در این مقاله نیز به بررسی شناخت منبع نشت حافظه در برنامه، به کمک کتابخانه Leak Canary می پردازیم. کتابخانه Leak Canary به سادگی روی پروژه شما ست شده و موجب تشخیص دلیل نشت حافظه در برنامه مورد نظر خواهد شد. مثالی از چگونگی ایجاد نشت حافظه کدهای بسیاری منجر به نشت حافظه می گردند. اما یکی از متداول ترین آنها این است که درون...

انواع راهکارهای پیشگیری از نشت حافظه (memory leak) 4.5 (2)

memory leak چیست و چگونه اتفاق می افتد؟ memory leak میتواند با وجود garbage collection حادث شود. در یکی از مقاله های پیشین به بررسی کارکرد garbage collector و مدیریت حافظه پرداختیم. اما می دانیم با وجود این فرآیند احتمال بروز نشت حافظه  وجود دارد. وقتی objectهای زیادی بدون استفاده در heap وجود داشته باشند که هم چنان از طرف stack مورد ارجاع قرار میگیرند نشت حافظه اتفاق می افتد. در چنین حالتی garbage collector  حافظه درگیر شده را آزاد نمیکند. [caption id="attachment_5175" align="aligncenter" width="650"] نشت حافظه در اندروید[/caption] اما چه...

مدیریت حافظه در اندروید ۴٫۵ (۴)

مدیریت حافظه android
مدیریت حافظه در اندروید چگونه است؟ مدیریت حافظه در اندروید حین توسعه یک برنامه امری ضروری و حیاتی ست. با استفاده از این مقاله می توانید استفاده از حافظه را حین توسعه برنامه اندرویدی بهبود دهید. اندروید از سیستم pagging و mmap برای مدیریت حافظه استفاده می کنه. روند کار به این صورت است که تا شما کاملا از برنامه خارج نشوید هیچ کدام از بخش های درگیر حافظه مرتبط با برنامه آزاد نخواهند شد. اندازه heapی که به برنامه اختصاص داده می شود محدود است. از 2MB شروع می شود و بیشترین مقدار که به...