在Linux开发环境下如何直接查看android数据库sqlite3中的表及数据、手机上直接编辑数据库

本文主要是介绍在Linux开发环境下如何直接查看android数据库sqlite3中的表及数据、手机上直接编辑数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近涉及到数据库的操作,要察看手机数据库中的表是否创建成功,表中的信息是否插入成功了,因此,如何在terminal中察看呢?我用的ubuntu11.10,4G.

下面是查到的网址:


今天突然又发现,在手机上早就已经支持可以直接看数据库,对数据库进行管理了。最早是在这个网址发现的:http://www.iteye.com/topic/1117930。然后就去看了看,再看这个网址:http://aaa.andsen.dk/aSQLiteManager.html,里面有个aShell等都是可以在手机上直接查看数据库的。这个aSqliteManager也是可以直接管理的。不过我安装完之后,我手机没有sd卡,因此不能用,就是说,这款软件必须得有sd卡才能使用。大家可以自己去Google Market上下载这两个或者同类的应用。确实很方便的。


两个原因, 促使开发人员必须直接进入sqlite3 核对表及查看相关数据: 

(1)为了节约时间,开发人员不一定每次写入数据后,重新读出到屏幕显示,因为这样费时费力。而数据库本身的数量统计核对等功能则可以很轻松完成这样的任务;

(2)很多开发都有直接进入数据库操作表操作数据的习惯,这样才有淋漓尽致的感觉。举一个例子,在测试批量数据的情况下,直接往数据库里插入数据,比从contentprovider insert 数据来得方便快速。


本文以Ubuntu为例,演示一下如何利用google android自带的adb工具,以在android开发过程中,直接进入sqlit3。 当然,看完本文就了解了如何运行android的shell了。

一个前提: 

0. 以下命令都基于一个前提, 那就是必须在开发环境里运行application, android仿真器必须跑起来。 这个应该很容易理解,因为仿真器没有运行的话,你的电脑上是不存在android这个环境(硬件+操作系统)。 


具体的操作过程如下:

1. 找到adb, 一般位于android sdk的的tools/(老版本)或者 platform-tools/ (新版本) ,如果没有后者,则可以通过 SDK and AVD Manager 来安装 "Android SDK Platform-tools", 本文 为例: 该工具位于 /data/software/android-sdk-linux_x86/platform-tools/

2. 切换到该目录,运行 ./adb help 查看帮助 或者  ./adb shell 直接进入 android shell 管理界面, 

3. ls 命令,获取根目录下的文件列表信息, 如下所示。 可以看到,很多文件都与常见的linux系统相同,作用也大同小异,具体可以参考手册。

# ls
config
cache
sdcard
acct
mnt
d
etc
system
sys
sbin
proc
init.rc
init.goldfish.rc
init
default.prop
data
root
dev

4. 通过cd命令进入数据库表。 一般包括数据库在内的数据信息都位于data目录下。  作为对比,各位看官可以把手中的开发工具ADT切换到DDMS视图, 利用File Explorer 查看文件, 两者应该是一致的。
# cd /data
# ls

misc
local
app-private
backup
property
anr
data
dontpanic
system
app
dalvik-cache
lost+found

5. 进入 /data/data获取 contentprovider信息。 
# cd ./data/
/data/data
# ls

com.***.contactsearcher
com.android.providers.userdictionary
com.android.inputmethod.latin
com.android.quicksearchbox
jp.co.omronsoft.openwnn
com.android.inputmethod.pinyin
com.android.spare_parts
com.android.fallback
com.android.gallery
com.android.htmlviewer
com.android.certinstaller
com.android.wallpaper.livepicker
com.android.netspeed
com.android.packageinstaller
android.tts
com.android.cardock
com.android.development
com.android.defcontainer
com.android.server.vpn
com.android.soundrecorder
com.svox.pico
com.android.sdksetup
com.android.term
com.example.android.livecubes
com.example.android.softkeyboard
com.example.android.apis
com.android.gesture.builder
com.android.phone
com.android.providers.contacts
com.android.providers.applications
com.android.customlocale
com.android.providers.subscribedfeeds
com.android.providers.drm
com.android.providers.settings
com.android.launcher
com.android.speechrecorder
com.android.music
com.android.providers.telephony
com.android.calculator2
com.android.providers.media
com.android.mms
com.android.email
com.android.providers.downloads
com.android.contacts
com.android.browser
com.SC.Android.client
com.android.settings
com.android.alarmclock
com.android.camera
com.android.carhome
com.android.protips

6. 进入目标文件,获取数据库
# cd com.SC.Android.client
# ls
databases
lib
# cd databases
# ls
sc.db


