之前使用adb連接android手機(jī)的sqlite3遇到了許多問題矮冬,今天總結(jié)一下铃绒。如果看本文章來操作的話,最好能全部看完再進(jìn)行户秤。如果一邊操作迹冤,一邊看,可能要重復(fù)幾次才能成功
正常流程
?如果說手機(jī)一切正常虎忌,只需要使用adb shell就可以連接到手機(jī)上了泡徙,然后在/data/data/包名/databases里找到對應(yīng)的數(shù)據(jù)庫文件,直接用sqlite3 數(shù)據(jù)庫文件名就可以直接運(yùn)行了膜蠢。剩下想查看數(shù)據(jù)表堪藐,使用sql語句都隨你了。http://www.runoob.com/sqlite/sqlite-commands.html(這個是sqlite命令的網(wǎng)站可以查看挑围,sqlite和mysql有些語句不一樣)
非正常情況
1.確認(rèn)手機(jī)是否root
但是往往都不能直接順利完成上面的流程礁竞。在完成上面的流程之前,首先需要手機(jī)是root之后的杉辙,沒有root的手機(jī)自己去root模捂,這里就不提供教程了,網(wǎng)上大片大片的蜘矢,一搜就有狂男。
2.sqlite3命令找不到
root之后的手機(jī),可以先用adb shell連接上品腹,然后運(yùn)行sqlite3岖食,如果找不到這個命令。先看一下/system/xbin下有沒有sqlite3這個文件舞吭,一般情況下是沒有的泡垃。這就需要我們從其他地方拷貝一份到這個文件夾下析珊。在電腦上新建一Android個模擬器,使用adb pull /system/xbin/sqlite3 從模擬器上下載下來sqlite3這個文件蔑穴。這個文件存在執(zhí)行這個命名的文件夾下忠寻。接下來使用adb push sqlite3 /system/xbin 命令把sqlite3拷貝到手機(jī)的/system/xbin文件夾下
3.permisson deny
如果在執(zhí)行adb push命令的時候,提示沒有權(quán)限存和,可以嘗試使用su命令锡溯,獲取管理員權(quán)限,然后使用chmod 777 /system/xbin 把/system/xbin這個文件夾變成可讀寫的哑姚,再次嘗試祭饭,如果還是不行的話,直接在手機(jī)上下載一個root exploer手機(jī)軟件叙量,考到對應(yīng)文件夾下就好了
4.can not open 文件或者文件break
如果是這樣情況倡蝙,先確定下你的文件從生成到現(xiàn)在就沒有刪除過。如果沒有刪除之類的操作绞佩,就要看一下開始的adb pull的模擬器是x86架構(gòu)的還是arm架構(gòu)的寺鸥,需要跟手機(jī)的架構(gòu)匹配。
5.PIE錯誤
如果出現(xiàn)這個錯誤的話品山,可能是模擬器的api版本和手機(jī)api的版本不一致造成的胆建。也只能從新選擇一個模擬器的api版本,從新下載一遍肘交。
這些是我遇到的全部問題笆载,如果有其他的問題可以留言,大家一起討論