कैसे बताएं कि एपीके किस आर्किटेक्चर के लिए है?


9

मैं बड़ी मात्रा में एपेक का परीक्षण करने के लिए एक स्क्रिप्ट लिख रहा हूं। कुछ x86 पर चलते हैं और कुछ बांह पर चलते हैं। क्या कोई तरीका है जो मैं बता सकता हूं कि किस वास्तुकला के लिए कौन से एप्स का इरादा है?

मैं के साथ anapt बैजिंग पर रिपोर्ट के माध्यम से देखा है aapt dump badging application.apk। हाथ से संगत कुछ संस्करणों के लिए मैं देख रहा हूं, native-code: 'armeabi-v7a'लेकिन उन सभी के लिए नहीं, और मुझे कोई संकेत नहीं दिखता है कि x86 संगत एप्स किस वास्तुकला पर चलते हैं।

मैंने एपीके को तोड़ने और AndroidManifest.xml की जांच करने के लिए apktool का उपयोग करने की भी कोशिश की है। मुझे इसमें चिप आर्किटेक्चर से संबंधित कुछ भी दिखाई नहीं दे रहा है।

कोई विचार?

जवाबों:


17

एपीके के देशी पुस्तकालयों को किस आर्किटेक्चर के लिए बनाया गया है, यह देखने के लिए एक (बल्कि कच्चा) तरीका है कि इसे अनज़िप करें (यह केवल एक ज़िप फ़ाइल है) और लिबास फ़ोल्डर पर एक नज़र डालें - यदि एप्लिकेशन में कोई मूल लाइब्रेरी शामिल है, तो वे अलग हो जाएंगे निम्नलिखित सबफ़ोल्डर्स अंदर (इन के अंदर संकलित पुस्तकालयों के साथ):

एपीके की संरचना, और उपरोक्त सूची के स्रोत के बारे में अधिक जानकारी के लिए Android एप्लिकेशन पैकेज देखें । आर्किटेक्चर-विशिष्ट चीजों के बारे में कुछ जानकारी के साथ एक और पूर्ण (MIPS64 सहित) सूची, Android डेवलपर ABI प्रबंधन पृष्ठ के एक संग्रहीत संस्करण पर पाई जा सकती है , जिसे 18 अप्रैल 2016 को कैप्चर किया गया था।

दिलचस्प रूप से पर्याप्त है, एक एकल एबीआई (जहां एक ऐप में एक आर्किटेक्चर के लिए डिज़ाइन किए गए देशी पुस्तकालय शामिल हैं) को लक्षित करने का मतलब यह नहीं है कि ऐप अन्य आर्किटेक्चर का उपयोग करने वाले उपकरणों पर नहीं चलेगा। ARMv8-a, उदाहरण के लिए, ARM और ARMv7-a के साथ पीछे की ओर संगत है, और Intel के x86 एंड्रॉइड डिवाइस में एक मालिकाना अनुवाद परत होती है जो ARM कोड को x86 डिवाइसों पर निष्पादित करने की अनुमति देती है (ARM- केवल एप्स को xx प्लेटफॉर्म पर चलने की अनुमति देता है)। ABI की एक सूची जो एक एंड्रॉइड डिवाइस को निष्पादित कर सकती है, ro.product.cpu.abilistसंपत्ति में पाई जा सकती है , जिसे कमांड का उपयोग करके एक शेल में प्राप्त किया जा सकता है (जैसे डिवाइस पर एक टर्मिनल ऐप के माध्यम से, या एडीबी का उपयोग करके adb shell) ।getpropgetprop ro.product.cpu.abilist

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