Shared Preferences on olennainen ominaisuus mobiilisovelluskehityksessä, jonka avulla kehittäjät voivat tallentaa ja hakea pieniä tietomääriä avain-arvo-pareina. Mekanismi on erityisen hyödyllinen käyttäjäasetusten, sovelluksen tilojen tai muiden konfiguraatiotietojen tallentamiseen, joiden on säilyttävä sovellusistuntojen välillä. Shared Preferences on osa Android-alustaa, ja se tarjoaa yksinkertaisen ja tehokkaan tavan käsitellä pysyviä tietoja ilman monimutkaisia tietokanta-asetuksia.
Kun sovellus käyttää Shared Preferencesia, tiedot tallennetaan XML-tiedostoon sovelluksen sisäiseen tallennustilaan. Näin sovellus voi käyttää ja päivittää tietoja nopeasti, mikä parantaa käyttökokemusta pitämällä käyttäjän valinnat ja asetukset saatavilla ja ajan tasalla. Shared Preferences on suunniteltu kevyeksi ja sovelluskohtaisesti yksityiseksi, mutta sitä ei ole salattu, mikä tekee siitä ihanteellisen valinnan ei-arkaluonteisille tiedoille sovelluksissa, jotka on optimoitu sekä suorituskyvyn että käytettävyyden kannalta.
Shared Preferences on yksinkertainen ja tehokas tapa tallentaa pieniä tietomääriä avain-arvo-pareina laitteen paikalliseen tallennustilaan, jolloin mobiilisovellukset voivat säilyttää käyttäjäasetukset ja sovelluksen tilat istuntojen välillä. Toiminto sopii erinomaisesti käyttäjän valintojen, kuten teema-asetusten tai sen, onko käyttäjä kirjautunut sisään, tallentamiseen, koska se tarjoaa kevyen ratkaisun ilman tietokantaa. Tiedot pysyvät sovelluksen käytettävissä myös sen jälkeen, kun sovellus on suljettu tai käynnistetty uudelleen, mikä varmistaa johdonmukaisen ja henkilökohtaisen käyttökokemuksen. Shared Preferences on erityisen hyödyllinen silloin, kun tarvitaan nopeaa pääsyä pysyviin tietoihin ja tietoturvavaatimukset ovat kohtuulliset, koska tietoja ei ole oletusarvoisesti salattu; salasanoja ja muita salaisuuksia ei pidä tallentaa siihen salaamattomina.
Lisää Shared Preferences:stä
Shared Preferences on olennainen teknologia mobiilisovelluskehityksessä, joka mahdollistaa pienten tietomäärien yksinkertaisen ja tehokkaan tallentamisen avain-arvo-pareina. Menetelmä sopii erinomaisesti käyttäjäasetusten, sovelluksen valintojen ja muiden pysyvien tietojen tallentamiseen, joiden on säilyttävä sovellusistuntojen välillä. Shared Preferences sopii erityisen hyvin tilanteisiin, joissa nopea pääsy tietoihin ja helppokäyttöisyys ovat ratkaisevia, kuten käyttäjäasetuksiin, kirjautumistilaan ja sovelluksen konfiguraatioon.
Teknisesti Shared Preferences tallentaa tiedot XML-tiedostoon, joka sijaitsee sovelluksen sisäisessä tallennustilassa. Kun sovellus haluaa tallentaa tai hakea tietoja, se käyttää tätä tiedostoa API:n kautta, joka hoitaa luku- ja kirjoitusoperaatiot. Tämä tekee Shared Preferencesista sekä tehokkaan että helposti toteutettavan, mikä on suuri etu kehittäjille, jotka haluavat kevyttä tiedonhallintaa ilman monimutkaisia tietokantaoperaatioita.
Shared Preferencesia voidaan käyttää erilaisissa tilanteissa, joista kukin tukee erilaista tietojen käsittelyä:
Käyttäjäasetusten tallentaminen: Shared Preferencesia käytetään käyttäjän määrittämien asetusten, kuten teeman, ilmoitusasetusten tai kielivalinnan, tallentamiseen. Tämä varmistaa, että käyttäjän valinnat säilyvät myös silloin, kun sovellus suljetaan ja avataan uudelleen.
Istunnonhallinta: Shared Preferencesia voidaan käyttää istuntoon liittyvien tietojen, kuten kirjautumistilan tai käyttäjätunnisteen, tallentamiseen, jolloin sovellus muistaa käyttäjän istuntojen välillä ilman toistuvia kirjautumisia. Käyttöoikeustunnisteet ja muut salaisuudet tulee salata ennen tallentamista.
Konfiguraatiotiedot: Sovellukset voivat tallentaa sovelluksen toiminnan kannalta tarpeellisia konfiguraatiotietoja, kuten ominaisuusasetuksia tai oletusarvoja, mikä helpottaa sovelluksen toiminnan säätämistä koodia muuttamatta. Salaiset API-avaimet eivät kuulu Shared Preferencesiin, koska kaikki laitteelle tallennettu voidaan kaivaa esiin.
Yksi Shared Preferencesin suurimmista vahvuuksista on sen yksinkertaisuus ja tehokkuus. Helppo pääsy tietoihin avain-arvo-parien kautta antaa kehittäjien toteuttaa pysyvän tietojen tallennuksen nopeasti ilman, että monimutkaisista tietokantaoperaatioista tarvitsee huolehtia. Tiedot ovat myös vain kyseisen sovelluksen käytettävissä, mikä tarjoaa tietyn tason turvallisuutta ja yksityisyyttä.
Shared Preferencesin vähäinen resurssien kulutus on toinen tärkeä etu. Teknologia vaatii minimaalisesti tallennustilaa ja laskentatehoa, mikä tekee siitä ihanteellisen mobiililaitteisiin, joissa resurssien optimointi on kriittistä. Koska tiedot tallennetaan sovelluksen sisäiseen tallennustilaan, ne ovat myös normaalisti suojassa muiden sovellusten pääsyltä.
Käytännössä Shared Preferences on pitkään ollut vakiotapa tallentaa yksinkertaisia käyttäjätietoja Android-sovelluksissa. Sitä käytetään pitämään käyttökokemus johdonmukaisena ja henkilökohtaisena muistamalla käyttäjän valinnat ja tila. Sitä käytetään myös sovelluksen suorituskyvyn optimointiin vähentämällä toistuvien tietopyyntöjen ja verkkokutsujen tarvetta.
Yhteenvetona Shared Preferences on teknologia, joka yhdistää yksinkertaisuuden ja tehokkuuden ratkaisuksi, joka tekee tietojen tallentamisesta kehittäjille intuitiivisempaa ja helpommin lähestyttävää. Sen kyky toimia ilman monimutkaisia asetuksia ja minimaalisella resurssien kulutuksella tekee siitä tärkeän työkalun nykyaikaisessa sovelluskehityksessä, jossa nopea ja luotettava tietojen käsittely on olennaista.
Usein kysyttyjä kysymyksiä Shared Preferences:stä
Mitä Shared Preferences on ja miten se toimii Android-kehityksessä?
Shared Preferences on Android-kehityksessä mekanismi yksinkertaisten tietojen tallentamiseen avain-arvo-pareina, joita voidaan käyttää sovelluksen eri komponenteista. Menetelmä sopii erinomaisesti pienten tietomäärien, kuten käyttäjäasetusten tai sovelluksen konfiguraation, tallentamiseen, jotka eivät vaadi tietokantaa.
Kun sovellus käyttää Shared Preferencesia, luodaan tiedosto, joka sisältää tallennetut tiedot, ja tämä tiedosto on vain sen luoneen sovelluksen käytettävissä. Tiedot tallennetaan XML-tiedostoon sovelluksen sisäiseen tallennustilaan, mikä suojaa niitä muiden sovellusten pääsyltä tavallisessa, roottaamattomassa laitteessa. Kehittäjät voivat helposti lukea tiedostosta ja kirjoittaa siihen metodeilla, kuten getSharedPreferences(), edit(), putString() sekä commit() tai apply() muutosten tallentamiseksi.
Verrattuna monimutkaisempiin tallennusratkaisuihin, kuten SQLite-tietokantoihin, Shared Preferences on paljon yksinkertaisempi ja nopeampi toteuttaa, erityisesti kun tallennettavana on vain yksinkertaisia tietoja, jotka eivät vaadi jäsenneltyä tallennusta tai monimutkaisia kyselyjä. Tämä tekee Shared Preferencesista tehokkaan valinnan monille sovelluksille, joiden on tallennettava ja haettava pieniä tietomääriä nopeasti ja helposti.
Miten tietoja tallennetaan ja haetaan Shared Preferencesin avulla?
Tiedot tallennetaan Shared Preferencesiin avain-arvo-pareina. Ensin haetaan SharedPreferences-olio, tyypillisesti getSharedPreferencesilla ja tiedostonimellä. Tietojen tallentamiseksi avataan editori edit()-metodilla, arvot lisätään metodeilla, kuten putString tai putBoolean, ja muutokset tallennetaan apply()-metodilla, joka kirjoittaa asynkronisesti, tai commit()-metodilla, joka kirjoittaa välittömästi.
Tiedot haetaan metodeilla, kuten getString tai getInt, määrittämällä avain ja oletusarvo, jota käytetään, jos avainta ei ole olemassa. Uusissa Android-projekteissa Google suosittelee usein DataStorea nykyaikaisempana korvaajana, mutta avainten ja arvojen periaate on sama.
Mitä tietotyyppejä Shared Preferencesiin voidaan tallentaa?
Shared Preferences tukee yksinkertaisia tietotyyppejä: merkkijonoja (String), kokonaislukuja (int), pitkiä kokonaislukuja (long), desimaalilukuja (float) ja tosi/epätosi-arvoja (boolean). Myös merkkijonojoukko (Set of String) voidaan tallentaa.
Monimutkaisempia olioita ei voi tallentaa suoraan. Ne voidaan muuntaa tekstiksi, esimerkiksi JSONiksi, mutta tätä suositellaan vain pienille tietomäärille. Shared Preferences on tarkoitettu kevyille tiedoille, kuten käyttäjäasetuksille, valitulle teemalle tai sille, onko esittely jo näytetty. Suuremmat tai jäsennellyt tiedot kuuluvat tietokantaan, kuten Roomiin, tai tiedostoihin.
Mikä on Shared Preferencesin ja muiden tallennustapojen, kuten SQLiten, ero?
Shared Preferences tallentaa pieniä tietomääriä avain-arvo-pareina laitteella olevaan tiedostoon. Se on helppokäyttöinen, mutta se ei sovellu suurille tai monimutkaisille tietomäärille, eikä varsinaisia kyselyjä voi tehdä.
SQLite, usein Roomin kautta, on relaatiotietokanta, joka pystyy käsittelemään suuria määriä jäsenneltyä tietoa, taulujen välisiä suhteita ja edistyneitä hakuja. Tiedostot sopivat hyvin kuville, asiakirjoille ja muille suuremmille tiedoille. DataStore on Googlen uudempi vaihtoehto Shared Preferencesille, ja se tarjoaa asynkronisen pääsyn. Valinta riippuu tietomäärästä: asetukset Shared Preferencesiin tai DataStoreen, jäsennellyt tiedot tietokantaan.
Miten Shared Preferencesiin tallennetut tiedot suojataan?
Shared Preferencesin tiedot tallennetaan selväkielisenä tekstinä sovelluksen yksityiseen kansioon. Muilla sovelluksilla ei normaalisti ole pääsyä, mutta roottatussa laitteessa tai tiettyjen varmuuskopioiden kautta tiedosto voidaan lukea. Salasanoja, tunnisteita ja muita arkaluonteisia tietoja ei siksi pidä tallentaa salaamattomina.
Arkaluonteiset tiedot voidaan salata ennen tallentamista käyttämällä avaimia, joita säilytetään Android Keystoressa, joka on suunniteltu suojaamaan kryptografisia avaimia. Jetpack-kirjasto androidx.security:security-crypto tarjosi aiemmin tähän tarkoitukseen EncryptedSharedPreferencesin, mutta Google on merkinnyt koko kirjaston, mukaan lukien EncryptedSharedPreferences, EncryptedFile ja MasterKey, vanhentuneeksi versiosta 1.1.0-alpha07 alkaen huhtikuussa 2025. Googlen suositus on sen sijaan käyttää alustan tavallisia API-rajapintoja, kuten SharedPreferencesia, yhdessä Android Keystoren suoran käytön kanssa, jolloin avain luodaan KeyGeneratorilla ja sillä salataan arvot ennen niiden tallentamista. Yleisesti laitteelle tulisi tallentaa mahdollisimman vähän arkaluonteisia tietoja.
Mitä rajoituksia Shared Preferencesia käytettäessä kannattaa pitää mielessä?
Shared Preferences on tarkoitettu pienille määrille yksinkertaisia tietoja. Suuret tietomäärät voivat hidastaa sovellusta, koska koko tiedosto ladataan muistiin, ja commit()-kirjoitus pääsäikeessä voi saada käyttöliittymän nykimään.
Monimutkaisille olioille, suhteille tai kyselyille ei ole sisäänrakennettua tukea, eikä tietoja salata automaattisesti. Tyyppiturvallisuuttakaan ei ole, joten väärä avain tai tietotyyppi huomataan vasta sovelluksen ollessa käynnissä. Useista prosesseista samanaikaisesti tehtyjä muutoksia ei käsitellä luotettavasti. Edistyneempiin tarpeisiin suositellaan DataStorea, Roomia tai salattua tallennusta.
Shared Preferences for dummies
Shared Preferences on näppärä ominaisuus mobiilisovelluksissa, jonka avulla sovellus muistaa pieniä tietoja, joita sille on annettu. Ajattele sitä pienenä muistikirjana, johon sovellus voi kirjoittaa ylös asioita, jotka sen täytyy muistaa myöhemmin. Esimerkiksi sovellus, joka muistaa käyttäjänimen, jotta sitä ei tarvitse kirjoittaa joka kerta sovellusta avattaessa, käyttää Shared Preferencesia tämän tiedon tallentamiseen. Se on helppo ja nopea tapa sovelluksille tallentaa tietoja, jotka eivät vie paljon tilaa ja joiden on oltava saatavilla seuraavalla käyttökerralla.