وبلاگ - مطالب آموزشی

0
338
ترفندهایی برای توسعه دهندگان: بهینه سازی مصرف باتری و دیتا در اپلیکیشن های اندروید – بخش اول

ترفندهایی برای توسعه دهندگان: بهینه سازی مصرف باتری و دیتا در اپلیکیشن های اندروید – بخش اول

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

در این مقاله قصد داریم بر روی دو نکته کلیدی در توسعه اپلیکیشن های موبایل، یعنی عمر باتری و کاهش مصرف دیتا متمرکز شویم. در این مطلب به چندین ترفند و مثال پرداخته می شود که به توسعه دهندگان کمک می کند تا میزان مصرف باتری و دیتای گوشی را به حداقل برسانند، با ما همراه باشید.

بهینه سازی عمر باتری

سی پی یو، سنسورها و صفحه نمایش از جمله قطعات سخت افزاری اسمارت فون هستند که بیشتر از همه باتری مصرف می کنند، سنسورها شامل جی پی اس، NFC، بلوتوث و غیره می باشند.

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

در بخش های بعدی به چندین عامل می پردازیم که در مصرف باتری نقش دارند، علاوه بر این ترفندهایی برای جلوگیری و کاهش خالی شدن باتری ارائه خواهد شد، با ما همراه باشید.

در استفاده از انیمیشن ها محتاطانه عمل کنید

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

ترفند دیگر برای پیاده سازی بهتر انیمیشن ها این است که اجازه دهید سی پی یو بین انیمیشن ها استراحت کند. انیمیشن های پیوسته منجر به تغییر مداوم صفحه می شوند و صفحه نمایش گوشی یکی از مقصران اصلی در خالی شدن باتری می باشد.

منابع عکس ها

رندر کردن بیت مپ های تصویری بزرگ در صفحه نیازمند مصرف باتری بیشتر می باشد. نمی توان از نمایش تصاویر در صفحه چشم پوشی کرد، اما نباید از عناصر گرافیکی که بزرگ تر از حد موردنیازند، استفاده کرد.

اگر Bitmap Assets دارای پیکسل های شفافی هستند که قابل بریدن می باشند، بهتر است این بخش ها را از عکس حذف کنید. بریدن پیکسل های غیرضروری بر روی عملکرد تاثیر گذاشته و باتری کمتری را مصرف می کند.

در استفاده از WakeLocks محتاط باشید

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

WakeLocks جهت فعال نگه داشتن صفحه و سی پی یو مورد استفاده قرار می گیرند و یکی از مثال های رایج از WakeLocks بازی های موبایل و اپلیکیشن های های video playing هستند که صفحه در حالی که کاربر با گوشی تعاملی ندارد، همچنان روشن است.

مشکل WakeLocks این است که اگر از آنها به درستی استفاده نشود، گوشی برای مدت زمان طولانی روشن مانده و باتری و منابع را بیهوده مصرف می کند. به منظور استفاده از WakeLocks بهتر است از دستورالعمل های مندرج در مستندات توسعه دهندگان اندروید استفاده کنید.

استراتژی های بهینه سازی باتری

انجام تمامی تسک ها برای اپلیکیشن حیاتی نیست و می توان برخی از آنها را به زمان دیگری موکول کرد. برای نمونه می توان به بعضی از تسک های پس زمینه اشاره کرد. به تعویق انداختن این تسک ها به زمانی که گوشی در حال شارژ است، تاثیری در عمر باتری نخواهد داشت و برای نمونه ای از این روش می توان به همگام سازی داده ها با وب سرویس اشاره کرد.

یک روش خوب برای پیاده سازی چنین تسک هایی استفاده از JobScheduler API گوگل می باشد، این API مخصوصا برای تسک های پس زمینه ساخته شده تا بتوان آنها را به صورت کارآمد زمان بندی کرد تا همراه با هم با سایر عملیات اپلیکیشن به اجرا درآیند. از این رو در صورتی که اپلیکیشن شما باید تسک های سنگینی را به اجرا درآورد، این مورد را مد نظر قرار دهید.

در مطلب بعدی با ما همراه باشید تا به روش های بهینه سازی مصرف باتری و دیتا بپردازیم.

 

منبع:

https://www.sitepoint.com