Android 數(shù)據(jù)庫(kù)SQLite 寫(xiě)入SD卡的方法
如果手機(jī)沒(méi)有root,數(shù)據(jù)庫(kù)文件是無(wú)法查看到的,不方便調(diào)試。
最好的辦法是把數(shù)據(jù)庫(kù)寫(xiě)進(jìn)SD卡。
修改的地方有兩處:
1.在你的helper類(lèi)中把數(shù)據(jù)庫(kù)文件名稱(chēng) DATABASE_NAME 由原來(lái)的一個(gè)文件名,修改成路徑的形式。
修改前:DATABASE_NAME = "demo.db"
public class MyDBHelper extends SQLiteOpenHelper {
public static final int VERSION = 1; //數(shù)據(jù)庫(kù)版本號(hào)
public static final String DATABASE_NAME = "demo.db"; //數(shù)據(jù)庫(kù)名稱(chēng)
public static final String TABLE_NAME = "mytag"; //數(shù)據(jù)表名稱(chēng),一個(gè)數(shù)據(jù)庫(kù)可以包含多張數(shù)據(jù)表,類(lèi)似于excel中的sheet1,sheet2
//MyDBHelper 的構(gòu)造函數(shù),我們關(guān)心的是名稱(chēng)DATABASE_NAME和版本VERSION
public MyDBHelper(Context context) {
super(context, DATABASE_NAME, null, VERSION);
}
修改后:DATABASE_NAME = "/mnt/sdcard/demo.db"
public class MyDBHelper extends SQLiteOpenHelper {
public static final int VERSION = 1; //數(shù)據(jù)庫(kù)版本號(hào)
public static final String DATABASE_NAME = "/mnt/sdcard/demo.db"; //數(shù)據(jù)庫(kù)名稱(chēng)
public static final String TABLE_NAME = "mytag"; //數(shù)據(jù)表名稱(chēng),一個(gè)數(shù)據(jù)庫(kù)可以包含多張數(shù)據(jù)表,類(lèi)似于excel中的sheet1,sheet2
//MyDBHelper 的構(gòu)造函數(shù),我們關(guān)心的是名稱(chēng)DATABASE_NAME和版本VERSION
public MyDBHelper(Context context) {
super(context, DATABASE_NAME, null, VERSION);
}
因?yàn)槿绻皇且粋€(gè)單獨(dú)的文件名,最后創(chuàng)建的數(shù)據(jù)庫(kù)文件就是保存在手機(jī)內(nèi)部存儲(chǔ)卡(不是運(yùn)行內(nèi)存,也不是SD卡)的/data/data/包名稱(chēng)/databases 目錄下,而沒(méi)有root的手機(jī),這個(gè)/data根文件夾是進(jìn)不去的,用adb shell方式也打不開(kāi)。
2.最后,千萬(wàn)別忘了修改權(quán)限!
Android手機(jī)是有著嚴(yán)格的安全管控的,SD卡屬于外部存儲(chǔ)器,訪(fǎng)問(wèn)上面的文件需要添加權(quán)限。
在AndroidManifest.xml 中添加兩條SD卡讀寫(xiě)權(quán)限即可:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
如果沒(méi)有添加權(quán)限,那么程序就會(huì)異常終止。
以上所述是針對(duì)Android 數(shù)據(jù)庫(kù)SQLite 寫(xiě)入SD卡的方法,希望對(duì)大家有所幫助!
- Android SQLite數(shù)據(jù)庫(kù)增刪改查操作的使用詳解
- Android使用SQLite數(shù)據(jù)庫(kù)的簡(jiǎn)單實(shí)例
- android創(chuàng)建數(shù)據(jù)庫(kù)(SQLite)保存圖片示例
- Android中操作SQLite數(shù)據(jù)庫(kù)快速入門(mén)教程
- Android創(chuàng)建和使用數(shù)據(jù)庫(kù)SQLIte
- Android SQLite數(shù)據(jù)庫(kù)增刪改查操作的案例分析
- android通過(guò)jxl讀excel存入sqlite3數(shù)據(jù)庫(kù)
- Android操作SQLite數(shù)據(jù)庫(kù)(增、刪、改、查、分頁(yè)等)及ListView顯示數(shù)據(jù)的方法詳解
- Android批量插入數(shù)據(jù)到SQLite數(shù)據(jù)庫(kù)的方法
- Android利用listview控件操作SQLite數(shù)據(jù)庫(kù)實(shí)例
- Android應(yīng)用中內(nèi)嵌SQLite數(shù)據(jù)庫(kù)的基本操作指南
- Android+SQLite數(shù)據(jù)庫(kù)實(shí)現(xiàn)的生詞記事本功能實(shí)例
相關(guān)文章
Android中關(guān)于JSON相關(guān)應(yīng)用分析
這篇文章主要介紹了Android中關(guān)于JSON相關(guān)應(yīng)用,較為詳細(xì)的分析了Android中關(guān)于json相關(guān)類(lèi)與使用方法,需要的朋友可以參考下2016-06-06
Android 中對(duì)于圖片的內(nèi)存優(yōu)化方法
Android 中對(duì)于圖片的內(nèi)存優(yōu)化方法,需要的朋友可以參考一下2013-03-03
android自定義進(jìn)度條漸變色View的實(shí)例代碼
這篇文章主要介紹了android自定義進(jìn)度條漸變色View的實(shí)例代碼,有需要的朋友可以參考一下2014-01-01
關(guān)于Android添加fragment后版本不兼容問(wèn)題
這篇文章主要介紹了Android添加fragment后版本不兼容問(wèn)題的解決方法,需要的朋友可以參考下2017-12-12
Android中使用tcpdump、wireshark進(jìn)行抓包并分析技術(shù)介紹
這篇文章主要介紹了Android中使用tcpdump、wireshark進(jìn)行抓包并分析技術(shù)介紹,本文講解了下載并安裝tcpdump、pc上安裝wireshark等內(nèi)容,需要的朋友可以參考下2015-04-04
Android 如何實(shí)現(xiàn)彈窗順序&優(yōu)先級(jí)控制
這篇文章主要介紹了Android 如何實(shí)現(xiàn)彈窗順序&優(yōu)先級(jí)控制,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03
android 開(kāi)發(fā)教程之日歷項(xiàng)目實(shí)踐(三)
決定開(kāi)始學(xué)習(xí) Android 平臺(tái)下的軟件開(kāi)發(fā),以日歷作為實(shí)踐項(xiàng)目,進(jìn)行一周后,基本完成,有需要的朋友可以參考下2013-01-01
將Eclipse工程轉(zhuǎn)Android Studio工程的步驟與注意事項(xiàng)
這篇文章主要給大家介紹了將Eclipse工程轉(zhuǎn)Android Studio工程的方法步驟,并給大家分享了其中的一些注意事項(xiàng),文中將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),需要的朋友們可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
Android自定義View實(shí)現(xiàn)圓弧進(jìn)度效果逐步完成過(guò)程
在Android開(kāi)發(fā)中,通過(guò)自定義View實(shí)現(xiàn)自己想要的效果是作為android開(kāi)發(fā)程序員的一項(xiàng)必備技能,自定義View對(duì)于android開(kāi)發(fā)來(lái)說(shuō)也是比較難的一項(xiàng)技術(shù)2023-04-04
Android序列化接口Parcelable與Serializable接口對(duì)比
我們使用 Intent 傳遞數(shù)據(jù)的時(shí)候,putExtra() 所支持的數(shù)據(jù)類(lèi)型事有限的,當(dāng)需要傳遞自定義對(duì)象的時(shí)候就需要序列化。Serializable更簡(jiǎn)單但是會(huì)把整個(gè)對(duì)象進(jìn)行序列化因此效率比Parcelable低一些2023-02-02

