2012-10-22 17 views
28

मोटोरोला ने अभी एक x86 आधारित एंड्रॉइड फोन जारी किया है। मैं थोड़ा उलझन में हूं कि एआरएम (उदाहरण के लिए नेटफ्लिक्स) के लिए लिखे गए देशी ऐप्स/पुस्तकालय इस फोन पर कैसे चल सकते हैं।एआरएम के लिए देशी एंड्रॉइड कोड x86 पर कैसे चलाया जाता है?

अगर कोई समझा सकता है तो मैं आभारी रहूंगा।

+0

शायद एआरएम मूल कोड x86 पर नहीं चल सकता है, या कम से कम एक एमुलेटर की आवश्यकता है। –

उत्तर

48

हाँ, मूल कोड हूडिनी

क्या इस पुस्तकालय करता है मक्खी पर एआरएम निर्देश पढ़ता है और उन्हें बराबर 86 निर्देश में धर्मान्तरित नामक एक अनुकरण सुविधा का उपयोग कर इंटेल x86 पर चलता बांह। यही कारण है कि कई ऐप्स वास्तव में समकक्ष पुस्तकालय बनाने के बिना x86 पर काम कर सकते हैं।

enter image description here

+0

मुझे लगता है कि डेवलपर ने जानबूझकर एनडीके का उपयोग करने वाले एप्लिकेशन के प्रकार की गणना भारी और संभवतः वास्तविक समय की गणना की है। मुझे कल्पना नहीं है कि कोड अनुवाद बहुत अच्छी खबर होगी। – marko

+1

क्या यह दूसरी तरफ गोल करना संभव नहीं होगा? तो x86 से एआरएम? ताकि विंडोज आरटी x86 ऐप्स के साथ काम करेगी? और प्रदर्शन प्रदर्शन भारी है? – Yamcha

+0

यह केवल एंड्रॉइड पर है। मुझे नहीं पता कि खिड़कियां अपने ऐप्स को आर्क के दोनों हिस्सों में कैसे पोर्ट कर रही हैं। प्रदर्शन हिट बहुत कम है। मैंने x86 पर संघर्ष करने वाले ऐप्स के बारे में शिकायतें नहीं सुनी हैं। –

9

तुम वास्तव में विभिन्न वास्तुकला के लिए अलग अलग मूल कोड शामिल कर सकते हैं, यकीन नहीं कैसे Netflix चल रहा है, लेकिन आप खुले apk आप /lib/armeabi-v7a/ देख सकते हैं, तो मैं वहाँ की तरह /lib/x86/

संपादित एक फ़ोल्डर कुछ हो सकता है ग्रहण: मैं बस अमेज़ॅन शॉपिंग ऐप की जांच की गई है, इसमें हाथ और x86 के लिए मूल कोड है। तो शायद यह भी नेटफ्लिक्स कैसे करता है।

+0

मुझे लगता है कि निर्देशिका रूट 'libs' 'lib' नहीं है, फिर भी एक अच्छा उत्तर – Blackbelt

0

Trend Micro Safe Mobile Workforce में, हम एंड्रॉयड क्षुधा में देशी पुस्तकालय के लिए एक हाथ क्रम (नहीं इंटेल की हूडिनी) है। ताकि हम शक्तिशाली x86 सर्वर पर केवल एआरएम lib के साथ चल रहे एपीके का समर्थन कर सकें।

0
  • सीपीयू रहे हैं "ट्यूरिंग पूरा" (मेमरी सीमा तक)
  • सीपीयू एक सरल नियतात्मक व्यवहार कि परिमित स्मृति ट्यूरिंग मशीन के साथ

इसलिए नकली किया जा सकता है, यह है कि किसी भी सीपीयू स्पष्ट है पर्याप्त स्मृति दी गई किसी भी सीपीयू का अनुकरण कर सकते हैं।

कठिन सवाल यह है कि तेजी से कैसे करें।

इंटेल की हुदिनी के अलावा, मैं दृढ़ता से अनुशंसा करता हूं कि आप अध्ययन करें कि क्यूईएमयू कैसे करता है।

QEMU x86 पर एआरएम चलाने का अग्रणी तरीका है। यह जीपीएल सॉफ्टवेयर है, और एंड्रॉइड डेवलपर्स द्वारा उपयोग किए जाने वाले एंड्रॉइड एमुलेटर के मूल के रूप में उपयोग किया जाता है।

x86 पर एआरएम पर कम समर्थन है, लेकिन मुख्य अवधारणाओं को विपरीत में समान होना चाहिए।

विशेष रूप से, उपयोगकर्तालैंड इम्यूलेशन मोड के साथ खेलें। कि मोड के साथ, आप 86 मेजबान पर एक स्थिर जुड़ा हुआ एआरएम निष्पादन चला सकते हैं बस के रूप में:

qemu-arm-static ./executable 

कुछ विचार:

  • निर्देश मेजबान निर्देश
  • सिस्टम कॉल को भेजा जाता है में अनुवाद किया गया होस्ट