如何查看Android设备上的SQLite数据库? [重复] 如何查看Android设备上的SQ

2019-05-08 20:15发布

这个问题已经在这里有一个答案:

  • 在设备上调试SQLite数据库 15个回答

我有一个SQLite数据库的一组数据。 我需要查看设备上的数据库。 我怎么做?

我在DDMS模式检查。 在文件浏览器中的数据是空的。

Answer 1:

下面是一步一步的指示(主要来自其他的答案的组合截取)。 这个工程即使在未解锁装置。

  1. 连接您的设备并启动在调试模式下的应用。

  2. 您可能需要使用adb -d shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/"看到数据库文件名是什么。

注意: com.yourpackge.name是你的应用程序包的名称。 您可以从清单文件中得到它。

  1. 从您的应用程序文件夹中的数据库文件复制到SD卡。

    adb -d shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.sqlite > /sdcard/filename.sqlite"

注意:filename.sqlite是在创建数据库你用你的数据库名称

  1. 拉数据库文件到您的计算机:

    adb pull /sdcard/filename.sqlite

这将数据库从SD卡复制到您的ADB存在的地方。

  1. 安装Firefox的SQLite经理: https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

  2. 打开Firefox的SQLite管理器(工具 - > SQLite的经理),并从上面的步骤3打开数据库文件。

  3. 请享用!



Answer 2:

来自这里 ,你可以试试:

  1. Facebook的开源Stetho库

在的build.gradle:

dependencies {
  // Stetho core
  compile 'com.facebook.stetho:stetho:1.5.0'        
  //If you want to add a network helper
  compile 'com.facebook.stetho:stetho-okhttp:1.5.0'
}

在初始化应用程序对象库:

Stetho.initializeWithDefaults(this);

你可以查看你的数据库在Chrome浏览器chrome://inspect

  1. 另一种选择是这个插件 (不是免费的)
  2. 而最后一个是这样的自由/开源库,看看在浏览器DB内容https://github.com/amitshekhariitbhu/Android-Debug-Database


Answer 3:

我迄今发现的最好方法是使用Android系统的调试,数据库工具。

它令人难以置信的简单使用和安装,只需通过网络添加的依赖,并连接到设备数据库的接口。 无需根电话或加入活动或任何责任。 具体操作步骤如下:

步骤1

添加下面的依赖关系到你的应用程序的摇篮文件并运行应用程序。

debugCompile 'com.amitshekhar.android:debug-db:1.0.0'

第2步

打开浏览器,并访问端口8080手机的IP地址,URL应该是这样: http://YOUR_PHONE_IP_ADDRESS:8080 。 您将看到以下:

注意:您还可以随时通过调用方法从你的代码调试地址URL DebugDB.getAddressLog();

为了得到我的电话的IP我目前使用Ping工具,但也有很多的替代品。

STEP 3

而已!


官方文档中的更多细节: https://github.com/amitshekhariitbhu/Android-Debug-Database



Answer 4:

查看和管理您的Android应用程序的数据库的最佳方法是使用该库DatabaseManager_For_Android 。

这是一个Java活动文件; 只需将其添加到您的源文件夹。 你可以在你的应用程序查看数据库中的表,更新,删除,插入行到您的表。 从您的应用程序内的所有内容。

当开发完成后,从你的src文件夹中删除的Java文件。 而已。

您可以查看5分钟的演示, 为Android SQLite数据库数据库管理器



Answer 5:

你可以这样做:

  1. adb shell
  2. cd /go/to/databases
  3. sqlite3 database.db
  4. sqlite>提示符下,键入.tables 。 这将使你在database.db文件中的所有表。
  5. select * from table1;


Answer 6:

如果您使用的是真实的设备,它的根源并非是的话,那是不可能的,看看在你的数据库FileExplorer ,因为,由于一些安全原因,该文件夹被锁定在Android系统。 如果你是在一个模拟器使用它,你会发现在它FileExplorer ,/数据/数据/你的包名/数据库/ yourdatabse.db。



Answer 7:

Try AndroidDBvieweR

  • 没有必要为您的设备植根
  • 无需导入该应用程序的数据库文件
  • 很少有配置,你是好去!



Answer 8:

我一直在使用SQLite数据库浏览器看到Android开发内容的SQLite数据库。 你要拉从设备数据库文件,然后再打开它的SQLite数据库浏览器。



Answer 9:

虽然这并不查看设备直接在数据库中,我已经出版了一本简单的shell脚本倾倒数据库到本地机器:

https://github.com/Pixplicity/dbdump

它执行这里描述的两种不同的方法:

  1. 首先,它试图让其他用户的文件访问,并试图从设备中拉出。
  2. 如果失败,它在终端到本地机器流文件的内容。 它执行一个额外的特技以除去\r字符一些设备输出到壳。

从这里你可以使用各种CLI或GUI SQLite的应用程序,如sqlite3sqlitebrowser ,浏览数据库的内容。



Answer 10:

跟着这些步骤

1>从下载* .jar文件在这里 。

2>把* .jar文件到文件夹蚀/的dropins /和重新启动Eclipse。

3>在Eclipse的顶部右侧,点击图标DDMS。

4>选择在左侧面板适当仿真器。

5在主面板上的文件浏览器选项卡,转到/data/data/[YOUR.APP.NAMESPACE]/databases。

6>下面的DDMS图标,应该有一个数据库光了一个新的蓝色图标,当你选择你的数据库。 点击它,你会看到一个Questoid sqlite的管理器选项卡打开,查看您的数据。

*注:如果数据库不亮,可能是因为你的数据库没有一个* .db文件扩展名。 确保您的数据库被称为[DATABASE_NAME] .db的

*注:如果你想使用DB不带.db拓:

-下载此Questoid SqLiteBrowser: 下载来回这里 。

-Unzip并把它到Eclipse /的dropins(未插件)。

-检查这个以了解更多信息请点击这里 。



Answer 11:

尝试Facebook的Stetho。

Stetho是一个调试桥Android应用程序,从而实现强大的Chrome开发者工具等等。

https://github.com/facebook/stetho



Answer 12:

步骤1中 复制这个类在你的包

第2步把你的类下面的代码延伸SQLiteOpenHelper。

 //-----------------for show databasae table----------------------------------------

public ArrayList<Cursor> getData(String Query)
{
    //get writable database
    SQLiteDatabase sqlDB =this.getWritableDatabase();
    String[] columns = new String[] { "mesage" };
    //an array list of cursor to save two cursors one has results from the query
    //other cursor stores error message if any errors are triggered
    ArrayList<Cursor> alc = new ArrayList<Cursor>(2);
    MatrixCursor Cursor2= new MatrixCursor(columns);
    alc.add(null);
    alc.add (null);


    try{
        String maxQuery = Query ;
        //execute the query results will be save in Cursor c
        Cursor c = sqlDB.rawQuery(maxQuery, null);

        //add value to cursor2
        Cursor2.addRow(new Object[] { "Success" });

        alc.set(1,Cursor2);
        if (null != c && c.getCount() > 0)
        {
            alc.set(0,c);
            c.moveToFirst();
            return alc ;
        }
        return alc;
    }
    catch(SQLException sqlEx)
    {
        Log.d("printing exception", sqlEx.getMessage());
        //if any exceptions are triggered save the error message to cursor an return the arraylist
        Cursor2.addRow(new Object[] { ""+sqlEx.getMessage() });
        alc.set(1,Cursor2);
        return alc;
    }
    catch(Exception ex)
    {
        Log.d("printing exception",ex.getMessage());
        //if any exceptions are triggered save the error message to cursor an return the arraylist
        Cursor2.addRow(new Object[] { ""+ex.getMessage() });
        alc.set(1,Cursor2);
        return alc;
    }
}

步骤在清单3寄存器

<activity
        android:name=".database.AndroidDatabaseManager"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar"/>

第4步

Intent i = new Intent(this, AndroidDatabaseManager.class);
startActivity(i);


Answer 13:

这适用于Android 6.0(至少可调试的应用程序):

adb shell "run-as your.package.name cp /data/data/your.package.name/databases/you-db-name  /sdcard/file_to_write"

然后,你可以简单地用查看DB aSQLiteManager的实例。



Answer 14:

你可以试试SQLiteOnWeb 。 它管理在浏览器中的SQLite数据库。



Answer 15:

希望这可以帮助你

使用终端第一点你的位置在那里的Andriod SDK是loacted

eg: C:\Users\AppData\Local\Android\sdk\platform-tools>

