簡體   English   中英

Android如何查看我的SQLite?

[英]Android How can I see my SQLite?

我使用Eclipse打開data/data/your.package.name/databases ,但data沒有任何內容。

有人說我沒有獲得“ root特權”。

如何查看我的SQLite?

我認為,最簡單的方法是在您的應用中編寫一個小函數,該函數將/data/.../etc復制到/sdcard/或其他位置。

之后,您將能夠從計算機中打開該數據庫。

這是一個完整的答案,如何將文件復制到SDCard: https : //stackoverflow.com/a/19093736/2891426

我將在一個全新的類中實現此功能,並創建一個調用此按鈕的按鈕。 或類似的東西。

您可以從此處下載一個小型Windows應用程序,以瀏覽數據庫文件: http : //sqlitebrowser.org/

您確實需要root用戶訪問權限才能查看設備上的數據庫。 但是,您可以使用仿真器而不是物理設備,這將使您能夠在Eclipse中瀏覽數據庫。

您無需具有root特權即可訪問外部存儲。 但是您需要內部存儲。 在ddms的eclipse中,轉到android / data / yourpackage,在那里您應該找到您的應用創建的所有文件。 如果沒有文件,則沒有數據庫。 找到數據庫后,您可以使用sqliteman查看其內容http://sourceforge.net/projects/sqliteman/files

最好的解決方案是使用內部存儲,然后在要訪問它時將其導出到外部。 看這里: https : //stackoverflow.com/a/19093736/2026478

public void exportDatabse(String databaseName) {
    try {
        File sd = Environment.getExternalStorageDirectory();
        File data = Environment.getDataDirectory();

        if (sd.canWrite()) {
            String currentDBPath = "//data//"+getPackageName()+"//databases//"+databaseName+"";
            String backupDBPath = "backupname.db";
            File currentDB = new File(data, currentDBPath);
            File backupDB = new File(sd, backupDBPath);

            if (currentDB.exists()) {
                FileChannel src = new FileInputStream(currentDB).getChannel();
                FileChannel dst = new FileOutputStream(backupDB).getChannel();
                dst.transferFrom(src, 0, src.size());
                src.close();
                dst.close();
            }
        }
    } catch (Exception e) {

    }
}

您應該使用SQLiteBrowser來輕松訪問數據庫。 您可以從此處下載http://sqlitebrowser.org/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM