2010-03-04 11 views
9

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

मैं लगता यह सिर्फ Android.mk फ़ाइल के LOCAL_CFLAGS में -march ध्वज की स्थापना की जानी चाहिए, लेकिन मुझे लगता है कि काम करने के लिए नहीं मिल सकता है ...

किसी को भी मदद कर सकते हैं?

उत्तर

16

Android.mk में मॉड्यूल के लिए निम्न ध्वज निर्दिष्ट करना सीधे एआरएम कोड संकलित करेगा।

LOCAL_ARM_MODE := arm 

को सक्षम करने से अनुकूलन भी मदद मिल सकती:

LOCAL_CFLAGS := -O3 
16

आप एआरएम, थंब, या दोनों के मिश्रण में निर्माण कर सकते हैं।

मेकफ़ाइल में, LOCAL_SRC_FILES में, जहां आप MyFile.c सूचीबद्ध करेंगे, MyFile.c.arm निर्दिष्ट करें (डिस्क पर फ़ाइल का नाम बदलें, बस इसे स्रोत फ़ाइलों की सूची में करें)। यह सम्मेलन पूरे एंड्रॉइड में कोड के लिए उपयोग किया जाता है जो प्रदर्शन-महत्वपूर्ण है (या किसी कारण से केवल एआरएम होना चाहिए)।

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

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