然后检查连接使用的设备列表

 adb devices

然后运行此命令将文件从设备复制到系统

adb -s YOUR_DEVICE_ID shell run-as YOUR_PACKAGE_NAME chmod -R 777 /data/data/YOUR_PACKAGE_NAME/databases && adb -s YOUR_DEVICE_ID shell "mkdir -p /sdcard/tempDB" && adb -s YOUR_DEVICE_ID shell "cp -r /data/data/YOUR_PACKAGE_NAME/databases/ /sdcard/tempDB/." && adb -s YOUR_DEVICE_ID pull sdcard/tempDB/ && adb -s YOUR_DEVICE_ID shell "rm -r /sdcard/tempDB/*"

您可以在这个路径中的数据库文件

 Android\sdk\platform-tools\tempDB\databases


Answer 16:

有TKlerx的Android的SQLite的浏览器为Eclipse ,它是全功能的Android旁边工作室。 我会推荐它,因为它是非常实用的。

要在设备监视器安装它,只需将JAR文件[Path to Android SDK folder]/sdk/tools/lib/monitor-[...]/plugins



Answer 17:

使用文件资源管理器,你可以找到你这样的数据库文件:

data-->data-->your.package.name-->databases--->yourdbfile.db

然后你可以使用额探索你的数据库的任何SQLite的。 我使用SQLite经理Firefox的插件。 这是不错的,体积小,速度快。



Answer 18:

我觉得很简单的库stetho来浏览Chrome应用的sqlite的分贝, 看到



Answer 19:

第一篇文章( https://stackoverflow.com/a/21151598/4244605 )不会为我工作。

我写自己的脚本从设备获取数据库文件。 无根。 工作确定。

  1. 脚本复制到目录与亚洲开发银行(例如: ~/android-sdk/platform-tools )。
  2. 设备必须连接到PC。
  3. 使用./getDB.sh -p <packageName>为数据库获取命名。

用法: ./getDB.sh -p <packageName> -n <name of DB> -s <store in mobile device>对于GET DB文件到这个(其中执行脚本)的目录。

我建议你设置DB的文件名为* .sqlite并与Firefox插件打开它:SQLite的经理。

(这是一个很长一段时间,当我在写东西猛砸,您可以编辑该代码。)

#!/bin/sh
# Get DB from Android device.
#

Hoption=false
Poption=false
Noption=false
Soption=false
Parg=""
Narg=""
Sarg=""

#-----------------------FUNCTION--------------------------:
helpFunc(){ #help
echo "Get names of DB's files in your Android app.
Usage: ./getDB -h
       ./getDB -p packageName -n nameOfDB -s storagePath
Options:
   -h                                           Show help.
   -p packageName                               List of databases for package name.
   -p packageName -n nameOfDB -s storagePath    Save DB from device to this directory."
}


#--------------------------MAIN--------------------------:
while getopts 'p:n:s:h' options; do
    case $options in

        p) Poption=true
            Parg=$OPTARG;;

        n) Noption=true
            Narg=$OPTARG;;

        s) Soption=true
            Sarg=$OPTARG;;

        h) Hoption=true;;
    esac
done

#echo "-------------------------------------------------------
#Hoption: $Hoption
#Poption: $Poption
#Noption: $Noption
#Soption: $Soption
#Parg: $Parg
#Narg: $Narg
#Sarg: $Sarg
#-------------------------------------------------------"\\n
#echo $#    #count of params

if [ $Hoption = true ];then
    helpFunc
elif [ $# -eq 2 -a $Poption = true ];then #list
    ./adb -d shell run-as $Parg ls /data/data/$Parg/databases/
    exit 0
elif [ $# -eq 6 -a $Poption = true -a $Noption = true -a $Soption = true ];then #get DB file
    #Change permissions
    ./adb shell run-as $Parg chmod 777 /data/data/$Parg/databases/
    ./adb shell run-as $Parg chmod 777 /data/data/$Parg/databases/$Narg
    #Copy
    ./adb shell cp /data/data/$Parg/databases/$Narg $Sarg
    #Pull file to this machine
    ./adb pull $Sarg/$Narg
    exit 0
else
    echo "Wrong params or arguments. Use -h for help."
    exit 1;
fi

exit 0;


文章来源: How do I view the SQLite database on an Android device? [duplicate]