Autore Topic: Spostare immagini da database remoto ad app. Assets?  (Letto 506 volte)

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Spostare immagini da database remoto ad app. Assets?
« il: 19 Giugno 2013, 11:37:00 CEST »
0
Ciao a tutti,
oggi volevo chiedervi un consiglio su come gestire al meglio le immagini nella mia app.
Vi spiego: ho un database remoto al quale mi connetto e dal quale scarico varie informazioni su delle strutture, comprese le foto di queste strutture. Per come ho impostato attualmente la cosa, chi scarica la app e la avvia per la prima volta, avvia anche un primo aggiornamento che consiste nella "sincronizzazione" del database remoto con quello locale sul dispositivo.
Inizialmente questa cosa non creava alcun problema ma adesso che il database sta crescendo e le immagini da scaricare sono sempre di più succede che il primo avvio richiede davvero troppo tempo.
Così avrei pensato di "spostare" queste immagini direttamente dentro la app, allungando quindi il tempo di download dal play store ma accorciando notevolmente quello del primo lancio. E' l'approccio giusto? Se si, potete consigliarmi il modo migliore per ottenere questa cosa? Copio tutte le immagini negli assets? Come faccio a referenziarli poi e ad inserire nel codice un controllo del tipo: se l'immagini ce l'ho già non la riscarico altrimenti la scarico? Grazie mille!  ;-)

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Spostare immagini da database remoto ad app. Assets?
« Risposta #1 il: 19 Giugno 2013, 11:43:40 CEST »
0
E' l'approccio giusto?

Totalmente sbagliato, i package sono immodificabili e i dati presenti sono solo read-only.

La documentazione ufficiale spiega in modo chiaro quello che puoi fare per creare e gestire i dati:

Storage Options | Android Developers
adb logcat | tee /tmp/logcat | grep TAG

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:Spostare immagini da database remoto ad app. Assets?
« Risposta #2 il: 19 Giugno 2013, 12:40:51 CEST »
0
Ciao iceweasel!
Grazie mille per la risposta! Ho letto la pagina web che mi hai consigliato ma purtroppo non sono riuscito ad individuare una soluzione pratica al mio problema. Se l'approccio da me suggerito è sbagliato allora non saprei sinceramente come fare per far sì che chi avvia la app per la prima volta non passi troppo tempo a fare il primo aggiornamento del database.
Grazie mille in anticipo per tutti i consigli che potrai darmi.  ;-)

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Spostare immagini da database remoto ad app. Assets?
« Risposta #3 il: 19 Giugno 2013, 14:26:05 CEST »
0
Crei e scarichi il database la prima volta e poi ti salvi nelle Shared Preferences o in una tabella nel DB o in file la versione o la data o altro, se poi cambiano basta modificare la versione, o aggiornare la data o altro e scaricare i nuovi dati. Sono possibili altre soluzioni.
adb logcat | tee /tmp/logcat | grep TAG

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:Spostare immagini da database remoto ad app. Assets?
« Risposta #4 il: 19 Giugno 2013, 16:04:25 CEST »
0
Ok... ma le foto come le tratto?
Perché la mia procedura non prevede di inserire le immagini sotto forma di blob (ammesso che su sqlite si possa fare) all'interno del database. Le immagini vengono cercate dentro la SD... quindi se metto la app sul play store con il db ma senza le immagini nella sd è tutto inutile... avrò risparmiato si e no 30 secondi su 5 minuti che ci mette a fare questo primo aggiornamento (in aumento...)
Grazie!!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Spostare immagini da database remoto ad app. Assets?
« Risposta #5 il: 19 Giugno 2013, 16:12:49 CEST »
0
Ok... ma le foto come le tratto?
Perché la mia procedura non prevede di inserire le immagini sotto forma di blob (ammesso che su sqlite si possa fare) all'interno del database. Le immagini vengono cercate dentro la SD... quindi se metto la app sul play store con il db ma senza le immagini nella sd è tutto inutile... avrò risparmiato si e no 30 secondi su 5 minuti che ci mette a fare questo primo aggiornamento (in aumento...)

Il navigatore NAVFREE è in uno scenario molto simile al tuo, cioè prima di funzionare deve scaricare le mappe, che sono centinaia di MB. E' l'utente che, dopo averlo installato, legge che deve scaricare la mappa e sceglie quando e in quali condizioni farlo, prima di poterlo usare. E' un vincolo più che ragionevole, se le dimensioni delle foto che citi sono anch'esse necessarie alla fruizione dell'app.

Se invece la dimensione della foto è solamente un quid in più, puoi pensare di scaricare in automatico all'inizio foto più piccole o molto più compresse e proporre all'utente di scaricare quelle a piena risoluzione avvisandolo del tempo.

Altro approccio, metti tutto in assets, poi al primo avvio copi tutto nella SD e da questa situazione vai di scaricamento per i delta-aggiornamenti.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:Spostare immagini da database remoto ad app. Assets?
« Risposta #6 il: 19 Giugno 2013, 16:49:26 CEST »
0
Altro approccio, metti tutto in assets, poi al primo avvio copi tutto nella SD e da questa situazione vai di scaricamento per i delta-aggiornamenti.
Ciao bradipao!!
Quello che dici è proprio quello che intendevo (e tra l'altro non esclude la prima parte del tuo discorso che mi sembra giusta a priori... ovvero mostrare un dialog che avverta l'utente di questa situazione e che sia lui a decidere cosa fare)! Allora si può fare! Hai mica modo di darmi qualche dritta su come fare la copia delle immagini che metterò in assets verso la SD?
Grazie mille!  ;-)