1 , 怎样查看 android sqlite数据库1、看 sqlite数据库 可以使用eclipse的插件DDMS , 或者Android工具包中的adb工具来查看 。sqlite数据库在安卓项目中的位置是/data/data/项目包/databases中 。2、在这里呢演示使用eclipse插件来看 。在Eclipse安装好插件 , 找到 DDMS3、选中DDMS 点击ok,显示File Explorer窗口,找到/data/data/4、打开databases,就能看到sqlite数据库文件了 。5、使用sqlite界面管理工具如sqlite administrator、sqlite man打开就可以了【安卓数据库查看工具,怎样查看 android sqlite数据库】
2,android怎么查看sqlite安装SQLite Expert Professional 可以在网上下载,我下载的是试用版,没有找注册码,但是试用不影响使用,反正用几次查看到数据库操作没有错误就不用这个工具了 。当然也可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看 。android项目中的sqlite数据库位于/data/data/项目包/databases中 。先介绍使用DDMS导出sqlite数据库的操作和使用adb工具访问sqlite数据库 。首先打开android项目的调试模式 , 然后找到显示DDMS切换到DDMS,显示File Explorer窗口,找到/data/data/ 如下图1 ,然后找到程序包的文件夹,打开databases,就能看到sqlite数据库文件了 。选择将其导出 。如下图2.这样就把sqlite数据库文件以文件的方式导出来了 , 然后使用sqlite界面管理工具如SQLite Expert Professional可以打开该数据库了 。其他 sqlite界面管理工具如sqlite administrator、sqlite man或者firefox插件sqlite manager也可以打开该数据库 。使用adb工具访问sqlite数据库Android Debug Bridge(ADB)是Android的一个通用调试工具,它可以更新设备或模拟器中的代码,可以管理预定端口,可以在设备上运行shell命令,我们 知道android是基于Linux内核 , 它的内部文件结构也是采用linux文件组织方式 , 因此访问它的文件结构需要使用shell 。这次我们就会用 shell来访问android应用中的sqlite数据库文件 。1、运行cmd , 切换到android-sdk目录 , 运行adb.exe , 加上参数shell,出现#号就代表进入了shell命令模式,注意adb要在Android模拟器运行时才能进入shell:如下图进入数据库所在目录:shell命令记住两个基本命令ls和cd,类似windows命令提示行中的dir和cd , 代表列出当前目录下文件列表和进入到指定目录 。了解这两个命令之后,就可以找到data/data/项目包名/databases 如下图1,找到数据库文件如下图2 。使用sqlite管理工具来进行数据库操作键入sqlite3 数据库名就进入了sqlite管理模式了 。如下图设置sqlite环境变量:在android的sdk中自带了sqlite3.exe,这是sqlite的官方管理工具,它是一个命令行工具 。为了使用方便,将其路径注册到系 统环境变量path中,即将;%Android_Home%加在Path中,这样只样运行sqlite3,就能直接打开sqlite管理工具了 。如下图:使用sqlite管理数据库:sqlite命令行工具默认是以;结束语句的 。所以如果只是一行语句,要在末尾加;,或者在下一行中键入;,这样sqlite命令才会被执行 。sqlite常用命令:.tables--查看数据库的表列表.exit--退出sqlite命令行其他命令可随时.help查看帮助 。sql命令可直接在此命令行上执行即可:在android中查看和管理sqlite数据库在android中可以使用eclipse插件ddms来查看,也可以使用android工具包中的adb工具来查看 。android项目中的sqlite数据库位于/data/data/项目包/databases中 。使用ddms导出sqlite数据库 。1、首先打开android项目的调试模式,然后找到显示ddms:选择ddms2、切换到ddms,显示file explorer窗口,找到/data/data/然后找到程序包的文件夹 , 打开databases , 就能看到sqlite数据库文件了 。选择将其导出 。这样就把sqlite数据库文件以文件的方式导出来了 , 然后使用sqlite界面管理工具如sqlite administrator、sqlite man或者firefox插件sqlite manager等打开就可以了 。使用adb工具访问sqlite数据库android debug bridge(adb)是android的一个通用调试工具,它可以更新设备或模拟器中的代码,可以管理预定端口,可以在设备上运行shell命令,我们知道android是基于linux内核,它的内部文件结构也是采用linux文件组织方式,因此访问它的文件结构需要使用shell 。这次我们就会用shell来访问android应用中的sqlite数据库文件 。1、运行cmd,切换到android-sdk目录,运行adb.exe,加上参数shell,出现#号就代表进入了shell命令模式,注意adb要在android模拟器运行时才能进入shell:2、shell命令记住两个基本命令ls和cd , 类似windows命令提示行中的dir和cd,代表列出当前目录下文件列表和进入到指定目录 。了解这两个命令之后,就可以找到data/data/项目包名/databases:找到数据库文件:接下来就是使用sqlite管理工具来进行操作了 。键入sqlite3 数据库名就进入了sqlite管理模式了 。在android的sdk中自带了sqlite3.exe,这是sqlite的官方管理工具,它是一个命令行工具 。为了使用方便 , 将其路径注册到系统环境变量path中,即将;%android_home%加在path中,这样只样运行sqlite3,就能直接打开sqlite管理工具了 。sqlite管理数据库篇sqlite命令行工具默认是以;结束语句的 。所以如果只是一行语句,要在末尾加;,或者在下一行中键入; , 这样sqlite命令才会被执行 。sqlite常用命令:.tables--查看数据库的表列表.exit--退出sqlite命令行其他命令可随时.help查看帮助 。sql命令可直接在此命令行上执行即可
3,android 怎么使用sqlcipherAndroid系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作 。数据库存储是我们经常会使用到的一种存储方式,相信大多数朋友对它的使用方法都已经比较熟悉了吧 。在Android中,我们既可以使用原生的SQL语句来对数据进行操作 , 也可以使用Android API提供的CRUD方法来对数据库进行操作,两种方式各有特点,选择使用哪一种就全凭个人喜好了 。不过,使用SQLite来存储数据却存在着一个问题 。因为大多数的Android手机都是Root过的,而Root过的手机都可以进入到/data/data//databases目录下面,在这里就可以查看到数据库中存储的所有数据 。如果是一般的数据还好,但是当涉及到一些账号密码 , 或者聊天内容的时候,我们的程序就会面临严重的安全漏洞隐患 。那么今天,就让我们一起研究一下如何借助SQLCipher来解决这个安全性问题 。SQLCipher是一个在SQLite基础之上进行扩展的开源数据库,它主要是在SQLite的基础之上增加了数据加密功能,如果我们在项目中使用它来存储数据的话 , 就可以大大提高程序的安全性 。SQLCipher支持很多种不同的平台,这里我们要学习的自然是Android中SQLCipher的用法了 。首先要把Android项目所依赖的SQLCipher工具包下载下来:接着解压这个工具包,会看到里面有assets和libs这两个目录,稍后需要将这两个目录中的内容添加到Android项目当中 。那么现在我们就来新建一个Android项目,项目名就叫SQLCipherTest 。观察SQLCipherTest的项目结构,发现里面也分别有一个assets目录和一个libs目录,那么现在就可以把SQLCipher工具包中这两个目录里的内容复制过来 。并不需要复制全部文件,选择必要的文件进行复制就可以到这里准备工作就全部完成了 , 接下来我们开始编写代码 。首先创建一个MyDatabaseHelper继承自SQLiteOpenHelper,注意这里使用的并不是Android API中的SQLiteOpenHelper,而是net.sqlcipher.database包下的SQLiteOpenHelper , 代码如下所示: [java] view plaincopy import android.content.Context; import net.sqlcipher.database.SQLiteDatabase; import net.sqlcipher.database.SQLiteDatabase.CursorFactory; import net.sqlcipher.database.SQLiteOpenHelper; public class MyDatabaseHelper extends SQLiteOpenHelper { public static final String CREATE_TABLE = "create table Book(name text, pages integer)"; public MyDatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) { } }除了引入的包不一样了,其它的用法和传统的SQLiteOpenHelper都是完全相同的 。可以看到,我们在onCreate()方法中创建了一张Book表 , Book表里有name和pages这两个列 。接着,打开或新建activity_main.xml作为程序的主布局文件,代码如下所示: [html] view plaincopy android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > android:id="@+id/add_data" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="添加数据" /> android:id="@+id/query_data" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="查询数据" />这里只是简单地放置了两个按钮,分别用于添加和查询数据 。接下来打开或新建MainActivity作为程序主Activity , 代码如下所示: [java] view plaincopy public class MainActivity extends Activity { private SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SQLiteDatabase.loadLibs(this); MyDatabaseHelper dbHelper = new MyDatabaseHelper(this, "demo.db", null, 1); db = dbHelper.getWritableDatabase("secret_key"); Button addData = http://www.lisdn.com/mnsj/hhzs/(Button) findViewById(R.id.add_data); Button queryData = (Button) findViewById(R.id.query_data); addData.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ContentValues values = new ContentValues(); values.put("name", "达芬奇密码"); values.put("pages", 566); db.insert("Book", null, values); } }); queryData.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Cursor cursor = db.query("Book", null, null, null, null, null, null); if (cursor != null) { while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); int pages = cursor.getInt(cursor.getColumnIndex("pages")); Log.d("TAG", "book name is " + name); Log.d("TAG", "book pages is " + pages); } } cursor.close(); } }); } }可以看到,在onCreate()方法中首先调用了SQLiteDatabase的loadLibs()静态方法将SQLCipher所依赖的so库加载进来,注意这里使用的是net.sqlcipher.database包下的SQLiteDatabase 。然后我们创建了MyDatabaseHelper的实例 , 并调用getWritableDatabase()方法去获取SQLiteDatabase对象 。这里在调用getWritableDatabase()方法的时候传入了一个字符串参数,它就是SQLCipher所依赖的key,在对数据库进行加解密的时候SQLCipher都将使用这里指定的key 。在添加数据按钮的点击事件里面 , 我们通过ContentValues构建了一条数据,然后调用SQLiteDatabase的insert()方法将这条数据插入到Book表中 。在查询数据按钮的点击事件里面,我们调用SQLiteDatabase的query()方法来查询Book表中的数据,查询到的结果会存放在Cursor对象中,注意这里使用的是net.sqlcipher包下的Cursor 。然后对Cursor对象进行遍历,并将查询到的结果打印出来 。现在运行一下程序,先点击添加数据按钮,再点击查询数据按钮 , 刚刚添加的那条数据就应该在控制台里打印出来了 。有没有感觉到使用SQLCipher提供的API和使用Android原生的数据库API,操作起来几乎是一模一样的 。没错,SQLCipher对Android SDK中所有与数据库相关的API都制作了一份镜像,使得开发者可以像操作普遍的数据库文件一样来操作SQLCipher,而所有的数据加解密操作,SQLCipher都在背后帮我们处理好了 。
推荐阅读
- 360安全浏览器,360安全浏览器30正式版
- 骨干网光缆测试不达标原因分析
- e31230v2,2开头e31230v2什么意思
- 键盘驱动
- ansys 瞬态分析是什么,ANSYS瞬态分析计算结果处理
- findbugs分析等级
- 练打字的软件,有没有什么练打字的软件推荐一下
- qx9770,Intel QX9770
- 语音计算器,语音计算器有什么用在C盘里可以删么