एंड्रॉइड SQLite के डेटाबेस संस्करण को कहां संग्रहीत करता है?


88

मैं खोजने में असमर्थ हूं कि एंड्रॉइड SQLite डेटाबेस फ़ाइल के भीतर डेटाबेस संस्करण को कहां संग्रहीत करता है। डेटाबेस संस्करण को वास्तव में कहाँ संग्रहीत किया जाता है?

जवाबों:


187

आप संस्करण का उपयोग करके पढ़ सकते हैं android.database.sqlite.SQLiteDatabase.getVersion()

आंतरिक रूप से, यह विधि SQL कथन को निष्पादित करती है " PRAGMA user_version"। मुझे वह Android स्रोत कोड से मिला है ।

डेटाबेस फ़ाइल में, संस्करण 'उपयोगकर्ता कुकी' के क्षेत्र में डेटाबेस फ़ाइल के डेटाबेस हेडर में बाइट ऑफसेट 60 पर संग्रहीत किया जाता है ।


यह उपयोगी था, लेकिन मेरा सवाल यह है कि इस संस्करण की जानकारी फाइलसिस्टम पर संग्रहीत होती है (या डेटाबेस फ़ाइल में हो सकती है)?
भूप्स 15'10

3
और इसे पढ़ने और संशोधित करने के लिए stackoverflow.com/questions/8030779/…
Yaroslav Mytkalyk

डेटाबेस फ़ाइल में डेटाबेस संस्करण कैसे बना रहता है?
xuehui

@xuehui उत्तर देखें: डेटाबेस फ़ाइल में 60 बाइट।
थॉमस म्यूलर

8

अगर किसी को फ़ाइल से संस्करण पढ़ने के लिए जावा कोड की तलाश है:

private static int getDbVersionFromFile(File file) throws Exception
{
    RandomAccessFile fp = new RandomAccessFile(file,"r");
    fp.seek(60);
    byte[] buff = new byte[4];
    fp.read(buff, 0, 4);
    return ByteBuffer.wrap(buff).getInt();
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.