क्या एंड्रॉइड 32-बिट या 64-बिट ओएस है?


46

शीर्षक बहुत आत्म-व्याख्यात्मक है: Android एक 32- या 64-बिट OS है? मुझे लगता है कि यह एक या एक और दोनों नहीं है, क्योंकि यह दोनों 32- और 64-बिट बायनेरिज़ को Google Play पर होस्ट करने के लिए मजबूर करेगा। मुझे पता है कि यह एक सरल सवाल है, और यह कि अन्य लोग इसे पूछ रहे हैं, लेकिन मेरे जीवन के लिए मुझे वेब पर एक उत्तर नहीं मिल पाया है, और निश्चित रूप से इस एसई पर एक नहीं है।

जवाबों:


48

एआरएम चिपसेट के दायरे में, जो कि सामान्य कारक है, संपूर्ण एंड्रॉइड स्टैक, लिनक्स पर आधारित निकट-समान कर्नेल से, वास्तव में, 32 बिट, क्रॉस से संकलित या तो आमतौर पर 32 बिट / 64 बिट मेजबान वातावरण, मेजबान वातावरण आमतौर पर लिनक्स के वितरण में से एक है। एंड्रॉइड के निर्माण और क्रॉस-संकलन के लिए Google द्वारा अनुशंसित वितरण, उबंटू है

एंड्रॉइड रन-टाइम लाइब्रेरी (मीडिया, ग्राफिक्स, फाइलसिस्टम, नाम करने के लिए लेकिन कुछ) भी 32 बिट हैं, लेकिन जैसे-जैसे हम डैल्विकम की परत तक पहुंचते हैं, तब बिट्स की संख्या अप्रासंगिक हो जाती है, क्योंकि यह इस बिंदु पर है, आने वाले एप्स Google Play Store से देशी बाईटेकोड (ए "बाय-प्रोडक्ट" जेनरेट किए गए जावा कोड को एक पोर्टेबल बाइटेकोड में संकलित किया जाता है) जो डालविकवीएम (वर्चुअल मशीन) को लक्षित करता है जो बदले में कच्चे एआरएम इंस्ट्रक्शन सेट को लक्षित करता है और बाईटकोड को ट्रांसलेट करता है।

फ्रायो आखिरी एंड्रॉइड था जिसने 32 बिट होस्टेड वातावरण के तहत संकलन को सक्षम किया था जिसमें यह एआरएम चिपसेट को लक्षित करते हुए क्रॉस-संकलित किया गया था।

जिंजरब्रेड तीन साल पहले "भविष्य" एंड्रॉइड, बैक और सर्का का पहला था, जिसने 64 बिट होस्ट किए गए वातावरण का उपयोग करने की आवश्यकता को पेश किया था जिसमें यह बनाया गया था। 32 बिट होस्टेड माहौल के तहत जिंजरब्रेड बनाने के लिए कई हैक थे।

आईसीएस और जेबी, और ऊपर की ओर अब निश्चित रूप से संकलन में तेजी लाने और इमारत में बारी-बारी के समय को कम करने के लिए 64 बिट पर्यावरण की आवश्यकता होती है।

तो संक्षेप में, आप जो प्ले स्टोर पर देखते हैं, उस पर कोई असर नहीं पड़ता है कि क्या 32 बिट या 64 बिट का उपयोग किया जाता है और इस तरह अप्रासंगिक है।

साइड नोट: विशिष्ट 16 जीबी रैम / क्वाड कोर / 64 बिट लिनक्स वितरण, खरोंच से आईसीएस के निर्माण में लगने वाला समय, अधिकतम 30 मिनट लगता है, यह 32 बिट लिनक्स वितरण होने के नाते था, इसमें अधिक समय लगेगा, वास्तव में सीपीयू सीपीयू के कारण हो सकता है के रूप में वहाँ बस है, मंथन और बाहर क्रैंक पार संकलित कोड है, जो करने के लिए पर्याप्त नहीं प्रसंस्करण शक्ति है एक बहुत की मांग की और कर लगाने की प्रक्रिया!

इसका प्रमाण।

उदाहरण के लिए, /system/binया में पाए गए किसी भी मूल एआरएम बाइनरी में खींचो , यह Dalvik VM बाइनरी है जो जावा और APK की ऊपरी परतों के लिए जिम्मेदार है।/system/xbin/system/bin/dalvikvm

अब, इस आदेश को जारी करके द्विआधारी की जांच करें: file dalvikvmजो उस प्रकार की फ़ाइल का सारांश देता है, अपेक्षित आउटपुट यह होगा:

dalvikvm: ईएलएफ 32-बिट एलएसबी निष्पादन योग्य, एआरएम, संस्करण 1 (एसवाईएसवी), गतिशील रूप से जुड़ा हुआ (साझा लिबास का उपयोग करता है), छीन लिया गया

