2012-08-28 8 views
20

मैं एंड्रॉइड पर फोनगैप के तहत और ब्राउज़र में निर्मित एक ही सटीक वेब ऐप चला रहा हूं। ऐप अंतर्निहित ब्राउज़र पर ठीक चलता है लेकिन फोनगैप के तहत अविश्वसनीय रूप से धीमा है। फोनगैप के तहत पेज स्टटर पर भी मूल स्क्रॉलिंग।फ़ोनगैप ब्राउज़र से धीमा क्यों है?

क्या कुछ भी सामान्य है, कि मैं गलत कर रहा हूं? मैं इस धारणा के तहत था कि फोनगैप सामान्य ब्राउजर ऐप के समान वेबकिट रेंडरर का उपयोग करता है, तो वही एचटीएमएल और जावास्क्रिप्ट फोनगैप के अंदर इतना धीमा क्यों होगा?

पीएस यह asked before रहा है, लेकिन शब्दों के कारण मुझे लगता है कि मूल प्रश्न गलत समझा गया था।

+0

वही समस्या का सामना करना पड़ रहा है! फोनगैप निर्माण के लिए कोई समाधान? – byJeevan

उत्तर

16

मैं हो सकता है प्रकट

  • में android:hardwareAccelerated="true" जोड़ना अनजाने पर ठोकर खाई इसका उत्तर यह पता चला है कि जिन ऐप्स पर मैं काम कर रहा था, android:targetSdkVersionAndoroidManifest.xml में वास्तव में कम मूल्य पर सेट किया गया था (यानी मेरा लक्ष्य एंड्रॉइड संस्करण 2.2 जैसा था)। 14 (एंड्रॉइड 4.0) में इसे बढ़ाने से कम से कम आईफोन या जेली बीन चलाने वाले नए एंड्रॉइड डिवाइस पर फोनगैप प्रदर्शन में काफी सुधार हुआ है।

    कम targetSdkVersion सेट करना कम से कम कुछ एंड्रॉइड के नए संस्करणों में पेश किए गए प्रदर्शन सुधारों को अक्षम करना प्रतीत होता है।

    तो, यदि आप फोनगैप में एक बड़ा प्रदर्शन बढ़ावा देखना चाहते हैं, तो सुनिश्चित करें कि आपके targetSdkVersion आपके द्वारा परीक्षण किए जा रहे फ़ोन द्वारा समर्थित अधिकतम एसडीके संस्करण से मेल खाता है।

  • 7

    मैं PhoneGap पता नहीं है, लेकिन आप इन की कोशिश कर सकते हैं:

    • आप वेबव्यू का उपयोग करते हैं webview.getSettings().setRenderPriority(RenderPriority.HIGH); और webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    +0

    क्या यह जोड़ने के लिए कोई टैग है/ – Lekhnath

    +1

    <एप्लिकेशन एंड्रॉइड: हार्डवेयर एक्सेलेरेटेड = "सच" वास्तव में मेरे लिए सुस्त स्क्रॉलिंग समस्या को ठीक करता है – jwinn

    2

    यह प्रतिद्वंद्वी है लेकिन आपको वास्तव में अपने वेबव्यू के लिए हार्डवेयर त्वरण को बंद करने की आवश्यकता हो सकती है। एंड्रॉइड 4.0.4 के रूप में हार्डवेयर त्वरण कैनवास और अन्य रेड्रो घटनाओं के लिए कुछ भी नहीं करता है, लेकिन वास्तव में उन घटनाओं के लिए CPU संसाधनों को हटा देता है।

    कोशिश अपने अनुप्रयोग जावा फ़ाइल में कोड की इस पंक्ति को जोड़ने:

    super.setLayerType (View.LAYER_TYPE_SOFTWARE, नल);

    यह भी सेट करें एंड्रॉइड: हार्डवेयर एक्सेलेरेटेड = "झूठी" मेनिफेस्ट में।

    +0

    इसने मेरे कुछ प्रस्तुत मुद्दों को हल किया और मेरे ऐप को बढ़ा दिया। अजीब। – TWilly

    +0

    क्या आप अधिक जानकारी दे सकते हैं –

    0

    वही सटीक चीज़ जो मैंने अनुभव की! पहले मैं परीक्षण के लिए एंड्रॉइड 3.x का उपयोग कर रहा था। जैसे ही मैंने 4.4.2 तक अपग्रेड किया, मेरा कैनवास धीमा हो गया! रेंडरिंग टाइमलाइन को देखते हुए मैं कई रास्टरराइजेशन कॉल 100 एमएमएस से अधिक देख सकता हूं और अपने एफपीएस को लगभग 8 तक कम कर सकता हूं! एंड्रॉइड: हार्डवेयर एक्सेलेरेटेड = "झूठी" ने मेरे मुद्दों को हल किया। एंड्रॉइड संस्करण के आधार पर हार्डवेयरAccelerated = "true" सेट करने का कोई तरीका है?