首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Android 技能: 命令行使用 sqlite3

2013-04-05 
Android 技巧: 命令行使用 sqlite3很多人使用 SQLiteOpenHelper 操作数据库, 略显繁琐以前用 mysql 开发,

Android 技巧: 命令行使用 sqlite3

很多人使用 SQLiteOpenHelper 操作数据库, 略显繁琐


以前用 mysql 开发, 在 unix shell 输入 mysql 进入 mysql 的 shell 就可以运行各种 sql 命令了.

unix 下的 sqlite3 功能相似, 如果在 Android 也可以使用就好了. 其实的确如此:


用 adb shell 登陆到 devices

打开db 文件
/system/xbin/sqlite3 /data/data/com.android.providers.settings/databases/settings.db

查看表
在 sqlite的 shell 中数据
.tables


进行 update
update Secure set value=1 where name = 'touch_exploration_enabled'

查新看数据是否改变
sqlite> select * from Secure


当然你也可以操作自己的数据库
create table IF NOT EXISTS my (_id INTEGER not null, name text not null, value INTEGER)
INSERT INTO my values(1,"touch_exploration_enabled",1)
drop table my


注意:

1) 你需要取得Android 系统的  root 权限.


2)  如果你是改 Secure 等这些保存设置的 table, 改完后请重启 Android, 因为 Setting 这些是会做 cache 的

你用Android 提供的接口就不用重启:

Settings.Secure.putInt(this.getContentResolver(), Settings.Secure.TOUCH_EXPLORATION_ENABLED, 1);


但为了编译它,你需要你需要 在 AndroidManifest.xml 声明

android:sharedUserId="android.uid.system

以及

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

并且把它作为 platform apps, 就是在 Android.mk 中声明

LOCAL_CERTIFICATE := platform

这显然不如直接用 sqlite3 命令简单


3) 另外就是你把 Android 中的 *.db 复制到 unix 中,想让 unix 下面的 sqlite3 打开时不行的, 可能 Android 对 sqlite3的 src 改动

如果把 unix 的 sqlite3 用 adb push /system/xbin/     也是不能用的,  因为 unix 下的 sqlite3 是用 glibc 编译的, 而 Android 是基于bionic.

热点排行