मैं एंड्रॉइड के लिए बैकएंड के रूप में ओपनएमआरएस का उपयोग कर एक मेडिकल रिकॉर्ड सिस्टम विकसित करने पर काम कर रहा हूं। ओपनएमआरएस हाइबरनेट और स्प्रिंग समेत कुछ गंभीर हेवीवेट पुस्तकालयों पर निर्भर है।एंड्रॉइड के लिए पोर्टिंग जावा सर्वर
पूरे ओपनएमआरएस एप्लिकेशन "डेक्सिंग" एक फ़ाइल उत्पन्न करता है जो एंड्रॉइड क्लासेस.dex फ़ाइल प्रारूप के लिए भी बड़ा है (यह आकार सीमा पहले से ही अच्छी तरह से प्रलेखित है)। इसके आस-पास पहुंचने के लिए, मैं वर्तमान में निर्भरताओं से कई डीएक्स फाइलें बनाने और एंड्रॉइड के डीएक्स क्लासलोडर का उपयोग करके रनटाइम के दौरान लोड करने पर काम कर रहा हूं।
जिस तरह से सर्वर का मोबाइल संस्करण अभ्यास में उपयोग किया जाएगा, वास्तविक निर्भरताओं के बावजूद वास्तविक प्रसंस्करण मांग बहुत कम होगी। मैं यहां अपने फोन पर एंटरप्राइज़ सर्वर चलाने की कोशिश नहीं कर रहा हूं।
इससे पहले कि मैं इसे इंजीनियर करने की कोशिश कर रहा हूं, मैं बस सप्ताह के अधिक समय बिताता हूं, मैं सिर्फ डेवलपर समुदाय से पूछना चाहता था: क्या यह रणनीति सिर्फ एक पाइप सपना है? अगर मैं इन सभी पुस्तकालयों को लोड करता हूं, तो क्या संपूर्ण बाइनरी रैम में लोड हो जाएगी और सिस्टम को तोड़ देगा? क्या इस तरह के एक आवेदन को अनुकूलित करने के लिए एक अच्छा तरीका है? क्या कोई स्पष्ट समस्या या समाधान है जो मैं यहां याद कर रहा हूं?
पहली नज़र में, मैं कहूंगा कि एंड्रॉइड पर हाइबरनेट और स्प्रिंग चलने का सपना अवास्तविक है। इन सभी निर्भरताओं के लिए पर्याप्त रैम रखने की सरल समस्या आपको अपने ट्रैक में मृत कर देती है। – Prime
आपने http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html देखा है? यहां का कठिन हिस्सा ऐसा लगता है कि विभिन्न डीएक्स फाइलें अतिरिक्त कोड या प्रीप्रोकैसिंग के बिना एक-दूसरे के बीच कॉल नहीं कर सकती हैं। (मान लें कि आपको जो चाहिए वह करने के लिए पर्याप्त स्मृति है।) –
यह निश्चित रूप से "क्लाइंट/सर्वर" के लिए रोता है। इस ऐप के साथ एक महत्वपूर्ण मुद्दा गोपनीयता (एचपीआईएए नियम आदि) बीमा करना होगा – paulsm4