2016-07-14 7 views
23

के भीतर एक अनुरूपित एंड्रॉइड वातावरण बनाएं शीर्षक के अनुसार, मुझे अपने ऐप के भीतर एक अनुरूपित एंड्रॉइड वातावरण बनाना होगा। मुझे डिवाइस पर इंस्टॉल किए बिना इस वातावरण पर एप्लिकेशन इंस्टॉल करने में सक्षम होना चाहिए।मेरे आवेदन

मुझे पता है कि यह संभव है क्योंकि this app ऐसा करता है।

मैं थोड़ी देर के लिए खोज कर रहा हूं और मुझे पता है कि ऐप एंड्रॉइड पर्यावरण बनाकर ऐसा करता है, लेकिन मुझे ऐसा करने के लिए कोई प्रतीत नहीं होता है।

संपादित:

मैं किसी अन्य ऐप्स कि यह

Parallel Space

+1

यह इस ऐप डाउनलोड मॉड्यूल की तरह सीम है, न कि नए ऐप्स। उन्होंने अभी एक ही ऐप में डाउनलोड मॉड्यूल चलाने के लिए प्रोग्राम बनाया है। – acac97

+0

मैंने पढ़ा है कि यह समांतर वातावरण बनाता है .. संपादन की जांच करें –

उत्तर

1

खुद एक का निर्माण कर सकते हैं मिल गया!

एंड्रॉयड Kernal पर बनाया गया है, तो एक लिनक्स

करता है यहाँ github पर एक काम परियोजना के लिए एक लिंक है जो एक Linux वातावरण

Here में शानदार काम करता है कि यह कैसे बनाया गया है पर दस्तावेज़ीकरण है!

3

यह ऐप चलाने के लिए आपको किस डिग्री की आवश्यकता है और ऐप को "इंस्टॉल" करने का क्या मतलब है। ध्यान रखें कि .apk फ़ाइल केवल एक जावा .jar फ़ाइल है जिसमें विभिन्न स्थानों पर कुछ अतिरिक्त डेटा टकरा गया है।

ताकि इसे स्थापना के बिना एक Android आवेदन के कुछ भागों को चलाने के लिए, आपको

  1. ओपन करने की जरूरत है और apk पार्स होगा। This APKParser class शुरू करने के लिए एक अच्छी जगह हो सकती है।
  2. किसी भी अनुमति का अनुरोध करें जिसमें ऐप में प्रश्न की आवश्यकता है जो पहले से ही आपके ऐप द्वारा अनुरोध नहीं किया गया है। एंड्रॉइड के पुराने संस्करणों में आपको बस शुरू करने के लिए सभी संभावित अनुमतियों का अनुरोध करना होगा, लेकिन नए संस्करणों के साथ आप सुविधाजनक होने पर वास्तविक अनुमति अनुरोध संवाद करने के लिए requestPermissions कर सकते हैं।
  3. एप्लिकेशन से class.dex को अपने डेटा फ़ोल्डर में कॉपी करें। यदि यह आपके द्वारा उपयोग की जाने वाली किसी भी सामान्य कक्षा का उपयोग करता है, तो आप शायद इन्हें डीएक्स फ़ाइल से बाहर करना चाहते हैं ताकि आपके पास क्लास लोडिंग विवाद न हो, या फिर कक्षा लोडर के साथ बहुत सावधान रहें।
  4. Load the dex file एक DexFileLoader के साथ।
  5. इस बिंदु पर आप एपीके में बस किसी भी कोड को लोड कर सकते हैं, लेकिन आप क्रियाकलापों का सीधा भार नहीं कर पाएंगे, क्योंकि उन्हें आपके AndroidManifest.xml में परिभाषित नहीं किया गया है। इसके बजाए, आपको एक "मुखौटा" गतिविधि बनाने की आवश्यकता होगी जो प्रतिबिंब में वास्तविक गतिविधि को होस्ट करे और प्रतिबिंबित गतिविधि में संदर्भ की तरह चीजों को तारित करे।

ये चरण शायद उन्हें इंस्टॉल किए बिना कम से कम सरल ऐप्स चलाने के लिए काम करना चाहिए।

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