2
دانشجوی کارشناس ارشد دانشگاه علم و صنعت ایران، ایران، تهران
3
دانشجوی کارشناس ارشد دانشگاه آزاد اسالمی قزوین، ایران، قزوین
چکیده
با توجه به گسترش استفاده از دستگاههای همراه باتریمحور از جمله گوشیهای موبایل، لوحهها، ساعتهای نسل جدید و غیره، شرکتهای بزرگ نرمافزاری که در زمینه تولید و توسعه برنامههای موبایلی فعالیت میکنند توجه ویژهای به استفاده بهینه از باتری و منابع دستگاه پیدا کردهاند و این مقوله تبدیل به یکی از عوامل رقابتی در عرصه برنامههای موبایلی شده است. مقالات و پژوهشهای زیادی در زمینه بازسازی کد نرمافزاری با هدف استفاده بهینه از باتری بخصوص در زمینه برنامههای اندرویدی انجام شده است که بعضاً منجر به تولید ابزارهای بازسازی نیز شده است. منظور از بازسازی کد، تغییر ساختار برنامه یا تغییرات در سطح کد برنامه به منظور تصحیح نابسامانیهای کد، بدون تغییر رفتار و خروجی برنامه است. از جمله این ابزارها میتوان به Leafactor، AutoRefactor و ابزارهای موجود در محیطهای توسعه یکپارچه که به شکل افزونه هستند اشاره کرد. در این پژوهش، 8 مورد از بازسازیهای رایج موجود و پرکاربرد در زمینه توسعه برنامههای اندرویدی از لحاظ بهینهسازی استفاده از باتری و منابع مورد بررسی قرار گرفتهاند. برخی از این بازسازیها عبارتند از: Draw allocation، Wake lock، ViewHolder، Member ignoring method و Overdraw. در این پژوهش نشان داده شد که با انجام بازسازی بر روی نابسامانیهای کد ذکر شده، مصرف انرژی میتواند بهبود پیدا کند. بهعنوان مثال، بازسازی ViewHolder میتواند به بهبود 13.9 درصدی مصرف انرژی و بازسازی Overdraw میتواند به بهبود 13.2 درصدی منتهی شود. همچنین، با مقایسه با روشهای کروز و دیگران و کوتو و دیگران نشان داده شد که الگوریتمهای بازسازی پیشنهادی در این پژوهش بخصوص در مورد دو بازسازی ذکر شده توانستهاند عملکرد بهتری در حوزه کاهش مصرف انرژی نشان دهند.