2013-03-10 7 views
5

Ho una domanda abbastanza specifica.Qual è il percorso predefinito del database di un'app per Android per un dispositivo non automatizzato ?? È lo stesso di quello radicato?

Prima lasciatemi spiegare cosa sto cercando di fare e quindi il problema.

Fondamentalmente quello che sto cercando di fare è quello di memorizzare un file di database .db esistente in beni cartella e poi dopo l'installazione voglio copiare il file .db dalle attività per il percorso del database di default in Android. Qualcosa di simile a questa pagina risposta [link] How to use an existing database with an Android application.

Problema Per dispositivo senza rooting non è possibile accedere a /data/data/<<package name folder>>. In questo caso, dove viene archiviato il file del database. In altri termini voglio copiare un file dalle risorse alla posizione predefinita delle applicazioni per il database che è DB_PATH = "/data/data/" + context.getPackageName() + "/databases/" nel caso di un dispositivo rooted. Sarebbe lo stesso per il dispositivo senza radici.

+0

sì ma u wont in grado di leggere qualsiasi cosa meno che non si r radicati – DjHacktorReborn

risposta

7

Sì, per entrambi i casi sarà lo stesso percorso. /data/data/<application_package_name>/databases

Ora, su dispositivo non root non è possibile accedere alla directory /data/ della memoria interna del dispositivo. Ecco perché non puoi vedere il file del database.

Se si desidera ottenere il file è possibile copiare file di database dalla memoria interna /data/data/<application_package_name>/databases nella memoria esterna (sdcard) quindi utilizzando DDMS o adb pull ottenere il file di database.

Basta provare il comando adb pull /data/data/<application_package_name>/databases/<database_file_name> dal sistema per ottenere il file di database.

Ma per impostazione predefinita tutto il database dell'archivio applicazioni Android sul percorso di archiviazione interno /data/data/<application_package_name>/databases. E 'applicabile per tutti i dispositivi rooted o non-root.

+0

Sono d'accordo che non posso vedere la directory in un dispositivo senza radici, ma posso eseguire l'operazione presume che la directory '/ dati/data//databases' esiste. Voglio copiare un file dalla cartella ** assets ** nella cartella dei database. Posso copiare assumendo lo stesso percorso di directory per il dispositivo rooted e non-root. – user2129794

+0

Sì, non è possibile visualizzare il file, ma è possibile accedere al file di database all'interno dell'applicazione ed eseguire qualsiasi operazione su di esso. Come file già presente fisicamente lì. – user370305

+0

c'è qualche app che può recuperare il file db da questa posizione? –

0

per default Android memorizza i propri SQLite database a questo collegamento sotto, dove è possibile accedere al file .db utilizzando guscio da prompt dei comandi per ottenere proprietario accesso tramite chmod per il permesso di lettura o scrittura.

String DATABASE_PATH = "/data/data/" + PACKAGE_NAME + "/databases/" + DATABASE_NAME; 

Where: 
String DATABASE_NAME = "your_dbname"; 
String PACKAGE_NAME = "com.example.your_app_name"; 

Per ulteriori dettagli è possibile controllare il seguente link. Click here