我成功地将一些数据插入到我的sqlite数据库中(我通过打印出从插入返回的长ID来证实这一点,它不是-1)所以我知道它就在那里。问题是我正在使用SQLite数据库浏览器查看的sqlite数据库位于assets文件夹中(我用它来将已经组成的其他表的数据复制到平板电脑目录中) - 在这种情况下它是/ data / data / packagename / files / -
平板电脑是motorola xoom ICS(4.0.3)并在macbook pro上开发。关于我可以用来查看数据的任何建议?
adb程序在android-sdk-mac_x86 / platform-tools中,我执行以下命令:
./ adb shell
任何想法?感谢。
答案 0 :(得分:1)
我不确定它是否正是您所追求的,但您可以安装paw,一个Android网络服务器..然后安装paw的php插件,然后使用pdo查看数据(以及创建和修改数据)。 如果您需要除编码(类似cli)界面以外的其他内容,那么一旦完成了这项任务,您可以尝试类似this的内容。
答案 1 :(得分: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();
}
}
答案 2 :(得分:0)
使用android sdk's sqlite library可能会有一个完全不同的途径,也许你可以通过cli使用它。
答案 3 :(得分: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