android - ब्राउज़र की तुलना में फोनगैप धीमा क्यों है?




cordova cordova-2.0.0 (5)

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

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

super.setLayerType (View.LAYER_TYPE_SOFTWARE, शून्य);

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

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

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

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


मुझे फोनगैप नहीं पता, लेकिन आप इन्हें आजमा सकते हैं:

  • android:hardwareAccelerated="true" जोड़ना android:hardwareAccelerated="true" मेनिफेस्ट में android:hardwareAccelerated="true"
  • यदि आप वेबव्यू webview.getSettings().setRenderPriority(RenderPriority.HIGH); उपयोग करते हैं webview.getSettings().setRenderPriority(RenderPriority.HIGH); और webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

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

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

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


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


ZoomView अंदर अपना विचार रखें।

कस्टम दृश्य यहां उपलब्ध है https://github.com/Polidea/android-zoom-view यह आसान, मुफ़्त और बहुत मजेदार है!







android cordova cordova-2.0.0