मैं एक एंड्रॉइड एप्लिकेशन पर काम कर रहा हूं जिसमें उपयोगकर्ता को उस ऐप का उपयोग करने से पहले उस ऐप के डेटाबेस में कई प्रविष्टियों (1000-10000 पंक्तियों वाली एक एकल तालिका) की आवश्यकता होगी। मैंने कुछ ट्यूटोरियल देखे हैं और मुझे ऐसा करने का सबसे अच्छा तरीका अनिश्चित है। क्या मुझे यह जांचना चाहिए कि प्रत्येक बार ऐप शुरू होने पर डेटाबेस मौजूद है या नहीं, और यदि यह नहीं है, तो इसे बनाएं और मुझे आवश्यक हजारों रिकॉर्ड डालें? या इस समस्या को संभालने का एक बेहतर तरीका है? आदर्श रूप में, इसे ऐप की इंस्टॉल प्रक्रिया के हिस्से के रूप में शामिल किया जा सकता है, लेकिन मुझे यकीन नहीं है कि यह संभव है या नहीं। किसी भी प्रतिक्रिया की काफी सराहना की जाएगी।एंड्रॉइड प्री-पॉप्युलेटेड डाटाबेस
उत्तर
यह लिंक अच्छा जवाब Ship an application with a database
यहां लिंक है जो एसओ प्रश्न एंड्री संदर्भ में सर्वश्रेष्ठ उत्तर के रूप में प्रस्तुत किया गया है। यह आपके एंड्रॉइड ऐप के साथ पूर्व-निर्मित डेटाबेस वितरित करने का एक बहुत अच्छा लेख है: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ –
समान लेकिन ब्रीफ़र : http://www.helloandroid.com/tutorials/how-have-default- डाटाबेस –
http: // stackoverflow।कॉम/प्रश्न/910 9 438/पहले से निर्मित-डेटाबेस-साथ-एंड्रॉइड/910 9 728 # 910 9 728 –
जिस तरह से मैं यहां जा रहा हूं वह संपत्ति फ़ोल्डर में एक प्रीपॉलेटेड डेटाबेस को शिप करना है। आप वहां फाइलों में ड्रॉप कर सकते हैं और उनका उपयोग कर सकते हैं-वे हैं। सावधान रहें, हालांकि, 1 एमबी की आकार सीमा है, इसलिए शायद आपको फ़ाइलों को विभाजित करना होगा, या उन्हें संपीड़ित करना होगा।
संपीड़न काफी आसान है और ओएस द्वारा स्वयं समर्थित है।
आशा है कि यह SQLiteOpenHelper से :-)
आकार सीमा 1 एमबी है। –
JavaDoc किसी भी मदद की थी:
एक सहायक वर्ग डेटाबेस निर्माण और संस्करण प्रबंधन का प्रबंधन करने के। आप एक उपवर्ग को लागू करने OnCreate (SQLiteDatabase) बनाने , onUpgrade (SQLiteDatabase, int, int) और वैकल्पिक रूप से OnOpen (SQLiteDatabase), और इस वर्ग के उद्घाटन डेटाबेस यदि वह मौजूद है का ख्याल रखता है, यह बनाने अगर यह होता है नहीं, और के रूप में इसे अपग्रेड करना आवश्यक है। लेनदेन का उपयोग पर किया जाता है सुनिश्चित करें कि डेटाबेस हमेशा समझदार स्थिति में रहता है।
एक उदाहरण के लिए, NotePadProvider वर्ग नोटपैड नमूना आवेदन में, नमूनों में/SDK के निर्देशिका देखें।
तो अगर आप इस वर्ग का विस्तार, आप 3 तरीकों जो कुछ मामलों में बुलाया जाएगा और आप चुन सकते हैं, क्या करने के लिए क्या किया है। सबसे अच्छा अभ्यास :) Thats
है यहाँ कैसे बना सकते हैं और एक डेटाबेस को पॉप्युलेट करने का एक उदाहरण है, आप अनुप्रयोग पर यह सिर्फ कर सकते हैं स्थापित करते हैं, यह केवल एक ही प्रविष्टि बनाता है, हालांकि तो आप जो करना चाहते हैं उसके लिए अक्षम हो सकता है।
private static class settingsDatabaseHelper extends SQLiteOpenHelper{
//SQL String for creating the table required
private static final String CREATE_SETTINGS_TABLE
= "CREATE TABLE tbl_settings(" +
"_ID INTEGER PRIMARY KEY AUTOINCREMENT," +
"VOIPUSERNAME TEXT," +
"VOIPAUTHID TEXT," +
"PASSWORD TEXT," +
"VOIPDISPLAYNAME TEXT," +
"SIPPROXYSERVER TEXT," +
"SIPREGISTRAR TEXT," +
"SIPREALM TEXT," +
"EXPIRESTIME INTEGER);";
//constructor
public settingsDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_SETTINGS_TABLE);
ContentValues initialValues = new ContentValues();
initialValues.put("VOIPUSERNAME", "xxxxx");
initialValues.put("VOIPAUTHID", "xxxxxxxxxx");
initialValues.put("PASSWORD", "xxxxxx");
initialValues.put("VOIPDISPLAYNAME", "xxxxxxxxx");
initialValues.put("SIPPROXYSERVER", "xxxxxxxxxxxxx");
initialValues.put("SIPREGISTRAR", "xxxxxxxxxxx");
initialValues.put("SIPREALM", "xxxxxxxxxx");
initialValues.put("EXPIRESTIME", xxxxxxxxxxx);
Log.d("1.6", "gets to here");
db.insert(SETTINGS_TABLE, null, initialValues);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to " +
newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + SETTINGS_TABLE);
onCreate(db);
}
}
//end helper class
}
नीचे वोट के लिए एक स्पष्टीकरण कृपया? –
मैं इसे 'ऐप इंस्टॉल पर कैसे कर सकता हूं?' क्या कोड का यह हिस्सा केवल स्थापना पर निष्पादित है? –
- 1. मैं एंड्रॉइड एसक्यूएलएट डाटाबेस
- 2. एंड्रॉइड डाटाबेस लेनदेन
- 3. एंड्रॉइड इंटेंट डाटाबेस
- 4. एंड्रॉइड: एंड्रॉइड.net सहेजें। यूआरएल डाटाबेस
- 5. एंड्रॉइड डाटाबेस एक्सेस डिजाइन दृष्टिकोण
- 6. डाटाबेस से डाटाबेस अपडेट करें (डाटाबेस फर्स्ट)
- 7. डाटाबेस हैंडलिंग एंड्रॉइड 2.2.1 (डिजायर एचडी 1.72.405.3)
- 8. सीएसवी फ़ाइल से एंड्रॉइड डाटाबेस पॉप्युलेट करें?
- 9. एंड्रॉइड में स्क्लाइट डाटाबेस लीक फाउंड अपवाद?
- 10. एंड्रॉइड एक्सपेंडेबल लिस्ट व्यू और एसक्यूएलएट डाटाबेस
- 11. डाटाबेस
- 12. डाटाबेस
- 13. डाटाबेस
- 14. डाटाबेस
- 15. डाटाबेस
- 16. डाटाबेस
- 17. डाटाबेस
- 18. डाटाबेस
- 19. डाटाबेस के लिए टीएसक्यूएल डाटाबेस
- 20. ऑब्जेक्ट ओरिएंटेड डाटाबेस बनाम ऑब्जेक्ट रिलेशनल डाटाबेस
- 21. डाटाबेस पैटर्न
- 22. पायथन डाटाबेस
- 23. नोएसQL डाटाबेस
- 24. क्या डाटाबेस
- 25. एसक्यूएल डाटाबेस
- 26. डाटाबेस हैंडलर
- 27. नोएसक्यूएल डाटाबेस
- 28. एएसपी.नेट - डाटाबेस
- 29. रूबी - डाटाबेस
- 30. डाटाबेस स्कीमा
http://stackoverflow.com/a/9109728/265167 –
मैं क्योंकि यह वास्तव में नहीं है एक जवाब के रूप में इस पोस्ट करने के लिए नहीं करना चाहती। एंड्रॉइड_ पर डाटाबेस बनाने के लिए जावा लिखने पर विचार करें (उदाहरण के लिए एडीबी के साथ धक्का सीएसवी फाइलों से)। फिर इसे इंस्टॉलेशन के लिए '/ assets' पर ज़िप करें। एक गैर-एंड्रॉइड वातावरण में एंड्रॉइड की अपेक्षाओं को ठीक से मिलान करने का प्रयास करना मेरे लिए एक नाजुक निर्माण चरण बन गया। आपके लिंक में – Gene
@ JonDiY212 खराब एचटीएमएल। – Noumenon