2012-03-22 4 views
4

Я успешно вставил некоторые данные в свою базу данных sqlite (я подтвердил это, распечатав длинный идентификатор, который был возвращен из вставки, и это было нечто, отличное от -1), поэтому i знаете, что он есть. проблема заключается в том, что база данных sqlite, которую я просматриваю с помощью SQLite Database Browser, находится в папке с ресурсами (я использовал это для копирования уже сделанных данных для других таблиц в каталог планшета) - в этом случае это/data/data/packagename/files/-Просмотр данных SQLite на планшете Android - SQLite Database Browser

Таблетка Motorola xoom ICS (4.0.3) и разработка на macbook pro. Любые предложения о том, что я могу использовать для просмотра данных?

АБР программа в Android-СДК-mac_x86/платформенные инструменты и я выполнить следующую команду:

./adb оболочки

  • , но я не получаю где - ничего, кроме вопросов разрешения. Я видел, где кто-то предложил дополнение Firefox, но ... действительно? это лучшее, что есть? Похоже на то, что разработчики будут лучше искать свои данные в базе данных. Если вы собираетесь вставлять материал в базу данных, вы хотите просмотреть содержимое, если вам нужно отлаживать выбранные вами позже (как очень хороший пример).

EDIT: я не могу заставить плагин firefox работать. Кажется, не распознает какие-либо внешние устройства.

любые идеи? Благодарю.

ответ

1

У меня был подобный вопрос - и решил поставить кнопку в мое приложение, что при нажатии, скопировал базу данных на карту памяти SD. Затем вы можете использовать DDMS скопировать базу данных с SD-карты на подключенную машину и запустить все, что вы хотите проверить БД, проверить значения и т.д.

package com.me.myPackage; 

import java.io.File; 

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

import android.content.Context; 
import android.os.Environment; 
import android.widget.Toast; 

public class Utility { 

public static void backupDatabase(Context context) throws IOException { 

    // Open your local db as the input stream 
    String inFileName = PATH_TO_YOUR_DB; 
    File dbFile = new File(inFileName); 
    FileInputStream fis = new FileInputStream(dbFile); 

    File outputDirectory = new File(
      Environment.getExternalStorageDirectory() + "/PATH_FOR_BACKUP"); 
    outputDirectory.mkdirs(); 
    SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATE_TIME_FORMAT_FOR_DATABASE_NAME); // append date time to db name 

    String backupFileName = "/MyApp_" + sdf.format(new Date()) + ".db3"; 
    String outFileName = outputDirectory + backupFileName; 

    // Open the empty db as the output stream 
    OutputStream output = new FileOutputStream(outFileName); 

    // transfer bytes from the inputfile to the outputfile 
    byte[] buffer = new byte[1024]; 
    int length; 
    while ((length = fis.read(buffer)) > 0) { 
     output.write(buffer, 0, length); 
    } 
    // Close the streams 
    output.flush(); 
    output.close(); 
    fis.close(); 

    Toast.makeText(context, "Database backup complete", Toast.LENGTH_LONG) 
      .show(); 
} 

}

1

Я не уверен, что это именно то, что вам нужно, но вы можете установить веб-сервер Android paw .. затем установить php-плагин paw, а затем использовать pdo для просмотра данных (а также для создания и изменения данные). Как только вы получите это, если вам нужно что-то другое, кроме кода (cli-like), вы можете попробовать что-то вроде this.

+0

да это путь избыточен для что я хочу делать. я делаю презентацию об управлении базами данных sqlite на планшете, но если вы даже не можете показать им результаты вставки базы данных, это означает, что вы должны доверять тому, что вы вставили правильно, не имея возможности визуально увидеть его с чем-то вроде SQLite Браузер данных. И поскольку я упомянул, что просто разработчик, как в мире вы должны отлаживать свой код, чтобы убедиться, что вы вставляете правильную информацию? Единственный другой вариант - написать цикл для распечатки результатов. – cspam

0

Совершенно другой авеню можно посмотреть на использование андроида sdk's sqlite library, возможно, вы можете использовать его через cli.

0

Вот ответ с помощью ADB: Examining sqlite3 Databases from a Remote Shell

$ adb -s emulator-5554 shell 
# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db 
SQLite version 3.3.12 
Enter ".help" for instructions 
.... enter commands, then quit... 
sqlite> .exit 
+0

да, но я не использую эмулятор .... как это должно работать? не говоря, что это не будет, но я просто не «вижу» его. – cspam

Смежные вопросы