Italian Info debug release App

LucaMs

Expert
Licensed User
Longtime User
Di solito non uso DBUtils (solo provato, decenni fa :D).
Ho scaricato adesso l'ultima versione, B4X.
Il commento del metodo "CopyDBFromAssets":

B4X:
'Copies a database file that was added in the Files tab. The database must be copied to a writable location.
'This method copies the database to the storage card. If the storage card is not available the file is copied to the internal folder.
'The target folder is returned.
'If the database file already exists then no copying is done.

Ovvero, tenta di copiare il DB in una eventuale card esterna (mah, non mi piace come scelta). Se questa non c'è, il file viene compiato nella directory "interna".
Non ho ancora guardato il codice; anzi, lo faccio adesso...
Ecco, non è così, non tenta di salvare su una card esterna ma sull DirDefaultExternal, che è sempre una memoria interna. Questa, evidentemente, è accessibile anche agli explorer, a differenza della DirInternal (motivo per il quale al posto tuo userei direttamente la DirInternal!)
 

LucaMs

Expert
Licensed User
Longtime User
stesso metodo funzionante su di un Motorola, quindi è giusto vedere solo i files che non crea l'applicazione ma solo quelli che si creano manualmnte in dir assets:
DataBase, Files di testo, immagini ecc.ecc.
Gli explorer (sul dispositivo o quello di windows) NON vedranno i file che inserisci manualmente nella cartella Files dell'applicazione, ovvero nel tab Files!
Innanzitutto questi stanno sul PC; poi, in compilazione, vengono inseriti nell'apk. Dove Android vada a metterli non ne ho idea, ma sicuramente NON sono accessibili agli explorer.

Quelli che crei tu a runtime, come ad esempio un file di testo o un db, decidi tu dove metterli (sempre a runtime); il posto migliore è sempre la DirInternal, affinché gli explorer (e le altre app!) non possano accedervi.
 

Fulvio75

Well-Known Member
Licensed User
Ok le app sono a mio uso personale quindi mi è utilissimo vedere questi files ?
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Ripeto:

File.DirAssets e File.DirInternal sono accessibili solo dal programma stesso, non sono accessibili dall'esterno con un explorer

File.DirAssets è a sola lettura, sono i files che hai aggiunto al tuo progetto e sono dentro al file APK

File.DirInternal è a lettura e scrittura e serve per memorizzare dati del programma che non vuoi siano accessibili ad altri programmi

il tuo database, come si vede dall'immagine che hai postato, è su Android/data/NomeDelProgramma/files che è la File.DirDefaultExternal

su questa cartella ci puoi leggere/scrivere (non serve richiedere all'utente i permessi) e ci puoi accedere anche da un explorer (sia in locale sia da un PC collegato a cavo USB)

Fatto a mano con SQLite viewer e messo in quello che hai detto tu e lo vedo

con SQLite viewer hai creato il database e lo hai messo sulla File.DirDefaultExternal, ecco perchè lo vedi senza problemi

Sergio
 

Fulvio75

Well-Known Member
Licensed User
Ripeto:

File.DirAssets e File.DirInternal sono accessibili solo dal programma stesso, non sono accessibili dall'esterno con un explorer

File.DirAssets è a sola lettura, sono i files che hai aggiunto al tuo progetto e sono dentro al file APK

File.DirInternal è a lettura e scrittura e serve per memorizzare dati del programma che non vuoi siano accessibili ad altri programmi

il tuo database, come si vede dall'immagine che hai postato, è su Android/data/NomeDelProgramma/files che è la File.DirDefaultExternal

su questa cartella ci puoi leggere/scrivere (non serve richiedere all'utente i permessi) e ci puoi accedere anche da un explorer (sia in locale sia da un PC collegato a cavo USB)



con SQLite viewer hai creato il database e lo hai messo sulla File.DirDefaultExternal, ecco perchè lo vedi senza problemi

Sergio
Ok ora tutto chiaro grazie
 

Fulvio75

Well-Known Member
Licensed User
Dimenticavo ho fatto di tutto per vedere il db e la domanda più importante non l'ho fatta, ho letto da qualche parte qui nel forum o forse l'ho sognato? che esiste un visualizzatore SQLite per Android... Può essere??
 

Fulvio75

Well-Known Member
Licensed User
A.. ottimo ha lo stesso nome anche per Android, non lo trovavo grazie.
Si installa da b4a vero? Come se fosse un'app creata.
 

amorosik

Expert
Licensed User
Ripeto:

File.DirAssets e File.DirInternal sono accessibili solo dal programma stesso, non sono accessibili dall'esterno con un explorer


Cosa vuol dire che sono accessibili SOLO dal programma?
Sono directory fisiche del file system o roba virtuale mantenuta dal programma che gira?
Perche' se sono reali directory sul file system allora dovrebbero essere visibili anche da un qualsiasi file manager
 

Sagenut

Expert
Licensed User
Longtime User
File.DirAssets è esclusiva dell'IDE di B4A, dove puoi aggiungere files in fase di progettazione come grafica o altro.
Questi files saranno accessibili solo da codice in fase di programmazione e la cartella è di sola lettura.
La File.DirInternal è una directory accessibile in scrittura e lettura ed è esclusiva della tua app.
Comoda per gestire files relativi alla tua app ma che non vuoi esporre agli altri.
Probabilmente sarà visibile su dispositivi su cui è stato fatto il ROOT, ma tendenzialmente quì parliamo sempre escludendo questa opzione.
 

LucaMs

Expert
Licensed User
Longtime User
File.DirAssets è esclusiva dell'IDE di B4A, dove puoi aggiungere files in fase di progettazione come grafica o altro.
Questi files saranno accessibili solo da codice in fase di programmazione e la cartella è di sola lettura.
Stessa cosa anche per B4J e quasi certamente anche per B4I, che non ho e quindi non posso verificare, ma ovviamente sarà così.
 
Top