32-बिट ईएलएफ के संदर्भ को नोटिस करें, और एआरएम से क्रॉस-संकलित किया गया है और एक द्विआधारी निष्पादन योग्य है।

सही है, चलिए, एक देशी साझा पुस्तकालय का निरीक्षण करते हैं /system/lib, उदाहरण के लिए /system/lib/libandroid_runtime.so, अब जारी करते हैं file libandroid_runtime.so, अपेक्षित आउटपुट यह होगा:

libandroid_runtime.so: ELF 32-बिट LSB साझा ऑब्जेक्ट, ARM, संस्करण 1 (SYSV), गतिशील रूप से जुड़ा हुआ, छीन लिया गया

फिर से, नोटिस, इसकी 32-बिट ईएलएफ, एआरएम से क्रॉस-संकलित और एक साझा पुस्तकालय है।

होस्ट के क्रॉस-संकलन की कुंजी को एओएसपी स्रोत में पाया जा सकता है, अर्थात, जिंजरब्रेड बिल्ड को मूल रूप से 64 बिट होस्ट सिस्टम पर बनाया जाना था, यहां समाचार समूह लिंक का उल्लेख है कि इसे बनाने के लिए स्क्रिप्ट को कैसे पैच करना है। 32 बिट होस्ट जिसमें दो पैच हैं, एओएसपी की गेरिट समीक्षा पर , ( build/core.mkऔर संयुक्त ) के लिए यहां पाया गया है ।build/main.mk

बाद के परिणाम के रूप में, इस पैच ने आईसीएस की निर्माण लिपियों के लिए अपना रास्ता बना लिया था जिसमें मुझे एक 32 बिट प्लेटफॉर्म पर आईसीएस संकलित करने का विशेषाधिकार मिला था जिसे बनाने में 3 दिन का समय लगा ( यह जेट ब्लेड के लिए आईसीएस का एक बंदरगाह था )। अब, आवश्यकताओं, ऊपर बढ़ा दिया जाता है आप करते हैं निश्चित रूप से ऊपर की तरफ ICS की ओर से AOSP के निर्माण के पार संकलन सक्षम करने के लिए 64 बिट मेजबान की जरूरत है :)


2
दिलचस्प सामान, लेकिन जवाब में कुछ स्रोतों का होना अच्छा होगा।
मूंगफली

2
+1, क्योंकि यदि कोई स्रोत नहीं हैं, तो शोध के लिए कम से कम आधा पैर काम करने में मदद करने के लिए किया गया था जो देखने के लिए है। क्या मदद करने और सवाल का जवाब देने में एक सभ्य प्रयास करने के लिए आदमी नहीं है ...
22

1
64-बिट एंड्रॉइड चलाने वाले अब 64-बिट एआरएम डिवाइस हैं।
मैथ्यू पढ़ें

1
मैं नीच हूं क्योंकि अधिकांश उत्तर एंड्रॉइड को संकलित करने के लिए उपयोग किए जाने वाले वातावरण के बारे में है, जो सवाल के लिए पूरी तरह अप्रासंगिक है।
दान हुल्मे

1
हां, यह सच है, और मैं आज स्थिति के बारे में एक नया जवाब पोस्ट करने जा रहा हूं, लेकिन संकलन वातावरण हमेशा एक लाल हेरिंग रहा है।
दान हुलमे

8

मूल रूप से, एंड्रॉइड को केवल 32-बिट प्रोसेसर के लिए लिखा गया था: और विशेष रूप से, 32-बिट एआरएम प्रोसेसर। बाद में, इंटेल और MIPS ने एंड्रॉइड को अपने आर्किटेक्चर का समर्थन करने में बहुत अधिक निवेश किया: लेकिन अभी भी केवल 32-बिट प्रोसेसर। वे (कई) संगतता समस्याओं के बिना ऐसा करने में सक्षम थे, क्योंकि अधिकांश एप्लिकेशन को बायनेरिज़ के रूप में शिप नहीं किया गया है। जावा में लिखित, उन्हें इसके बजाय बाइटकोड के रूप में भेज दिया जाता है , जो फोन पर एक आभासी मशीन ऐप के चलने पर फोन की वास्तुकला के लिए संकलित करता है। कुछ ऐप में देशी शामिल हैंघटक, जो बाइनरी के रूप में शिप किए जाते हैं। यह कुछ प्रकार के ऐप्स को तेज़ बनाने के लिए किया जाता है (विशेष रूप से गेम), या एप्लिकेशन को उन पुस्तकालयों तक पहुंचने देता है जो जावा में उपलब्ध नहीं हैं। उन ऐप्स में मूल कोड भागों के लिए एक से अधिक बाइनरी शामिल हो सकते हैं, जिससे उन्हें विभिन्न आर्किटेक्चर पर चलने की अनुमति मिल सके। फिर भी, अधिकांश एप्लिकेशन जावा-ओनली हैं, इसलिए वे किसी भी आर्किटेक्चर पर काम करते हैं।

