Просмотр данных SQLite на планшете Android - Браузер баз данных SQLite - PullRequest
4 голосов
/ 22 марта 2012

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

Планшет Motorola Xoom ICS (4.0.3), разработанный на MacBook Pro. Любые предложения о том, что я мог бы использовать для просмотра данных?

программа adb находится в android-sdk-mac_x86 / platform-tools, и я выполняю следующую команду:

. / Adb shell

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

РЕДАКТИРОВАТЬ: я не могу заставить плагин Firefox работать. Кажется, не распознает внешние устройства.

есть идеи? спасибо.

Ответы [ 4 ]

1 голос
/ 23 марта 2012

У меня была похожая проблема - и я решил добавить в свое приложение кнопку, которая при нажатии копировала базу данных на 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 голос
/ 22 марта 2012

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

0 голосов
/ 23 марта 2012

Вот ответ с использованием adb: Изучение баз данных sqlite3 из удаленной оболочки

$ 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 голосов
/ 22 марта 2012

Совершенно иным способом можно было бы рассмотреть использование android библиотеки sqlite sdk , возможно, вы можете использовать ее через cli.

...