2012-12-03 10 views
60

एंड्रॉइड के लिए सबसे अच्छा ओआरएम उपकरण कौन सा है?ग्रीन डीएओ बनाम ओआरएम लाइट बनाम सक्रिय एंड्रॉइड

मैं देख रहा हूं कि ओआरएमलाइट और एक्टिव एंड्रॉइड सबसे ज्यादा चर्चा की गई है और मेरे एक दोस्त ने मुझे ग्रीनडाओ का उपयोग करने का सुझाव दिया है। तो कुछ ज्ञान संसाधन की तलाश है जो निर्णय लेने में मेरी मदद कर सकता है?

विशेषताएं जिनके बारे में मैं निर्णय ले रहा हूं वे स्वतंत्र रूप से उपलब्ध हैं (ओपन सोर्स), अच्छे दस्तावेज़ीकरण, सक्रिय मंच, स्थिर संस्करण उपलब्ध हैं, जो कि कभी भी डेवलपर के लिए आवश्यक हैं।

+4

ग्रीनडाओ उपयोग करने में आसान है लेकिन इसकी सीमा है, पूर्व के लिए। कोई ओआरएमएलआईटी के कैश के विपरीत कैश को कॉन्फ़िगर नहीं कर सकता है और यह "असली" ओआरएम नहीं है। मैं अपने उत्तर की व्याख्या करूंगा, ORMLite में आप कैश को किसी तरीके से कॉन्फ़िगर कर सकते हैं कि ग्रीनडाओ में डेटाबेस तक पहुंचने की आवश्यकता नहीं हो सकती है, यह संभव नहीं है और प्रत्येक क्वेरी डेटाबेस – Nativ

+0

पर इंगित करती है, यह प्रश्न पूछने के लिए धन्यवाद – necromancer

+0

एक अन्य कारक एंड्रॉइड आर्किटेक्चर के बारे में सोचें। ORMLite आपको एक गतिविधि का विस्तार करता है, जो कुछ आर्किटेक्चर के साथ काम नहीं कर सकता है। – stevebot

उत्तर

23

मैं सुझाव दूंगा कि ओपनलाइट ओपन सोर्स फ्रीवेयर & में अच्छा दस्तावेज भी है, यह जावा और एंड्रॉइड का भी समर्थन करता है।

इसमें अच्छा डेवलपर समर्थन & ओआरएमलाइट पर चल रहे कई एप्लिकेशन (जिसमें मैंने विकसित किया है :))।

अपने संदर्भ के लिए ORMLite & ग्रीन डीएओ के comparison को देखें।

+2

का उपयोग करने के लिए धन्यवाद करते हैं, तो मुझे गतिविधि को बढ़ाने की आवश्यकता नहीं है, लेकिन उस तुलना में मुझे कोई बड़ा अंतर ORMLite और GreenDAO दिखाई नहीं देता है। मैं ग्रीनडाओ को बेहतर प्रदर्शन करने में सक्षम हूं, लेकिन ORMLite लोकप्रिय है। अभी भी यह जानने की कोशिश कर रहा है कि कौन से ओआरएमएलएट को बेहतर प्रदर्शन करता है। –

+1

उपरोक्त टिप्पणियों का समर्थन करने के लिए लिंक जोड़ना http://stackoverflow.com/questions/11537561/which-java-orm-is-suitable-for-android-os-and-support-lazy-list http: // greendao-orm। कॉम/फीचर्स/ –

+4

तुलना के संबंध में ... मैं पुस्तकालय 'वजन' के माप के रूप में जेएआर फ़ाइल आकार के उपयोग को समझ नहीं पा रहा हूं। एक पुस्तकालय में कई अतिरिक्त वैकल्पिक कार्यक्षमता हो सकती है जो अधिकांश परियोजनाओं में छीन ली जाती है।मुझे लगता है कि प्रत्येक की मूल परियोजना बनाना और रिलीज बिल्ड के लिए एपीके आकार डेल्टा की जांच करना आवश्यक होगा। – Tom

11

ORMLite और GreenDAO के बीच एक अंतर एनोटेशन का उपयोग है। जबकि ORMLite एनोटेशन का उपयोग करता है, ग्रीनडाओ here वर्णित नहीं है।

