2012-01-18 9 views
16

एंड्रॉइड के लिए ऐप डेवलपमेंट के दौरान फ़्रेम प्रति सेकंड (एफपीएस) को मापने के लिए कोई तरीका है (शायद कुछ ऐप्स, हैक, libs)?ऐप विकास के दौरान एंड्रॉइड पर एफपीएस को मापने के लिए कैसे करें

+0

मान लें कि आपका प्रश्न थोड़ा सामान्य है। क्या आप कुछ स्टॉक यूआई सामानों के बारे में बात कर रहे हैं जिनका आप उपयोग कर रहे हैं या आप ओपनजीएल संदर्भ या कुछ समान चल रहे हैं? बाद के मामले में मैं सिर्फ खुद को फ्रेम गिनता था। – Mario

उत्तर

14

ध्यान दें कि प्रदर्शन डीबगर संलग्न के साथ भयानक होगा।

अपने एंड्रॉइड गेम से, फ्रेम समय android.os.SystemClock के साथ मापा जा सकता है। यही है, आप प्रति फ्रेम एक बार SystemClock.elapsedRealtime() पर कॉल करें और पिछले फ्रेम से मूल्य घटाएं। चूंकि elapsedRealtime() मिलीसेकंड में मापा जाता है, इसलिए फ़्रेमेट की गणना 1000.0/frametime जितनी सरल है।

यदि आप API स्तर 16 या नए (जेली बीन) को लक्षित करते हैं तो आप Choreographer#postFrameCallback का उपयोग कर अपने कोड को एक सतत फ्रेम में पोस्ट कर सकते हैं।

यह भी ध्यान रखें कि फ़्रेमटाइम आमतौर पर फ़्रेमेट की तुलना में प्रदर्शन का बेहतर गेज है। 1000fps और 1200fps के बीच का अंतर उतना ही समय है जितना कि 60fps और 61fps (लगभग, शायद उससे कम)

+0

ओह और यदि आप इंटरपोलेशन/एनीमेशन करने की कोशिश कर रहे हैं, तो आप चिकनी समय-आधारित गति प्राप्त करने के लिए एक ही फ्रेमटाइम का उपयोग कर सकते हैं। –

+4

1000-1200 के बीच का अंतर लगभग 17 सेकंड है, 60 और 61 एफपीएस के बीच का अंतर लगभग .017 सेकेंड है। तो यह निश्चित रूप से एक बड़ा अंतर है। – Sietse

+1

आपकी विलुप्त समय गणना मिलीसेकंड में है जैसा आपने कहा था। तो, फ्रेमरेट गणना 1000.0/फ्रेमटाइम नहीं होनी चाहिए? मुझे लगता है कि यह स्पष्ट नहीं है कि आपका जवाब कौन सा यूनिट निर्दिष्ट कर रहा है, लेकिन चूंकि ओपी प्रति सेकेंड फ़्रेम का उल्लेख कर रहा है, मुझे लगता है कि आपको 1000.0 –

3

प्लेस्टोर में apps हैं जो एक प्ले सत्र के एफपीएस को माप सकते हैं। कृपया गेमबेंच देखें। यह किसी भी खेल के प्रदर्शन को मापने के दौरान माप सकता है और आप स्क्रीन पर जो कुछ भी प्रस्तुत किया जा रहा था, उसके लिए आप एफपीएस बूंदों से संबंधित हो सकते हैं।

15

आप TinyDancer लाइब्रेरी का उपयोग कर सकते हैं।

आप की तरह कोड जोड़ें:

public class DebugApplication extends Application { 

    @Override public void onCreate() { 

    // default config 
    TinyDancer.create().show(this); 

    //or customazed config 
    TinyDancer.create() 
     .redFlagPercentage(.1f) // set red indicator for 10% 
     .startingGravity(Gravity.TOP) 
     .startingXPosition(200) 
     .startingYPosition(600) 
     .show(this); 
    } 
} 

और आप अपने स्क्रीन के शीर्ष पर वर्तमान एफपीएस के बारे में जानकारी के साथ इंटरैक्टिव दृश्य दिखाई देगा।

enter image description here

+0

यह उपयोग करना वास्तव में आसान है, मौजूदा कोड में लागू करने के लिए तेज़ और एक आकर्षण की तरह काम करता है। अच्छा था! – SMalpica

+0

यह सबसे अच्छा समाधान है। बहुत अच्छे परिणाम! –

2

मैं एक Android आवेदन के एफपीएस विश्लेषण के लिए GameBench का इस्तेमाल किया है (यह एक खेल नहीं है, मैं जब मेरे app की एक एनीमेशन चलना शुरू हो जाता एफपीएस जाँच करना चाहता था)। गेमबेंच मुख्य फ्रेम दर (एफपीएस) मीट्रिक कैप्चर करता है, जो यूएक्स की तरलता का सबसे अच्छा उद्देश्य सूचक है।

मेरी आवश्यकता थी कि मेरे एंड्रॉइड एप्लिकेशन की एनीमेशन शुरू होने पर एफपीएस को 30 एफपीएस होने की पुष्टि करें।

मैं GameBench उपकरण द्वारा प्रदान की ग्राफ़ रिपोर्ट के साथ निम्नलिखित को सत्यापित किया है,

  • जब एनीमेशन शुरू होता है, एफपीएस से 0 एफपीएस 30fps करने के लिए ले जाया गया।
  • जब एनीमेशन समाप्त होता है एफपीएस 0 एफपीएस

स्क्रीनशॉट देखें करने के लिए 30FPS से ले जाया गया।

enter image description here

इस उपकरण का उपयोग करने के लिए, आप एक Android आवेदन और एक डेस्कटॉप लांचर स्थापित किया है।

  1. अपने एंड्रॉइड डिवाइस में गेमबेंच एप्लिकेशन इंस्टॉल करें।
  2. ईमेल पते का उपयोग करके गेमबेन्च में पंजीकरण करें और डेस्कटॉप एप्लिकेशन इंस्टॉल करें।
  3. गेमबेंच डेस्कटॉप लॉन्चर डाउनलोड और इंस्टॉल करें।
  4. डिवाइस को डेस्कटॉप से ​​कनेक्ट करें। आप अपने डिवाइस पर एक पॉप-अप प्राप्त कर सकते हैं जो आपको यूएसबी डिबगिंग
  5. गेमबेंच एंड्रॉइड ऐप में, आप विश्लेषण के लिए ऐप (जिसे मैंने टैबलेट पर पहले से इंस्टॉल किया है) का चयन कर सकते हैं।
  6. फिर आप फ्रेम प्रति सेकेंड रिकॉर्ड कर सकते हैं और रिपोर्ट जेनरेट कर सकते हैं (यह वेब डैशबोर्ड में भी उपलब्ध है, एफपीएस, स्क्रीनशॉट, प्रदर्शन, बैटरी इत्यादि)।

संदर्भ:

  1. https://play.google.com/store/apps/details?id=com.gamebench.metricscollector
  2. https://www.gamebench.net/
  3. https://docs.gamebench.net/web-dashboard/getting-started

एक तरफ ध्यान दें के रूप में,

मैं FPS Meter app भी इस्तेमाल किया है, लेकिन यह मैं लगता है मेरे मामले में गलत है। एंड्रॉइड एप्लिकेशन में मेरी एनीमेशन शुरू होने पर 2 9 एफपीएस से 31 एफपीएस तक पहुंच गया। अपेक्षित एफपीएस 30 एफपीएस है।

https://play.google.com/store/apps/details?id=com.ftpie.fpsmeter&hl=en

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