7. 运行数据库, enjoy yourself! 

# sqlite3 SC.db
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from  entries;
1|201236|0|welcome to go here|||||||1320504306564|1320504306564



另外,sqlite3几条关键的常用命令:

sqlite> .help  帮助信息;
sqlite> .tables 显示数据库表;
android_metadata  entries         
sqlite> .show 显示数据库的属性信息;
     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    width: 
sqlite> .schema entries 查询单个表结构,另外查询所有表的结构信息: select * from sqlite_master where type = "table";

.database 查看当前数据库;
.output 文件名 将查询结果输出的该文件; 而后运行查询语句, 查询将结果输出的该文件;

.output stdout  把查询结果用屏幕输出 



sqlite3 查询数据库表结构(转)  

2011-05-09 14:03:22|  分类:数据库|字号 订阅

遇有未知结构的数据库时,可以通过以下方法来或许数据库中详细信息。

1.   .table命令  可以查询当前数据库中所有的表名

2.   select * from sqlite_master WHERE type = "table";   可以查询到当前数据库中所有表的详细结构信息

[test@localhost ~]$ sqlite3 py.db

SQLite version 3.6.17

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite> .table

py_phrase   py_pinyin   py_shengmu

sqlite> select * from sqlite_master WHERE type = "table";

table|py_pinyin|py_pinyin|2|CREATE TABLE py_pinyin (pinyin TEXT PREMARY KEY)

table|py_shengmu|py_shengmu|3|CREATE TABLE py_shengmu (shengmu TEXT PREMARY KEY)

table|py_phrase|py_phrase|4|CREATE TABLE py_phrase (

ylen INTEGER,

y0 INTEGER, y1 INTEGER, y2 INTEGER, y3 INTEGER, yx TEXT,

s0 INTEGER, s1 INTEGER, s2 INTEGER, s3 INTEGER,

phrase TEXT,

freq INTEGER, user_freq INTEGER)

sqlite>

1)创建数据库文件:  
   >SQLite3 d:\test.db 回车  
   就生成了一个test.db在d盘。  
   这样同时也SQLite3挂上了这个test.db  
   2)   
   用.help可以看看有什么命令  
   >.help 回车即可  
   3)可以在这里直接输入SQL语句创建表格 用;结束,然后回车就可以看到了  
   4)看看有创建了多少表  
   >.tables   
   5)看表结构  
   >.schema 表名  
   6)看看目前挂的数据库  
   >.database 
   7)如果要把查询输出到文件  
   >.output 文件名  
   > 查询语句;  
   查询结果就输出到了文件c:\query.txt   
 
   把查询结果用屏幕输出  
   >.output stdout  
 
   8)把表结构输出,同时索引也会输出  
     .dump 表名  
   9)退出  
   >.exit 或者.quit
普通SQL操作,通用标准SQL语句。

---------------------------------------------------------------------

2014-4-30补充:

linux下sqlite3可视化工具 - [Android]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://www.blogbus.com/java-android-logs/158316464.html

Ubuntu linux下安装sqlite3
1.介绍:sqlite3是linux上的小巧的数据库,一个文件就是一个数据库。
2.安装:
要安装sqlite3,可以在终端提示符后运行下列命令:
sudo apt-get install sqlite3
检查版本
sqlite3 -version
3.测试
当前目录下建立test.db测试数据库文件
sqlite3 test.db
查询信息
.database
退出
.exit
 4.图形界面(一)
可以选择sqlitebrowser程式(qt3)
sudo apt-get install sqlitebrowser
启动图形界面可以在终端提示符后输入sqlitebrowser

5.图形界面(二) (推荐)
本人经常使用此种方式,
 sudo apt-get install sqliteman


 


这篇关于在Linux开发环境下如何直接查看android数据库sqlite3中的表及数据、手机上直接编辑数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/634813

相关文章

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

Linux之UDP和TCP报头管理方式

《Linux之UDP和TCP报头管理方式》文章系统讲解了传输层协议UDP与TCP的核心区别:UDP无连接、不可靠,适合实时传输(如视频),通过端口号标识应用;TCP有连接、可靠,通过确认应答、序号、窗... 目录一、关于端口号1.1 端口号的理解1.2 端口号范围的划分1.3 认识知名端口号1.4 一个进程

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

Linux权限管理与ACL访问控制详解

《Linux权限管理与ACL访问控制详解》Linux权限管理涵盖基本rwx权限(通过chmod设置)、特殊权限(SUID/SGID/StickyBit)及ACL精细授权,由umask决定默认权限,需合... 目录一、基本权限概述1. 基本权限与数字对应关系二、权限管理命令(chmod)1. 字符模式语法2.

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3