2011-06-27 17 views
19

Właśnie przeczytałem blogpost by Romain Guy o tym, jak przyspieszyć interfejs aplikacji. On w zasadzie mówi, że jeśli aplikacja korzysta z nieprzezroczystych widoki można ustawić tło dla @null w stylu twoi Activity „s przy użyciu:android: windowBackground = "@ null" w celu poprawy szybkości aplikacji

to działa? Byłem skłonny przetestować to przy użyciu FPS, ale nie znalazłem jasnego sposobu na uzyskanie tych informacji.

Przeczytałem niektóre threads mówiąc, że musisz zrobić to sam. Mam zamiar dodać niestandardowy widok, który rysuje FPS w metodzie onDraw() i dzwoni invalidate(), aby uzyskać połączenie cały czas.

Mimo że to działa, chciałbym wiedzieć, czy istnieje lepszy sposób analizy FPS w aplikacji.

+1

Ten blog ma kod źródłowy próbek. Sprawdź 'FpsImageView.java'. – jamapag

+7

Najpierw analizuję FPS pod kątem zakresu dostępnej broni. Gry, w których masz niewiele broni/noży/cokolwiek i brak zdolności do zdobywania innych, zwykle szybko się starzeją. Następnie skupiam się na łatwości nawigacji - czy mogę uzyskać od punktu do punktu bez nadmiernego nudy? Konfigurowalne HUD-y są miłe, ponieważ staram się je nieco rozpraszać podczas przeprowadzania pełnego ataku ... O, czekaj. Prawdopodobnie masz na myśli "klatek na sekundę", a nie "strzelanka pierwszoosobowa". Mój błąd. :-) (i, FWIW, nie mam pojęcia, jak obliczyć FPS poza grą lub niestandardowy widok "View", jak opisujesz). – CommonsWare

+0

@jamapag: Dzięki za wskazanie tego. Dostałem odpowiedź ze swojego kodu. Czy chciałbyś zamieścić odpowiedź na to pytanie, aby dać ci punkty rep? – Macarse

Odpowiedz

3

Jeśli interfejs użytkownika aplikacji całkowicie rysuje zawartość okna, zawsze należy ustawić parametr windowBackground na wartość null. Zapobiega to wypełnianiu przez ramę domyślnym kolorem tła, więc jest to jedno przejście, które jest potrzebne do renderowania każdej klatki, co oznacza, że ​​możesz spędzić swój własny czas rysując taką liczbę pikseli.

+1

Dzięki za odpowiedź. W związku z tym, jak zdobyć FPS, zastanawiałem się nad dodaniem do klasy kodu "działalności" Romainego Guy'a i poszerzeniem jego "działań" w trakcie sprawdzania ich FPS. Czy uważasz, że to prawda? Czy jest sens? Dzięki! – Macarse

0

w niektórych przypadkach zauważyłem, że ustawienie tła na wartość null powoduje dziwne ui usterki, jak napisano here.

Polecam przetestować go w różnych urządzeniach i emulatorze przed podjęciem decyzji o jego użyciu.

+1

Jak czytałem, wydaje się, że dziwne usterki występują tylko wtedy, gdy zarówno listView, jak i okno mają tło ustawione na @null. Jeśli chcesz zoptymalizować aplikację, wybierz jedną z nich. –

Powiązane problemy