Intereting Posts
Как получить идентификатор контакта, адрес электронной почты, номер телефона в одном запросе SQLite? Контакты Оптимизация Android Реагировать собственные свойства textDecoration, не работающие на Android Почему бы не переопределить классы Java в разных версиях Android? Как определить ColorStateList для TextView? Proguard hell – не может найти ссылочный класс Как закрыть проект в Android Studio? Проект Android Studio Gradle «Невозможно запустить процесс / инициализацию виртуальной машины» Android устанавливает список навигационных ящиков, чтобы открыть точную половину экрана для всего экрана устройства. Доступ к API Google – GoogleAccountCredential.usingOAuth2 vs GoogleAuthUtil.getToken () Доступность Android в текстовом редакторе с подсказкой Как запустить новый Chrome для Android 4 в Android Emulator? Службы Google Play: странный знак поведения Тестирование точки внутри полигона в Android Расширяемый список просмотра переместить значок группы вправо в версии jellyBean 4.3? Усовершенствования аппаратного ускорения аппаратного обеспечения Android WebView Artefact

Повысьте производительность webView (должна быть такая же производительность, что и собственный веб-браузер)

Мой опыт заключается в том, что загрузка веб-сайтов в WebView намного медленнее, чем выполнение тех же действий в Android-браузере Android. Я вижу, что все файлы загружены в мой Apache-журнал, это займет несколько секунд, пока страница не будет отображаться в элементе управления WebView. Открытие одной и той же страницы в собственном веб-браузере приведет к немедленному отображению. Кажется, что рендеринг каким-то образом искалечен.

Какие настройки браузера мы должны применять для достижения такой же производительности, как и загрузка страницы в собственном веб-браузере?

Наши текущие настройки:

browserset.setLoadsImagesAutomatically(true); browserset.setJavaScriptEnabled(true); browserset.setDatabaseEnabled(true); browserset.setDatabasePath("data/data/com.xxx/databases"); browserset.setDomStorageEnabled(true); browserset.setRenderPriority(WebSettings.RenderPriority.HIGH); browserset.setSupportZoom(false); browserset.setUserAgentString( browserset.getUserAgentString() + " (XY ClientApp)" ); browserset.setAllowFileAccess(true); browserset.setSavePassword(false); browserset.setSupportMultipleWindows(false); browserset.setAppCacheEnabled(true); browserset.setAppCachePath(""); browserset.setAppCacheMaxSize(5*1024*1024); 

Solutions Collecting From Web of "Повысьте производительность webView (должна быть такая же производительность, что и собственный веб-браузер)"

Я столкнулся с подобной проблемой, и после некоторой тяжелой отладки заметил, что собственный браузер и браузер WebView, похоже, используют разные кеши.

Этот код можно использовать для отключения кэша WebView и сделать WebView намного быстрее для меня (хотя и за счет кэширования). Обратите внимание, что он использует частные API-интерфейсы, поэтому, используя это, вы рискуете, что код будет разбит в будущих версиях:

 try { Method m = CacheManager.class.getDeclaredMethod("setCacheDisabled", boolean.class); m.setAccessible(true); m.invoke(null, true); } catch (Throwable e) { Log.i("myapp","Reflection failed", e); } 

Я, наконец, получил причину проблемы производительности Android для Android. Обратите внимание на изображение ниже … Он использовал 12 секунд от OnPageStarted до OnPageFinished. Потому что он должен загружать CSS, javascript и … AJAX …

Окно отладки:

Я замечаю, что JQuery и JQueryMobile необходимо загрузить всю структуру DOM в Html.So, если я lazy загружать javascript после OnPageFinished, он должен показывать страницу быстрее.

Сначала используйте setTimeout вместо $ (document) .ready (function () {}); В JQuery. Затем используйте lazyload javascript-файл.

Окончательный html и javascript:

 <script src="/css/j/lazyload-min.js" type="text/javascript"></script> <script type="text/javascript" charset="utf-8"> loadComplete(){ //instead of $(document).ready(function() {}); } function loadscript() { LazyLoad.loadOnce([ '/css/j/jquery-1.6.2.min.js', '/css/j/flow/jquery.flow.1.1.min.js', '/css/j/min.js?v=2011100852' ], loadComplete); } setTimeout(loadscript,10); </script> 

Вы можете найти lazyload-min.js в http://wonko.com/post/painless_javascript_lazy_loading_with_lazyload

После этого вы можете увидеть изображение журнала ниже:

После изменения javascript

Теперь он занимает всего 2 секунды от OnPageStarted до OnPageFinished.

Я опубликовал статью на http://hi.baidu.com/goldchocobo/blog/item/5009ed1b40925ce4ae5133ee.html?timeStamp=1326860583547 Но это было написано на китайском языке 🙂