Akun käyttöikä on edelleen yksi mobiililaitteen käytettävyyden kriittisimmistä tekijöistä, erityisesti käyttäjille, jotka luottavat iOS-sovelluksiinsa koko päivän ajan. Sovellusten kasvaessa ominaisuusrikas, jatkuva käsittely, verkkotoiminta ja korkean resoluution grafiikka kasvavat, mikä johtaa nopeampaan akun tyhjenemiseen. Tämä ei ainoastaan turhauta käyttäjiä vaan voi myös johtaa alhaisempiin säilytysasteisiin ja negatiivisiin arvosteluihin. Onneksi yhdessä vakiintuneiden parhaiden käytäntöjen ja nykyaikaisten iOS-apiloiden avulla kehittäjät voivat vähentää merkittävästi energiankulutusta ilman, että se heikentää sovelluksen suorituskykyä. Tämä artikkeli tutkii päälähteitä akun tyhjenemisestä iOS-sovelluksissa ja tarjoaa toimintakelpoisia strategioita akun käyttöiän optimoimiseksi.

Akun kulutuksen ymmärtäminen iOS-sovelluksissa

Akun käyttöiän optimoimiseksi kehittäjien on ensin ymmärrettävä, miten iOS-sovellukset kuluttavat energiaa. Lähes jokainen laitteen toiminto vetää energiaa akusta, mutta jotkin toiminnot ovat paljon vaativampia kuin toiset. Akun kulutuksen pääluokkia ovat:

  • Väitös ja taustavalo:[ Näytössä on usein suurin virrankuluttaja. Suuri kirkkaus, pitkät näyttöajat ja usein animaatioiden tai tehottomien käyttöliittymäpäivitysten nykäykset lisäävät viemärin tehoa.
  • Verkkotoiminta:[] Solumodeemit ja Wi-Fi-radiot käyttävät merkittävää tehoa tietojen lähettämiseen tai vastaanottamiseen. Usein pienet verkkopuhelut ovat erityisen tehottomia, koska radion on aktivoitava, kytkettävä ja katkaistava uudelleen jokaisen istunnon aikana.
  • Taustatehtävät:[ Sovellukset, jotka jatkavat prosessien kulkua taustalla ... kuten sijaintipäivitykset, taustahaku tai VoIP-yhteydet ... voivat estää laitteen pääsyn matalatehoiseen tilaan.
  • PU ja GPU Load:[ Kompleksiset laskelmat, raskas grafiikka renderöinti ja liialliset silmukat pitävät prosessorin aktiivisena, vetovoima suhteessa kuormaan.
  • Anturin käyttö:[] Jatkuva pääsy sensoreihin, kuten GPS, kiihtyvyysmittari tai mikrofoni, voi tyhjentää akun nopeasti, varsinkin jos sovellus ei hallitse näytteenottonopeuksia tai käytä oikeita tarkkuustasoja.

Sovelluksen päätekijän tunnistaminen edellyttää profilointia työkaluilla, kuten Xcode. Energialoki näyttää yksityiskohtaiset erittelyt suorittimen käytöstä, verkon toiminnasta ja paikan käytöstä ajan mittaan, mikä mahdollistaa kohdennetun optimoinnin.

Kehittäjien avainstrategiat

Tehokas akun optimointi edellyttää kerrostettua lähestymistapaa: energiatehokkaiden sovellusrajapintojen käyttöä, tarpeettoman työn vähentämistä ja järjestelmän tehotilojen kunnioittamista. Alla ovat vaikuttavimmat sovellukset, jotka vaativat jatkuvaa käyttöä.

Minimoi taustatoiminnot

Taustan suoritus on suuri akun tyhjennys. iOS tarjoaa useita mekanismeja taustatyöhön, mutta jokaista tulisi käyttää harkiten. [[]Taustan nouto[] mahdollistaa sovellusten lataamisen pieninä määrinä tietoa ajoittain, mutta taajuus on järjestelmähallinnoitu. Aseta [ suurimmalle hyväksyttävälle välille (esim. ], jos taustapäivityksiä ei tarvita). Tehtävien osalta, jotka todella vaativat taustan valmistumista, käytä tausta-tehtävää (BGTaskScheduler)[ sen sijaan, että se pitäisi sovelluksen elossa. Tämä API lykkää työn aikoja, jolloin järjestelmä on riittävästi energiabudjettia, vähentää häiriötä käyttäjän edessä olevan toiminnan kanssa.

Jos sovelluksesi käyttää sijaintipalveluja, valitse asianmukainen tarkkuustaso. Jatkuvan korkean tarkkuuden GPS-päivityksen sijaan käytä [ aluetta [ tai merkittävää muutosta vaativa sijaintipalvelu[[] karkean sijainnin seurantaan. Esimerkiksi kuntosovellus, jonka tarvitsee tietää vain, kun käyttäjä tulee puistoon tai lähtee puistosta, voi käyttää alueen seurantaa, joka on paljon tehokkaampaa kuin jatkuva GPS-äänestys. Harkitkaa myös [] ominaisuuden asettamista [ []]:lle, tämä kertoo iOS:lle optimoimaan virran jalankulkijoiden tai pyöräilyn nopeuden.

Optimoi verkon käyttö

Verkon toiminta on valtava akkuvuoto, erityisesti soluissa.

  • Batch verkkopyynnöt:[] Sen sijaan, että tekisi monia pieniä API-puheluja, koostaisi tietoja harvemmiksi, suuremmiksi pyynnöiksi. Radio viettää vähemmän aikaa suurtehon lähetystilassa, kun se voi lähettää dataa ja sitten joutokäynti.
  • Käytä progressiivisia latauksia:[] Suuriin resursseihin, kuten kuviin tai videotiedostoihin, lataa vain tarvittavat tiedot välittömästi. Käytä aluealueita (HTTP-aluepyynnöt) tai kokotietoisia sovellusrajapintoja.
  • Käytä HTTP / 2 tai QUIC: Nämä protokollia vähentää yhteyttä yläpuolella ja mahdollistaa multipleksoituja virtoja, alentaa energiankulutusta per pyyntö.
  • Adopt NURLSession kunnolla:[ Käytä taustaistuntoja siirroissa, joiden pitäisi jatkua, vaikka sovellus olisi keskeytetty. Etualalla istuntoja, aseta [ asianmukaisesti ja käytä [ välttää retriisejä huonojen yhteyksien aikana.
  • Compress hyötykuormat:[ Käytä gzip tai Brotli pakkaus palvelimen puolella. Pienempi data vähentää lähetysaikaa ja radiotehoa.

Harkitse push-ilmoitusten käyttämistä kyselyn sijaan. Työntö on energiatehokkaampaa, koska järjestelmä ylläpitää yhtä jatkuvaa yhteyttä kaikkiin sovelluksiin ja sovellus herää vain, kun uusia tietoja saapuu. Ei-kriittisiä päivityksiä varten käytä taustatyöntöä etäilmoituksilla[ (hiljaiset työnnöt) säästeliäästi, koska ne vielä käyttävät tehoa käsittelyyn.

Tehokas koodin suoritus

Tehottomat algoritmit ja liiallinen suorittimen käyttö ovat piilotettuja akun tyhjennystiedostoja. Profiili koodi Xcode.s Aikaprofilaattori[] tunnistaakseen hotspots. Yhteisiä ongelmia ovat:

  • Tarpeettomat äänestyssilmukkaa:[ Käytä ajastimia vain silloin, kun se on välttämätöntä; aseta mieluummin puhelut tai puhelut, jotka järjestelmä laukaisee olosuhteiden muuttuessa.
  • ]Kova laskenta päälangalla:[] Lataa työ taustajonoihin (käyttäen [] tai ) pitämään pääjuoksusilmukka vapaana käyttöliittymäpäivityksiä varten.
  • Laiha lastaus:[ Lataa resurssit (kuvat, tietomallit, katseluohjaimet) vain silloin, kun sitä tarvitaan, sen sijaan että se lataisi kaiken sovelluksen laukaisussa.
  • Vähennä objektin luonti yläpuolella:[ Käytä esineitä mahdollisuuksien mukaan uudelleen, erityisesti tiukoissa silmukoissa (esim. kun käsittelet tietoja antureista).

Korkeataajuisten toimintojen, kuten Core ML inference- tai Metal Shader -suorituksen, iOS-laitteissa on oma laitteisto (Neural Engine, GPU), joka on paljon tehokkaampi kuin suoritin. Varmista, että käytät sopivinta API-rajapintaa työmäärääsi varten . Esimerkiksi käyttämällä []Laitteistotarkistusta[] tai ARKit laitteiston kiihtyvyys on parempi kuin mukautetut CPU-pohjaiset ratkaisut.

Tehonlähteen sovellusliittymät

iOS tarjoaa useita sovellusrajapintoja, jotka on suunniteltu erityisesti alhaiseen virrankulutukseen. Näiden avulla voidaan automaattisesti tallentaa akku ilman räätälöityä optimointia:

  • NURLSession taustakonfiguraatio: Kuten edellä mainittiin, se käsittelee siirtoja erillisessä prosessissa, joka on vähemmän tehovaltainen kuin tulosaineisto.
  • AVCaptureSession .photo output:[] Valitse kameraa käytettäessä [/1]] esiasetettu hiljaa kuvia sijaan video . video vaatii jatkuvaa anturin lukeminen ja käsittely, joka valuu nopeasti.
  • Korkea sijainti ... päivitykset:[] Taustalla ollessasi sijaintipäivityksiä voidaan lykätä .
  • Energiakojelauta:[] Käytä [] sovelluksen käyttäytymistä, kun käyttäjä on ottanut käyttöön Low Power Mode. Vähennä animaatioita, pienempiä kehysnopeuksia, poista ei-olennainen synkronointi tai vaihda huonolaatuisiin resursseihin.

Laitteiston optimointi

Moderneihin iPhoneihin kuuluvat voimanhallintalaitteet kuten ]M-sarjan liikekoodauskoodauslaitteet[ ja erikoiset koodaus-/dekoodauslaitteet. Lataa näihin yksiköihin tietojenkäsittely aina kun mahdollista. Käytä esimerkiksi laitteistoa käyttäen H.264/H.265-koodauskoodaus ohjelmistokoodauksen sijaan. Samoin ydin ML-mallit voivat toimia hermomoottorissa -laitetyypin kautta päättelyä varten, jossa käytetään murto-osaa GPU:n tai CPU:n tehosta.

Myös harkita [Metaalin suorituskyvyn varjostimet[] kuvan käsittelyyn . Ne toimivat GPU:lla, joka on energiatehokkaampi kuin suorittimen rinnakkaiset työkuormat. Aina testata fyysisillä laitteilla, koska Simulaattori ei mallinna tehokäyttäytymistä tarkasti.

Käyttäjänsuojaavia vinkkejä ja asetuksia

Vaikka kehittäjät hallitsevat suurta osaa virrankulutuksesta, käyttäjillä on myös vaihtoehtoja pidentää akun käyttöikää raskaan sovelluksen käytön aikana. In-app-kehotukset voivat ohjata käyttäjiä parempiin asetuksiin:

  • Alempi näytön kirkkaus:[ Kannusta käyttäjiä vähentämään manuaalisesti kirkkuutta tai ottamaan käyttöön automaattisen kirkkauden (Asetukset > Näyttö & Kirkkaus).
  • Käytä matalatehoista tilaa:[ Ehdota, että otat käyttöön matalatehotilan, kun he odottavat jatkuvaa käyttöä (Asetukset > Akku). Järjestelmä vähentää automaattisesti taustan toimintaa ja suorituskykyä.
  • Vähennä virkistysnopeus:[] ProMotion-laitteilla (120Hz-näytöllä) käyttäjät voivat rajoittaa kehysnopeuden 60Hz:iin Asetuksissa > Esteettömyys > Liike > Rajakehysnopeus. Sovellukset voivat myös kunnioittaa tätä poistamalla 120Hz:n animaatioita, kun niitä ei tarvita.
  • Lähetä tarpeettomia sovelluksia:[] Vaikka iOS käsittelee monitoiminnat tehokkaasti, taustasovellukset kuluttavat silti joitakin resursseja. Neuvo käyttäjiä pyyhkäisemään pois sovelluksia, joita he eivät aktiivisesti käytä.
  • Sammuta tarpeettomat palvelut:[ Bluetooth, Wi-Fi ja sijaintipalvelut voidaan sulkea, kun niitä ei tarvita. Paikan päällä käyttäjät voivat asettaa sovellusoikeudet .

Voit myös lisätä []Low Power Mode -tunnistuksen [ sovellukseen vähentääksesi automaattisesti resurssien käyttöä (esim. videon laadun heikkeneminen, taukojen synkronointi, äänestystiheyden vähentäminen).

Päätelmät

Akkujen käyttöiän optimointi iOS-sovelluksissa ei ole kertaluonteinen tehtävä vaan jatkuva prosessi, joka edellyttää laitteiston, järjestelmäpalvelujen ja sovelluskoodin välisen vuorovaikutuksen ymmärtämistä. Profiloimalla varhaisessa vaiheessa, käyttämällä tehotehokkaita sovellusliittymiä, minimoimalla taustatyötä ja kunnioittaen käyttäjän vallanhallintavalintoja, kehittäjät voivat luoda sovelluksia, jotka tuottavat erinomaisia jatkuvia käyttökokemuksia ilman akun tyhjentämistä. Nämä käytännöt parantavat käyttäjien tyytyväisyyttä, vähentävät churnia ja auttavat laitteita kestämään pidempään maksujen välillä. Lisätietoja saat Apple. -Battery State API[-Battery Diagnostics- ja -App Life Cycle[-Battery State API-Battery State API[[-]-Batterin virallinen dokumentaatio.].