ORMLite द्वारा उपयोग की गई टिप्पणियां प्रतिबिंब पर भरोसा करती हैं, जो विशेष रूप से धीमी एंड्रॉइड डिवाइसों पर नकारात्मक प्रभाव में प्रदर्शन को प्रभावित कर सकती हैं। ORMLite और GreenDAO की तुलना में बेंचमार्क देखना दिलचस्प होगा।

+16

एंड्रॉइड पर ORMLite एक संकलन-समय जेनरेट की गई कॉन्फ़िगरेशन फ़ाइल का उपयोग कर सकता है जो ऐप उपयोग के दौरान पूरी तरह से प्रतिबिंब पर निर्भर करता है। एनोटेशन का उपयोग करना मेरे लिए महत्वपूर्ण है क्योंकि आप मौजूदा मॉडल ऑब्जेक्ट्स का उपयोग कर सकते हैं। https://github.com/littleinc/android-orm-benchmark – nobre

+1

यहाँ आप एक Github परियोजना है कि कच्चे SQLite को ORMLite और GreenDao के प्रदर्शन की तुलना की है। एनोटेशन का उपयोग कर पुस्तकालय प्रतिबिंब पर भरोसा कर सकते हैं। AndroidAnnotations, डैगर 2, रेट्रोफिट, ButterKnife, LoganSquare, Gson, वायर, आदि जो संकलन समय पर बॉयलरप्लेट कोड उत्पन्न एनोटेशन प्रोसेसर का उपयोग कर पुस्तकालयों के उदाहरण हैं, और सभी –

+1

एनोटेशन प्रतिबिंब पर भरोसा नहीं करते: –

5

मेरे द्वारा उपयोग की जाने वाली कई पुस्तकालयों के साथ एक मुद्दा यह है कि उन्हें आवश्यकता है कि उनका प्रारंभिकरण Android.app.Aplication.onCreate() में हो। मैं पसंद करता हूं कि पुस्तकालय मुझे एक माध्यमिक धागे में, सेवा में, या उपयोगकर्ता इंटरफ़ेस प्रदर्शित करने के बाद अपना प्रारंभिक करने की अनुमति देता है।

मुझे विश्वास है कि सक्रिय एंड्रॉइड में यह 'समस्या' है, और ORMLite नहीं है। मुझे ग्रीनडाओ के बारे में निश्चित नहीं है।

चाहे यह वास्तव में एक समस्या है, आपके आवेदन पर निर्भर करता है, लेकिन मुझे लगता है कि the docs for onCreate() कहता है "कार्यान्वयन जितना जल्दी हो सके (उदाहरण के लिए राज्य के आलसी प्रारंभिक उपयोग का उपयोग करना चाहिए) क्योंकि इस समारोह में बिताए गए समय से सीधे प्रदर्शन पर असर पड़ता है एक प्रक्रिया में पहली गतिविधि, सेवा, या रिसीवर शुरू करने के लिए। "

इससे संबंधित नहीं, मुझे लगता है कि ActiveAndroid ऑरमोलाइट की तरह एनोटेशन का उपयोग करता है, लेकिन ग्रीनडाओ के विपरीत जो कोड जनरेशन का उपयोग करता है।

+0

चीनी ORM, काफी प्रकाश जुलाई में जारी किया गया था का समर्थन करता है पर दूसरी ओर इस समस्या पैदा नहीं करता है। यदि आप चाहें तो आप अंदरूनी सेवाओं से चीजें कर सकते हैं। –

+0

[JDXA] (http://www.softwaretree.com/2015/products/jdxa/jdxa.html) Android के लिए ORM आपके आवेदन जीवन चक्र में किसी भी समय प्रारंभ की सुविधा प्रदान करता है। जेडीएक्सए ओआरएम के [केआईएसएस सिद्धांत] (http://www.softwaretree.com/2015/KISSPrinciples.html) का पालन करता है। जेडीएक्सए एनोटेशन का उपयोग नहीं करता है। यह आपके डोमेन ऑब्जेक्ट मॉडल के लिए पूरी तरह से गैर-घुसपैठ कर रहा है - किसी भी बेस क्लास से उप-वर्ग की आवश्यकता नहीं है; डीएओ कक्षाओं की कोई ज़रूरत नहीं है। –

संबंधित मुद्दे