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.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值