Table of Contents
عمر باتری یکی از مهمترین عوامل در قابلیت استفاده از دستگاه تلفن همراه است، به ویژه برای کاربرانی که در طول روز به برنامه های iOS خود متکی هستند، زیرا برنامه ها به غنی تر از ویژگی تبدیل می شوند، تقاضا برای پردازش مداوم، فعالیت شبکه و گرافیک با وضوح بالا، باعث می شود تا کاربران باتری سریع تر تخلیه شوند، اما همچنین می توانند منجر به کاهش نرخ های حفظ و بررسی های منفی شوند، خوشبختانه بهترین روش های استفاده از باتری های قابل توجه و استفاده از برنامه های کاربردی بدون اینکه به خطر انداختن عملکرد سیستم های کاربردی و بهینه سازی بهینه سازی برنامه های کاربردی را فراهم می کند.
درک مصرف باتری در iOS Apps
برای بهینه سازی عمر باتری، توسعه دهندگان ابتدا باید درک کنند که چگونه برنامه های iOS انرژی مصرف می کنند.تقریبا هر عملیاتی که بر روی یک دستگاه انجام می شود، انرژی را از باتری جذب می کند، اما برخی از فعالیت ها بسیار بیشتر از سایر موارد مورد نیاز هستند.
- [FLT: 1 ] صفحه نمایش اغلب بزرگترین مصرف کننده قدرت است، روشنایی بالا، زمان های طولانی صفحه نمایش و مکررا قرمز از انیمیشن یا به روز رسانی های ناکارآمد UI همه افزایش می یابد.
- فعالیت شبکه: مودم های سلولی و رادیوهای Wi-Fi هنگام انتقال یا دریافت داده ها از قدرت قابل توجهی استفاده می کنند، تماس های شبکه کوچک به ویژه ناکارآمد هستند زیرا رادیو باید قدرت را افزایش دهد، اتصال و قدرت را دوباره برای هر جلسه کاهش دهد.
- Background Tasks: برنامه هایی که به اجرای فرآیندهای در پس زمینه ادامه می دهند - مانند به روز رسانی مکان، پس زمینه و یا اتصالات VoIP - می توانند از ورود دستگاه به حالت کم قدرت جلوگیری کنند.
- ] CPU و GPU Load: محاسبات پیچیده، رندر گرافیک سنگین و حلقه های بیش از حد فعال پردازنده را نگه می دارند، قدرت متناسب با بار.
- دسترسی مداوم به سنسور هایی مانند GPS، شتاب سنج یا میکروفون می تواند به سرعت باتری را تخلیه کند، به ویژه اگر برنامه نرخ نمونه برداری را مدیریت نکند یا از سطح دقت مناسب استفاده کند.
شناسایی اینکه کدام یک از این اجزا مقصر اصلی در برنامه شما است، نیازمند پروفایل با ابزارهایی مانند تب تشخیص انرژی Xcode در ابزار است. log انرژی نشان می دهد که تجزیه و تحلیل دقیق استفاده از CPU، فعالیت شبکه و استفاده از مکان در طول زمان، امکان بهینه سازی هدفمند است.
استراتژی های کلیدی برای توسعه دهندگان
بهینه سازی باتری موثر شامل یک رویکرد لایه ای است: استفاده از API های کارآمد انرژی، کاهش کار غیرضروری و احترام به دولت های قدرت سیستم در زیر موثرترین تکنیک ها برای برنامه هایی است که نیاز به استفاده مداوم دارند.
فعالیت های پس زمینه Minimize Background Activity
اجرای پس زمینه یک تخلیه باتری عمده است. iOS چندین مکانیسم برای کار پس زمینه فراهم می کند، اما هر کدام باید به طور عاقلانه استفاده شود. به برنامه ها اجازه می دهد تا مقادیر کمی از داده ها را به صورت دوره ای بارگیری کنند، اما فرکانس سیستم مدیریت شده است.(F:0) تا بزرگترین فاصله قابل قبول (به عنوان مثال، نیاز به پس زمینه های کاربردی برای کاهش کار نیست (F)
اگر برنامه شما از خدمات مکان استفاده می کند، سطح دقت مناسب را به جای به روز رسانی های GPS ثابت بالا انتخاب کنید، از نظارت منطقه ای یا استفاده کنید؛ خدمات مکان تغییر قابل توجه (FLT:3 برای ردیابی مکان ضخیم، به عنوان مثال، یک برنامه تناسب اندام که تنها نیاز به دانستن زمانی که کاربر وارد می شود یا پارک (F2) می تواند به سرعت دقیق تر از تنظیم دقیق تر از پردازش ملک GPS نیز استفاده کند.
بهینه سازی استفاده از شبکه
عملیات شبکه یک تخلیه باتری بزرگ است، به ویژه در مورد استفاده از این بهترین شیوه ها:
- درخواست شبکه: به جای ایجاد بسیاری از تماس های API کوچک، جمع آوری داده ها به درخواست های کمتر، بزرگتر. رادیو زمان کمتری را در حالت انتقال با قدرت بالا صرف می کند، زمانی که می تواند یک انفجار از داده ها و سپس بی کار ارسال کند.
- استفاده از بارگیری های پیشرفته: برای دارایی های بزرگ مانند تصاویر یا فایل های ویدئویی، فقط داده های مورد نیاز بلافاصله دانلود کنید.
- HTTP / 2 یا QUIC: این پروتکل ها سطح اتصال را کاهش می دهند و اجازه می دهند جریان های چندگانه، کاهش مصرف انرژی در هر درخواست.
- Adopt NSURLSession به درستی: استفاده از جلسات پس زمینه برای انتقال که باید ادامه دهد حتی اگر برنامه به حالت تعلیق درآید، تنظیم به طور مناسب و استفاده از برای جلوگیری از تجدید نظر در طول اتصال ضعیف.
- محموله های فشار: استفاده از gzip یا Brotli فشرده سازی در سمت سرور. داده های کوچکتر زمان انتقال و قدرت رادیویی را کاهش می دهد.
استفاده از اعلان هایpush [FLT 1] را به جای نظرسنجی، Push بیشتر از انرژی کارآمد است، زیرا سیستم یک اتصال مداوم برای همه برنامه ها را حفظ می کند و برنامه تنها زمانی بیدار می شود که داده های جدید وارد می شوند.
اجرای قانون کارآمد
در الگوریتم های کارآمد و استفاده بیش از حد از CPU تخلیه باتری پنهان است.کد خود را با شناسه زمان کد برای شناسایی نقاط قوت مشترک شامل:
- حلقه های گرده غیر ضروری: استفاده از تایمر تنها در صورت اجتناب ناپذیر؛ ترجیح دادن تماس های نماینده و یا تماس که سیستم آتش سوزی در زمان تغییر شرایط.
- محاسبه سنگین بر روی موضوعات اصلی: کار را به صف های پس زمینه (استفاده از یا برای حفظ حلقه اصلی اجرا رایگان برای به روز رسانی های UI.
- بارگذاری برش: منابع بار (تصاویر، مدل های داده، کنترل کننده های مشاهده) تنها زمانی که لازم است به جای پیش بارگذاری همه چیز در پرتاب برنامه.
- ایجاد شی پر از سکنه: استفاده از اشیاء در صورت امکان، به ویژه در حلقه های تنگ (به عنوان مثال، هنگام پردازش داده ها از سنسورها).
برای عملیات با فرکانس بالا مانند Core ML inference یا متال سایه دار، دستگاه های iOS سخت افزار اختصاصی (Neural Engine، GPU) دارند که بسیار کارآمد تر از CPU است، اطمینان حاصل کنید که از مناسب ترین API برای کار خود استفاده می کنید - به عنوان مثال، استفاده از FLT:0Device Check [F:1] یا [F:2.
API های قدرت-Efficient
iOS چندین API را ارائه می دهد که به طور خاص برای مصرف کم انرژی طراحی شده اند و استفاده از این سیستم می تواند به طور خودکار باتری را بدون بهینه سازی سفارشی ذخیره کند:
- ] [NSURLSession] با پیکربندی پس زمینه: همانطور که ذکر شد، انتقال در یک فرایند جداگانه که کمتر از فعالیت پیش زمینه ای است.
- AVCaptureSession خروجی عکس: هنگام استفاده از دوربین، پیش فرض برای تصاویر هنوز به جای ویدیو را انتخاب کنید - ویدیو نیاز به خواندن و پردازش مداوم سنسور دارد که به سرعت تخلیه می شود.
- مکان یابی (FLT:1) هنگامی که در پس زمینه اجرا می شود، به روز رسانی مکان می تواند با استفاده از به روز رسانی های کمتر از بیداری، حذف شود.
- داشبورد انرژی: از برای انطباق رفتار برنامه استفاده کنید زمانی که کاربر حالت کم قدرت را فعال کرده است.
بهینه سازی سخت افزار
آیفون های مدرن شامل سخت افزار مدیریت قدرت مانند پردازنده های حرکتی سری و کدر / کدر اختصاصی پردازش داده های بارگذاری شده به این واحدها در هر زمان که ممکن است استفاده کنید. با سخت افزار دیسک سخت افزاری H.264/H265. رمزگذاری شده به جای نرم افزار، به طور مشابه می تواند از طریق یک دستگاه کدگذاری شده در سیستم عامل سیستم عامل سیستم عامل استفاده کند.
همچنین به عنوان مثال، به عنوان یک سایه عملکرد فلزی [FLT 1] برای پردازش تصویر، آنها بر روی GPU اجرا می شوند که از نظر انرژی کارآمد تر از CPU برای کارهای موازی است، همیشه بر روی دستگاه های فیزیکی آزمایش می کنند، زیرا شبیه ساز رفتار قدرت را به درستی مدل نمی کند.
راهنمای کاربر و تنظیمات
در حالی که توسعه دهندگان کنترل بسیاری از مصرف برق را دارند، کاربران همچنین گزینه هایی برای گسترش عمر باتری در طول استفاده از برنامه های سنگین دارند.در برنامه ها می توانند کاربران را به تنظیمات بهتر هدایت کنند:
- روشنایی صفحه نمایش پایین تر: کاربران را تشویق کنید تا به صورت دستی روشنایی را کاهش دهند یا روشنایی خودکار را فعال کنند (تنظیمات > نمایش و روشنایی).
- حالت قدرت پایین قابل اعتماد: پیشنهاد می کند که حالت کم قدرت را زمانی که انتظار استفاده مداوم (Settings > Battery) را دارند، سیستم به طور خودکار فعالیت و عملکرد پس زمینه را کاهش می دهد.
- نرخ تجدید محصول: برای دستگاه هایی با ProMotion (نمایشگاه 120Hz)، کاربران می توانند نرخ فریم را به 60 هرتز در تنظیمات > Accessibility > Motion > Limit Frame Rate محدود کنند.
- برنامه های غیر ضروری را تکمیل کنید: اگرچه iOS چندین کار را انجام می دهد، برنامه های پس زمینه هنوز برخی از منابع را مصرف می کنند.
- خدمات غیر ضروری را خاموش کنید: بلوتوث، Wi-Fi، و خدمات مکان می تواند خاموش شود زمانی که لازم نیست.
همچنین می توانید یک تشخیص (FLT:0) حالت قدرت پایین ( را در برنامه خود اضافه کنید تا به طور خودکار استفاده از منابع را کاهش دهید (به عنوان مثال کیفیت ویدیو پایین تر، همگام سازی مکث، کاهش فرکانس نظرسنجی) این تغییرات را به وضوح به کاربران ارتباط دهید تا آنها درک کنند که تجارت-offs.
نتیجه گیری
بهینه سازی عمر باتری در برنامه های iOS یک کار یک بار نیست بلکه یک فرایند مداوم است که نیاز به درک متقابل بین سخت افزار، خدمات سیستم و کد برنامه دارد.با استفاده از API های انرژی کارآمد، به حداقل رساندن کار پس زمینه گسترده تر و احترام به گزینه های مدیریت قدرت کاربر، توسعه دهندگان می توانند برنامه هایی را ایجاد کنند که تجربه های کاربری عالی را بدون تخلیه این شیوه های رضایت کاربر، بهبود می بخشد و به جزئیات بیشتر کمک می کنند.