简介
最近好久都没有更新过博客了,感觉没有什么特别好的可以更新。那么我想何不更新一些自己学习的问题。so有了这篇文章。
这段时间一直在看《第一行代码 第二版》这本书,在看到第六章“数据存储全方案-详解持久化技术”的时候。按照书中的命令输入
sqlite3 XXX出现 sqlite3 not found。的问题。
原因
谷歌了一些文章。大致意思就是手机没有sqlite3。那么就需要我们自己下载到电脑,通过数据线传到手机上。然后进行调试。
方案
- find一下相关文件,确定到底需要安装哪些内容,如果已经找到则不需要安装对应文件
root@hwH60:/ # find . -name "sqlite3"
root@hwH60:/ # find . -name "libsqlite.so"
root@hwH60:/ # find . -name "libsqlite_jni.so"
- ok!上一步不用也行。哈哈哈,我们现在退出和手机的adb。
root@hwH60:/ # exit
shell@hwH60:/ $ exit
- 从 files.cnblogs.com/files/jiang… 处下载文件并解压。
- 将相关文件放到内置存储卡中,为什么不直接放到/system/xbin/和/system/lib/可以参考
www.cnblogs.com/jiangxinnju… - 下面是进行移动。
- 首先需要cd到解压的目录。然后进行如下操作。(这是放到了手机内置存储的
/storage/emulated/0/目录中)
PS D:\> adb push sqlite3 /storage/emulated/0/
PS D:\> adb push libsqlite.so /storage/emulated/0/
PS D:\> adb push libsqlite_jni.so /storage/emulated/0/
- OK!我们继续。进入adb,手机授权电脑root权限。
PS D:\> adb shell
shell@hwH60:/ $ su - root
- 为什么需要重新挂载/system分区可以参考 www.cnblogs.com/jiangxinnju…
root@hwH60:/ # mount -o remount rw /system
- 将需要的文件从内置存储卡中转移到目标目录
root@hwH60:/ # cp /storage/emulated/0/sqlite3 /system/xbin/ <
root@hwH60:/ # cp /storage/emulated/0/libsqlite.so /system/lib/
root@hwH60:/ # cp /storage/emulated/0/libsqlite_jni.so /system/lib/
- 修改对应文件的权限
root@hwH60:/ # chmod 4755 /system/xbin/sqlite3
root@hwH60:/ # chmod 0644 /system/lib/libsqlite.so
root@hwH60:/ # chmod 0644 /system/lib/libsqlite_jni.so
- 执行sqlite3命令,发现已经可以使用
root@hwH60:/ # sqlite3
SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .exit
- 好了,现在开始擦屁股。咳咳咳·····
root@hwH60:/ # exit
- 删除内置存储卡中的文件
shell@hwH60:/ $ rm -rf /storage/emulated/0/sqlite3
shell@hwH60:/ $ rm -rf /storage/emulated/0/libsqlite.so
shell@hwH60:/ $ rm -rf /storage/emulated/0/libsqlite_jni.so