2015-10-09 8 views
8

Mam WebView + ListView i AdView poniżej ekranu. WebView lub ListView działa strasznie laggy na starszych urządzeniach (4.0-4.3 Android), aż AdView zostanie załadowany, a następnie działa bardzo sprawnie.AdView spowalnia całą aplikację, możliwy powód

Logcat pokazuje, że AdMob próbuje załadować coś niesamowicie często bez powodzenia, dopóki .. sukces, a następnie aplikacja jest płynna. Czy to może być powód? Jak to naprawić?

10-10 01:02:20.954 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:20.964 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:20.974 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:20.974 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.004 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.004 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.004 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.004 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:21.014 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.024 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.024 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:21.044 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.044 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.054 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.054 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:21.054 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.054 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.074 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.074 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:21.084 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.084 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.094 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.104 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.114 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:21.114 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.124 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.134 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.134 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.144 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:21.144 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.164 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.164 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:21.164 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.174 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.184 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.184 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.184 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:21.194 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.194 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.194 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:21.204 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:21.224 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:21.234 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:21.234 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:22.754 7160-7163/com.test.test D/dalvikvm﹕ GC_CONCURRENT freed 380K, 12% free 7624K/8583K, paused 17ms+38ms, total 102ms 
10-10 01:02:24.514 7160-7214/com.test.test V/webcore﹕ SET_BACKGROUND_COLOR arg1=0 arg2=0 obj=null 
10-10 01:02:24.534 7160-7214/com.test.test V/webcore﹕ SET_ACTIVE arg1=0 arg2=0 obj=null 
10-10 01:02:24.554 7160-7214/com.test.test V/webcore﹕ LOAD_DATA arg1=0 arg2=0 [email protected] 
10-10 01:02:24.564 7160-7160/com.test.test V/webview﹕ WEBCORE_INITIALIZED_MSG_ID 
10-10 01:02:24.714 7160-7160/com.test.test V/webview﹕ setCertificate=null 
10-10 01:02:24.744 7160-7160/com.test.test V/webview﹕ WEBCORE_NEED_TOUCH_EVENTS 
10-10 01:02:24.894 7160-7160/com.test.test V/webview﹕ SELECTION_STRING_CHANGED 
10-10 01:02:24.904 7160-7160/com.test.test V/webview﹕ SELECTION_STRING_CHANGED 
10-10 01:02:24.904 7160-7160/com.test.test V/webview﹕ SELECTION_STRING_CHANGED 
10-10 01:02:24.904 7160-7214/com.test.test V/webcore﹕ didFirstLayout standardLoad =true 
10-10 01:02:24.904 7160-7214/com.test.test V/webcore﹕ Can't get the viewWidth yet 
10-10 01:02:24.914 7160-7160/com.test.test V/webview﹕ SAVE_WEBARCHIVE_FINISHED 
10-10 01:02:25.064 7160-7160/com.test.test I/Ads﹕ Scheduling ad refresh 60000 milliseconds from now. 
10-10 01:02:25.084 7160-7214/com.test.test V/webcore﹕ LOAD_URL arg1=0 arg2=0 obj=android.webkit.WebViewCore$GetU[email protected] 
10-10 01:02:25.084 7160-7214/com.test.test V/webcore﹕ CORE loadUrl about:blank 
10-10 01:02:25.224 7160-7214/com.test.test V/webcore﹕ didFirstLayout standardLoad =true 
10-10 01:02:25.234 7160-7214/com.test.test V/webcore﹕ setupViewport mRestoredScale=0.0 mViewScale=1.0 mTextWrapScale=1.0 data.mScale= 1.0 
10-10 01:02:25.234 7160-7214/com.test.test V/webcore﹕ viewSizeChanged w=320; h=50; textwrapWidth=320; scale=1.0 
10-10 01:02:25.244 7160-7214/com.test.test V/webcore﹕ WEBKIT_DRAW arg1=0 arg2=0 obj=null 
10-10 01:02:25.254 7160-7214/com.test.test V/webcore﹕ webkitDraw start 
10-10 01:02:25.254 7160-7214/com.test.test V/webcore﹕ webkitDraw NEW_PICTURE_MSG_ID 
10-10 01:02:25.254 7160-7214/com.test.test V/webcore﹕ LOAD_URL arg1=0 arg2=0 [email protected] 
10-10 01:02:25.264 7160-7214/com.test.test V/webcore﹕ CORE loadUrl javascript:AFMA_updateActiveView({"units":[{"viewBox":{"bottom":480,"right":320,"left":0,"top":0},"isScreenOn":true,"isPaused":false,"adFormat":"320x50_as","localVisibleBoxVisible":false,"activeViewJSON":{"click_string":"BBggidEcYVtTJNpG6pAPDj7qgBAD1k7K5qQIAABABOAHIAQPIA4gEoAYD","active_experiment_ids":"","is_active_view_immediate_enabled":true,"activeview_cpm_urls":[]},"hashCode":"a096ae7d-5728-4f8b-9c0b-95ea0edc1618","afmaVersion":"afma-sdk-a-v8115000.8115000.0","windowVisibility":0,"screenDensity":1,"localVisibleBox":{"bottom":0,"right":0,"left":0,"top":0},"isAttachedToWindow":true,"timestamp":13403686,"globalVisibleBox":{"bottom":0,"right":0,"left":0,"top":0},"isVisible":true,"adBox":{"bottom":430,"right":0,"left":0,"top":430},"hitBox":{"bottom":0,"right":0,"left":0,"top":0},"isMraid":false,"globalVisibleBoxVisible":false,"isStopped":false}]}); 
10-10 01:02:25.364 7160-7160/com.test.test I/Ads﹕ Ad finished loading. 
10-10 01:02:25.594 7160-7160/com.test.test V/webview﹕ setCertificate=null 
10-10 01:02:25.594 7160-7160/com.test.test V/webview﹕ WEBCORE_NEED_TOUCH_EVENTS 
10-10 01:02:25.594 7160-7160/com.test.test V/webview﹕ SELECTION_STRING_CHANGED 
10-10 01:02:25.594 7160-7160/com.test.test V/webview﹕ SELECTION_STRING_CHANGED 
10-10 01:02:25.594 7160-7160/com.test.test V/webview﹕ SELECTION_STRING_CHANGED 
10-10 01:02:25.604 7160-7160/com.test.test V/webview﹕ SAVE_WEBARCHIVE_FINISHED 
10-10 01:02:25.604 7160-7160/com.test.test V/webview﹕ NEW_PICTURE_MSG_ID 
10-10 01:02:25.644 7160-7160/com.test.test V/webview﹕ sendOurVisibleRect=(0,430,r=320,b=480 
10-10 01:02:25.664 7160-7163/com.test.test D/dalvikvm﹕ GC_CONCURRENT freed 324K, 11% free 7716K/8583K, paused 24ms+32ms, total 130ms 
10-10 01:02:26.434 7160-7214/com.test.test V/webcore﹕ LOAD_URL arg1=0 arg2=0 [email protected] 
10-10 01:02:26.434 7160-7214/com.test.test V/webcore﹕ CORE loadUrl javascript:AFMA_updateActiveView({"units":[{"viewBox":{"bottom":480,"right":320,"left":0,"top":0},"isScreenOn":true,"isPaused":false,"adFormat":"320x50_as","localVisibleBoxVisible":false,"activeViewJSON":{"click_string":"BBggidEcYVtTJNpG6pAPDj7qgBAD1k7K5qQIAABABOAHIAQPIA4gEoAYD","active_experiment_ids":"","is_active_view_immediate_enabled":true,"activeview_cpm_urls":[]},"hashCode":"a096ae7d-5728-4f8b-9c0b-95ea0edc1618","afmaVersion":"afma-sdk-a-v8115000.8115000.0","windowVisibility":0,"screenDensity":1,"localVisibleBox":{"bottom":0,"right":0,"left":0,"top":0},"isAttachedToWindow":true,"timestamp":13403836,"globalVisibleBox":{"bottom":0,"right":0,"left":0,"top":0},"isVisible":true,"adBox":{"bottom":430,"right":0,"left":0,"top":430},"hitBox":{"bottom":0,"right":0,"left":0,"top":0},"isMraid":false,"globalVisibleBoxVisible":false,"isStopped":false}]}); 
10-10 01:02:26.474 7160-7214/com.test.test V/webcore﹕ LOAD_URL arg1=0 arg2=0 [email protected] 
10-10 01:02:26.474 7160-7214/com.test.test V/webcore﹕ CORE loadUrl javascript:AFMA_updateActiveView({"units":[{"viewBox":{"bottom":480,"right":320,"left":0,"top":0},"isScreenOn":true,"isPaused":false,"adFormat":"320x50_as","localVisibleBoxVisible":true,"activeViewJSON":{"click_string":"BBggidEcYVtTJNpG6pAPDj7qgBAD1k7K5qQIAABABOAHIAQPIA4gEoAYD","active_experiment_ids":"","is_active_view_immediate_enabled":true,"activeview_cpm_urls":[]},"hashCode":"a096ae7d-5728-4f8b-9c0b-95ea0edc1618","afmaVersion":"afma-sdk-a-v8115000.8115000.0","windowVisibility":0,"screenDensity":1,"localVisibleBox":{"bottom":50,"right":320,"left":0,"top":0},"isAttachedToWindow":true,"timestamp":13404006,"globalVisibleBox":{"bottom":480,"right":320,"left":0,"top":430},"isVisible":true,"adBox":{"bottom":480,"right":320,"left":0,"top":430},"hitBox":{"bottom":50,"right":320,"left":0,"top":0},"isMraid":false,"globalVisibleBoxVisible":true,"isStopped":false}]}); 
10-10 01:02:26.484 7160-7214/com.test.test V/webcore﹕ SET_SCROLL_OFFSET arg1=1 arg2=0 obj=Point(0, 0) 
10-10 01:02:26.514 7160-7214/com.test.test V/webcore﹕ SET_GLOBAL_BOUNDS arg1=0 arg2=0 obj=Rect(0, 430 - 320, 480) 
10-10 01:02:26.524 7160-7214/com.test.test V/webcore﹕ VIEW_SIZE_CHANGED arg1=0 arg2=0 [email protected] 
10-10 01:02:26.524 7160-7214/com.test.test V/webcore﹕ viewSizeChanged w=320; h=50; textwrapWidth=320; scale=1.0 

EDIT:

adview jest tworzony w sposób Activity.onCreate. VISIBLE na starcie. http://pastebin.com/xZ7C8WGK

+0

Kod o tym, w jaki sposób dodajesz widok i kiedy dokładnie go dodajesz, byłby niezły. –

+0

Zrobiłem to. Spójrz, jeśli masz chwilę. – ElSajko

+0

Widziałem to i wszystko wyglądało dobrze. Jak widzę z twojego pliku dziennika, widok sieciowy "coś" robi. Może problem pochodzi z układu. Czy masz przyspieszenie sprzętowe? Czy wyświetlanie aplikacji wymaga odświeżenia widoku web/listview. Czy istnieje animacja do pokazania i czy jest jakiś powód, dla którego animacja może spowodować obliczenia układu na każdej klatce? –

Odpowiedz

2

Najprawdopodobniej jest to problem. Można to łatwo sprawdzić, usuwając AdView (jeśli dobrze cię rozumiem) Nie znam szczegółów twojej aplikacji, ale radzę wypróbować Crosswalk Project.

Ogólnie praca z AdMob jest synchroniczna, ale możesz spróbować użyć AsyncTask do jej utworzenia. Możesz też spróbować wyświetlać reklamy natychmiast, ale po pewnym czasie.

Mimo to mogę doradzić, aby spróbować użyć AdMob jako third-party plug-in.

Wreszcie sprawa może znajdować się w niestabilnym kanale internetowym. To wszystko, co mogłem wymyślić. Mam nadzieję, że wszystko będzie dobrze.

+0

Nie można użyć projektu Crosswalk, ponieważ nie pozwalają one na utworzenie instancji z kontekstem usługi (oprócz tego, że dodaje 20 MB do apk) AsyncTask for tworzenie AdView Object lub ASyncTask do ładowania reklamy do adview? Rzucę okiem na wtyczkę innej firmy, nie wiedziałem, że istnieje alternatywa dla admoba, ale nadal jest ona związana z admorem. Niestabilny kanał internetowy nie jest przypadkiem, ponieważ wielu użytkowników tego doświadcza. – ElSajko

+0

Spróbuj użyć zadania dla wszystkich. To tylko pomysł. Dlatego polecam widzieć wtyczki firm zewnętrznych. Powodzenia. Przepraszam, nie mogę pomóc. – user2413972

2

Mam prostą animację, która uruchamia się po uruchomieniu aplikacji. Przed wprowadzeniem reklam AdMob bardzo sprawnie działała. Najwyraźniej AdMob potrzebuje dużo zasobów do uruchomienia.

więc moim rozwiązaniem było czekać na zakończenie animacji, a następnie rozpocząć ładowanie reklamy.

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
      AdRequest bannerRequest = new AdRequest.Builder().build(); 
      mAdView.loadAd(bannerRequest); 
    } 
},2000); 

Admob uruchamia się powoli, co rozwiązało opóźnienie rozruchu.