2011-03-01 8 views
14

एक Android 3.0 अनुप्रयोग में हार्डवेयर त्वरण सक्षम करने के लिए मैं यह कर सकता Android एप्लिकेशन में हार्डवेयर त्वरण सक्षम:को लक्षित हनीकोम्ब और पूर्व संस्करण

<application android:hardwareAccelerated="true" ... /> 

लेकिन एप्लिकेशन उस गुण अगर मैं वर्तमान के साथ निर्माण नहीं होगा ओएस संस्करण प्री -11 को लक्षित करें। क्या ऐप में हार्डवेयर त्वरण को सक्षम करने का कोई तरीका है जो हनीकॉम और पहले दोनों को लक्षित करता है, या हार्डवेयर त्वरण केवल उन ऐप्स बनाने के लिए उपलब्ध है जो केवल 3.0+ पर काम करते हैं?

मुझे गतिविधि पर एक विधि की तलाश थी लेकिन मुझे कोई नहीं दिखाई देता।

उत्तर

20

3.0 संस्करण में बिल्ड लक्ष्य सेट करने का प्रयास करें, लेकिन minsdkversion को उस पुराने संस्करण में सेट करें जिसे आप समर्थन देना चाहते हैं। इसे कम से कम आपको निर्माण करने की अनुमति देनी चाहिए, लेकिन पुराने संस्करणों पर एचडब्ल्यू-त्वरण को सक्षम नहीं करेगा।

documentation से:

एंड्रॉयड 3.0 से शुरू, एक हार्डवेयर-त्वरित ओपन रेंडरर कई आम 2 डी ग्राफिक्स के संचालन के लिए प्रदर्शन में सुधार करने आवेदन करने के लिए उपलब्ध है। जब हार्डवेयर-त्वरित रेंडरर सक्षम होता है, तो कैनवास, पेंट, एक्सफर्मोड, कलरफिल्टर, शेडर और कैमरा में अधिकांश ऑपरेशन त्वरित होते हैं। इसके परिणामस्वरूप चिकनी एनिमेशन, चिकनी स्क्रॉलिंग और समग्र प्रतिक्रियाएं समग्र रूप से होती हैं, यहां तक ​​कि उन अनुप्रयोगों के लिए भी जो ढांचे के ओपनजीएल पुस्तकालयों का स्पष्ट रूप से उपयोग नहीं करते हैं।

3,0 एपीआई अभी तक अपने आप को परीक्षण किया है नहीं है, लेकिन प्रलेखन इस समर्थन किया जाना चाहिए कहने लगता ...

<manifest ... > 
    <uses-sdk android:minSdkVersion="4" 
      android:targetSdkVersion="11" /> 
    <application ... > 
    ... 
    <application> 
</manifest> 

(Optimizing Apps for Android 3.0

+0

दुर्भाग्य से काम नहीं करता है - मेरे पास minSdkVersion = "5" और targetSdkVersion = "11" है लेकिन यह मैनिफेस्ट में हार्डवेयर त्वरण विशेषता के साथ नहीं बनाएगा। मुझे आशा है कि रनटाइम पर ऐसा करने का एक तरीका है, शायद एक विधि के माध्यम से जिसे मैं प्रतिबिंब के माध्यम से कॉल कर सकता हूं, हालांकि मैं एक नहीं देख सकता। –

+3

अब 3.0 एपीआई इंस्टॉल कर रहा है। क्या आपने दोनों जगहों पर लक्ष्य संस्करण निर्दिष्ट किया था? मैनिफेस्ट (जैसा कि मैंने अभी अपने जवाब में अपडेट किया है), साथ ही एक्लिप्स परियोजना सेटिंग्स (ग्रहण का उपयोग करते हुए)? – Arve

+0

मेरे पास minSdkVersion = "5" और targetSdkVersion "11" के साथ मैनिफेस्ट सेट अप था, लेकिन आप निश्चित रूप से सही हैं कि इस परियोजना को प्लेटफ़ॉर्म 11 लाइब्रेरी के विरुद्ध भी निर्माण की आवश्यकता है। धन्यवाद। –

9

से कटौती तुम मिनट/targetSdkVersion छोड़ सकते हैं जैसा कि आपके मैनिफेस्ट में है। मेरे पास 3 & 8 है। आपको जो करना है वह एसडीके को बदलना है जिसे आप संकलित कर रहे हैं। ग्रहण में, प्रोजेक्ट प्रॉपर्टीज> एंड्रॉइड पर जाएं और एपीआई लेवल के साथ एक परियोजना एपीआई लक्ष्य चुनें 11 या ऊपर (उदाहरण के लिए, "एंड्रॉइड 3.0")

+0

यह काम करता है। बस संकलन संस्करण 11 से ऊपर होना चाहिए और त्रुटि को हल करने के लिए प्रोजेक्ट को साफ़ करना चाहिए – Yogamurthy

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