यह प्रश्न (और अधिकांश अन्य उत्तर) लिखे जाने के समय उपरोक्त सभी सही था, लेकिन अब नहीं। लॉलीपॉप ने नए 64-बिट एआरएम प्रोसेसर ( ARMv8) के लिए समर्थन पेश किया) साथ ही इंटेल और एएमडी के x86_64 प्रोसेसर के लिए, जिसका अर्थ है कि एंड्रॉइड अब 32-बिट और 64-बिट प्रोसेसर दोनों का समर्थन करता है। Nexus 9 पहला फ्लैगशिप 64-बिट एंड्रॉइड डिवाइस था। नए निर्देश सेट एक्सटेंशन तक पहुंच प्रदान करने के साथ-साथ 64-बिट समर्थन का मतलब है कि ऐप 4 जीबी से अधिक रैम का उपयोग कर सकते हैं। अधिकांश ऐप्स को उतनी आवश्यकता नहीं होगी, लेकिन उच्च-स्तरीय गेम और फोटो / वीडियो निर्माण सॉफ़्टवेयर निश्चित रूप से इसका उपयोग कर सकते हैं: एंड्रॉइड को कंसोल-क्वालिटी गेम्स (वीआर गेम सहित) और सामग्री बनाने के लिए एक मंच की ओर धकेलना। इसका लाभ उठाने के लिए जावा ऐप को अपडेट करने की आवश्यकता नहीं है, क्योंकि वर्चुअल मशीन हमेशा उन्हें फोन की वास्तुकला के लिए संकलित करती है, लेकिन देशी इच्छाशक्ति वाले ऐप।

क्योंकि ARMv8 32-बिट कोड के साथ पीछे की ओर संगत है (उसी तरह x86_64 अभी भी x86 कोड चला सकता है), यहां तक ​​कि जिन ऐप्स में 32-बिट प्रोसेसर के लिए देशी कोड शामिल हैं, वे अभी भी 64-बिट एंड्रॉइड पर चल सकते हैं। इसलिए एक ऐप को केवल 64-बिट के लिए संकलित करने की आवश्यकता है यदि इसमें मूल कोड शामिल है और यह उच्च रैम सीमा या वास्तुकला की नई विशेषताओं का लाभ लेना चाहता है।


5

सभी एआरएम चिप्स वर्तमान में 32-बिट हैं। इस वजह से, Android वर्तमान में 32-बिट वातावरण में सभी कोड निष्पादित करता है।

64-बिट प्रोसेसर 2014 में लॉन्च करने के लिए तैयार हैं


1
यह एक विश्वसनीय स्रोत नहीं है क्योंकि यह सर्वरों के बारे में बात कर रहा था, "स्मार्टफ़ोन थोड़ा आगे है," उद्धरण के लिए , फोर्सिथ ने कहा। , हम एंड्रॉइड / स्मार्टफोन / टैबलेट के संदर्भ में एआरएम के बारे में बात कर रहे हैं।
t0mm13b

2

क्या Android एक 32- या 64-बिट OS है? मुझे लगता है कि यह एक या एक और दोनों नहीं है, क्योंकि यह दोनों 32- और 64-बिट बायनेरिज़ को Google Play पर होस्ट करने के लिए मजबूर करेगा।

न वास्तव में। Android एक Dalvik VM-आधारित OS है, और Google Play, Dalvik अनुप्रयोगों को होस्ट करता है। जावा वीएम की ही तरह, Dalvik VM, भौतिक मशीन की बिटनेस की परवाह किए बिना हमेशा 32-बिट होता है।

जैसा कि आपको संदेह है, देशी बायनेरिज़ और एनडीके अनुप्रयोगों वाले जहाजों को हर आर्किटेक्चर के लिए संकलित बायनेरिज़ के साथ जहाज करना चाहिए जो इसे चलाने का इरादा है। एंड्रॉइड पर चलने वाली सबसे आम वास्तुकला एआरएम 32-बिट है; हालाँकि ऐसे उपकरण भी हैं जो x86 और MIPS पर चलते हैं।


0

मैं सिर्फ अनुमान लगा रहा हूं, लेकिन मुझे लगता है कि यह भी आसान है। यह इस बात पर निर्भर करता है कि आप किस उपकरण का उपयोग कर रहे हैं, यह चार प्रकार के ओएस है जो ARM, ARM 64, X84 और X84_64 है। एआरएम लोकप्रिय 32 बिट प्लेटफॉर्म है, एआरएम 64 भी लोकप्रिय है, लेकिन 64 बिट प्लेटफॉर्म, एक्स 84 एक असामान्य प्लेटफॉर्म है और इसका इस्तेमाल ज़ेनफोन पर किया जाता है, साथ ही एक्स 84_64 इसके असामान्य और एंड्रॉइड एमुलेटर पर उपयोग किया जाता है। मुझे ओपन ओएस पर इस ओएस की जानकारी मिली

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.