torstai 19. tammikuuta 2017

Puhelimen muisti ja ulkoinen kortti


Vaikka nykyisin android toimii suhteellisen hyvin ulkoisen muistikortin
kanssa. Saattaa ulkoisen kortin käytössä ohjelmien asennuspaikkana tulla ongelmia.

Versio 6.x ja uudemat ovat varman paljon ongelmia korjanneet.
Minulle on henkilökohtaisesti kuitenkin käynyt niin, etten luota täysin
ulkoiseen sd-korttiin.
Linux käyttöjärjestelmä tekee sen,että ulkoisela kortilla tulisi olla ext4
tiedostojärjestelmä, jotta se olisi täysin linux yhteensopiva. Ulkoisen levyn nopeus pitäisi olla niin
nopea,että käyttöjärjestelmä ottaisi sen käyttöön (mount) nopeasti ennen käynnistyksen yhdteydessä (init) prosesseja. Juuri tuo epäilyttää ulkoisissa korteissa. Boottaus jäjjestys
on varmasti ensisijaisesti sisäisestä kortista, kun tutkii androidia
adb:llä (android debugging bridge), on huikea ero vanhemman ja uudemman android version antamien tietojen välillä. ”levyt” näkyvät nykyisin, tässä esimerkki.

Debuging pitää olla sallittu ja adb shell puhelimenpäästä sallittu kuten lelvyjen käyttö. Asiasta kiinnostuneet löytää lisätietoa muualta.
Adb shell (enter käynnistää tässä kirjoitettu Honor8 shelliin diskfree komento

df
Filesystem Size Used Free Blksize
/dev 1.8G 116.0K 1.8G 4096
/sys/fs/cgroup 1.8G 12.0K 1.8G 4096
/mnt 1.8G 0.0K 1.8G 4096
/sys/fs/cgroup/pids: Permission denied
/system 3.4G 2.4G 942.8M 4096
/cust 492.0M 409.6M 82.4M 4096
/cache 248.0M 160.0K 247.8M 4096
/splash2: Permission denied
/3rdmodem 59.0M 4.8M 54.2M 1024
/3rdmodemnvm: Permission denied
/3rdmodemnvmbkp: Permission denied
/sec_storage: Permission denied
/mnvm2:0: Permission denied
/modem_log: Permission denied
/storage 1.8G 0.0K 1.8G 4096
/data 24.1G 11.3G 12.7G 4096
/mnt/runtime/default/emulated: Permission denied
/storage/emulated 24.1G 11.7G 12.4G 4096
/mnt/runtime/read/emulated: Permission denied
/mnt/runtime/write/emulated: Permission denied
/mnt/media_rw/373F-12EB: Permission denied
/mnt/runtime/default/373F-12EB: Permission denied
/storage/373F-12EB 14.9G 4.2G 10.7G 32768
/mnt/runtime/read/373F-12EB: Permission denied
/mnt/runtime/write/373F-12EB: Permission denied
1|shell@HWFRD:/ $

Eli ulkoisena korttina 16 Gt toshiba (todellinen tila 14.9 gigaa josta vapaana 10,7 Gt)
Storage emulated,joka on puhelimen sisäinenen levy ,jossa 24.1 gt tilasta jaljella on 12.4 gt)
huomaa että ns rom muisti vie osan 32 gt kortista (hakemisto system 3.4 gt)

Niin ikään näet komennolla ls listauksen puhelimen juurihakemistosta.
Siellä hakemisto sdcard joka edustaa puehlimen sisäistä korttia
Lisäksi näet hakemiston storage, jossa symboliset linkit todellisiin tallennustiloihin
alla esimerkki:
cd storage/
ls -al
drwxrwx--x root sdcard_rw 1970-01-01 02:00 373F-12EB
drwx--x--x root sdcard_rw 2016-10-18 01:12 emulated
lrwxrwxrwx root root 2017-01-09 21:25 sdcard0 -> /storage/self/primary
lrwxrwxrwx root root 2017-01-19 08:29 sdcard1 -> /storage/373F-12EB
drwxr-xr-x root root 2017-01-09 21:24 self


Vaikka noin hyvin asiat on nähtävillä,silti ole vakuuttunut siitä,että kaikki palvelut käynnistyisi mikäli ne on sijoitettu käyttämään ulkoista korttia. Itse asiassa on havaintoja päinvastaisesta
esimerkiksi saavutettavuutta tarvittaessa. Vastaan tuli tapaus jossa talkback ei käynnistynyt
bootissa.
Lisäksi kun itse laitoin ulkoisen muistikortin,joka oli ollut jo vanhassa puhelimessa,
puhelin ilmoitti käynnistyessään, että kortista saattaa aiheutua
suorituskyky ongelmia,koska se ei ollut mikään ultranoepa sd kortti. Tästä syystä kannattaneekin ottaa vakavasti suositukset nopeiden sd-korttien käyttämisen puolesta.
Olen todennut,että oikeuksien antaminen ulkoiseen korttiin, on jotenkin
kökkö, se on kökkö jopa ilman talkbacia. On tullut tuo vastaan mm
purkattujen tiedostojen purussa ulkoiselle kortille.
Ihmettelin asiaa Samsungissa vanhojen android versioiden
kanssa. Aivan helposti se ei minusta nykyisinkään tapahdu, vaikka voi olla
että toimin hassusti. 
Eli otetaanpa tästä nyt sellainen rautalanka väännös. Lataan pakatun tiedoston
puhelimen sisäiseen korttiin kansioon download. Jos avaan ja yritän purkaa
zipin suoraan ulkoiseen korttiin päädyn tilanteeseen jossa järjestelmä
pyytää antamaan käyttämälleni 7zipperille oikeudet ulkoiseen korttiin. Meni
tovi aikaa ennen kuin tajusin miten tuossa pitää toimia :).
Eli mulla ukee puunäkymä jossa näkyy sisäinen muisti ja muistikortti, joka
tässä honor8:ssa näyttää sanovan olevansa toshiba, aiemmissa android
versioissa Samsungissa luki tässä numerorarja :). Kun välitsen ulkoisen
kortin sen jälkeen pitää valita "valitse kaikk"i ja hyväksyä, mikäli haluaa
purkaa zipin mihin tahansa. Ohjelmissa on eroja tuossa ulkoisen kortin
käytössä.
Koska olen siinä mielessä poikkeava näkövammainen, että mulla on ofline karttoja
puhelimessa, ne luontaisesti osaa käyttää ulkoista korttia, samaa ei voi
sanoa kaikista sovelluksista. Kamera sovellus niin ikään voidaan laittaa tallettamaan
kuvat puhelimen ulkoiselle kortille.