2012-12-12, 11:06:05
Тъй като този хак е споменат само един път в нашия форум, преди повече от година - ето тук - и то без темата да е развита както трябва, ще го припомня, защото може да бъде особено полезен при нашия телефон - т.е., такъв с едноядрен овърклокнат процесор, но с видеоускорител, в случая - Adreno200.
Идеята е да се накара Android да управлява основните менюта и тези в някой базови, но разпространени приложения (браузъри, Facebook, фото-редактори и др.под.) със средствана на видеоускорителя, а не на основния процесор.
За целта, на РУТНАТ телефон, може да се редактира конфигурационният файл за работа с openGL /system/lib/egl/egl.cfg
От документацията на Android за този файл е известно че:
Конкретно в LG L7 P70x, съдържанието на файла изглежда така:
0 0 android
0 1 adreno200
Т.е., във всеки ред на файла има по три позиции със следното значение:
- първа позиция - номер на дисплея, който ще се управлява. По подразбиране, това е "0". При таблетите, които имат и HDMI изход, има и дисплей с номер "1"
- втора позиция - начин на управление на дисплея - "0" - софтуерен, "1" - хардуерен.
- трета позиция - име на "метода" за управление (т.е. на групата библиотеки, която ще се използва).
Или нашият конфигурационен файл се тълкува така:
0 0 android - дисплей "0" ще се управлява софтуерно със средствата на android (т.е. на самата операционна система, което означава, че ще се товари само основният процесор). Т.е., това е основната конфитурация, а всеки следващ ред във файла описва алтернативни и ПОМОЩНИ конфигурации, които се включват само при нужда
0 1 adreno200 - дисплей "0" МОЖЕ да се управлява И с ПОМОЩТА на хардуера, в случая - adreno200. Именно това се случва, ако включите опцията от Settings > Developers options > Force GPU rendering. В този случай, видеоускорителят работи ЗАЕДНО с основния, при изчертаване на менютата, иконките и т.н., но не го замества изцяло.
Е, нашата цел е да прехвърлим цялата работа САМО върху видеоускорителя!
За да направите това, пак повтарям, ви трябва РУТНАТ телефон. После е най-добре да работите с програмата RootExplorer.
1. Стартирате RootExplorer и отивате в директорията /system/lib/egl/ . Тапвате върху бутона [Mount /R/W] горе вдясно, за да може да променяте файловете в тази директория
2. Тапвате и задържате върху файла egl.cfg - появява се меню, от което избирате Open in Text Editor
3. Вече в текстовия редактор променяте съдържанието му, за да остане само реда:
0 1 adreno200
4. Натискате бутона Menu и избирате Save and exit.
5. Пак тапвате и задържате върху името на egl.cfg, после избирате Permissions. Променяте правата за достъп, така че да са в следния вид (кръстчето означава маркирана кутийка, нулата - немаркирана):
X X 0
X 0 0
X 0 0
...и потвърждавате с [OK]
6. Сега тапвате и задържате върху файла libGLES_android.so, избирате Rename и променяте името му на libGLES_android.so.bak
7. Връщате правата за запис в текущата директория с натискане на [Mount R/O] горе вдясно
8. Рестартирате телефона. Готово.
Какъв е ефектът от горното? Оттук нататък цялата работа по прерисуване на екрана се поема ИЗЦЯЛО от видеоускорителя, което:
а) прави прерисуването значително по-бързо и плавно. "На око", ускорението е един и половина до два пъти.
б) освобождава основният процесор, което също увеличава общата производителност, което се забелязва най-вече при зареждане на тежки интернет страници
в) доколкото за работата със звука отговаря точно основният процесор, то се подобрява и качеството на аудиото
г) аналогично за работата с тъча - вече не би трябвало да имате лагове при скрол, пинч-зуум и други подобни операции с тъча
Какво губите? - между 10 и 15% от живота на батерията. Нормално е - енергопотреблението на видеоускорителя е доста високо и сега той е включен постоянно. Т.е. - оттук нататък е въпрос на лична преценка дали да се лишите от около един час работа на батерия или предпочитате интерфейсът ви винаги да работи бързо и плавно.
NB - този хак работи за почти всички Android устройства с видеоускорител. Необходимо е само да знаете името на "хардуерния метод" използван във вашето устройство. Например, за ускорителя Mali400 името е просто "mali", за PowerVR - "powervr_sgx540_120", за първата tegra - пак е просто "tegra" т.н.
Идеята е да се накара Android да управлява основните менюта и тези в някой базови, но разпространени приложения (браузъри, Facebook, фото-редактори и др.под.) със средствана на видеоускорителя, а не на основния процесор.
За целта, на РУТНАТ телефон, може да се редактира конфигурационният файл за работа с openGL /system/lib/egl/egl.cfg
От документацията на Android за този файл е известно че:
Цитат:#
# One line per configuration, of the form:
#
# D I TAG
#
# D: display (0: default)
# I: implementation (0: software, 1: hardware)
# TAG: a unique tag
#
# The library name loaded by EGL is constructed as (in that order):
#
# /system/lib/egl/libGLES_$TAG.so
# /system/lib/egl/lib{EGL|GLESv1_CM|GLESv2}_$TAG.so
#
Конкретно в LG L7 P70x, съдържанието на файла изглежда така:
0 0 android
0 1 adreno200
Т.е., във всеки ред на файла има по три позиции със следното значение:
- първа позиция - номер на дисплея, който ще се управлява. По подразбиране, това е "0". При таблетите, които имат и HDMI изход, има и дисплей с номер "1"
- втора позиция - начин на управление на дисплея - "0" - софтуерен, "1" - хардуерен.
- трета позиция - име на "метода" за управление (т.е. на групата библиотеки, която ще се използва).
Или нашият конфигурационен файл се тълкува така:
0 0 android - дисплей "0" ще се управлява софтуерно със средствата на android (т.е. на самата операционна система, което означава, че ще се товари само основният процесор). Т.е., това е основната конфитурация, а всеки следващ ред във файла описва алтернативни и ПОМОЩНИ конфигурации, които се включват само при нужда
0 1 adreno200 - дисплей "0" МОЖЕ да се управлява И с ПОМОЩТА на хардуера, в случая - adreno200. Именно това се случва, ако включите опцията от Settings > Developers options > Force GPU rendering. В този случай, видеоускорителят работи ЗАЕДНО с основния, при изчертаване на менютата, иконките и т.н., но не го замества изцяло.
Е, нашата цел е да прехвърлим цялата работа САМО върху видеоускорителя!
За да направите това, пак повтарям, ви трябва РУТНАТ телефон. После е най-добре да работите с програмата RootExplorer.
1. Стартирате RootExplorer и отивате в директорията /system/lib/egl/ . Тапвате върху бутона [Mount /R/W] горе вдясно, за да може да променяте файловете в тази директория
2. Тапвате и задържате върху файла egl.cfg - появява се меню, от което избирате Open in Text Editor
3. Вече в текстовия редактор променяте съдържанието му, за да остане само реда:
0 1 adreno200
4. Натискате бутона Menu и избирате Save and exit.
5. Пак тапвате и задържате върху името на egl.cfg, после избирате Permissions. Променяте правата за достъп, така че да са в следния вид (кръстчето означава маркирана кутийка, нулата - немаркирана):
X X 0
X 0 0
X 0 0
...и потвърждавате с [OK]
6. Сега тапвате и задържате върху файла libGLES_android.so, избирате Rename и променяте името му на libGLES_android.so.bak
7. Връщате правата за запис в текущата директория с натискане на [Mount R/O] горе вдясно
8. Рестартирате телефона. Готово.
Какъв е ефектът от горното? Оттук нататък цялата работа по прерисуване на екрана се поема ИЗЦЯЛО от видеоускорителя, което:
а) прави прерисуването значително по-бързо и плавно. "На око", ускорението е един и половина до два пъти.
б) освобождава основният процесор, което също увеличава общата производителност, което се забелязва най-вече при зареждане на тежки интернет страници
в) доколкото за работата със звука отговаря точно основният процесор, то се подобрява и качеството на аудиото
г) аналогично за работата с тъча - вече не би трябвало да имате лагове при скрол, пинч-зуум и други подобни операции с тъча
Какво губите? - между 10 и 15% от живота на батерията. Нормално е - енергопотреблението на видеоускорителя е доста високо и сега той е включен постоянно. Т.е. - оттук нататък е въпрос на лична преценка дали да се лишите от около един час работа на батерия или предпочитате интерфейсът ви винаги да работи бързо и плавно.
NB - този хак работи за почти всички Android устройства с видеоускорител. Необходимо е само да знаете името на "хардуерния метод" използван във вашето устройство. Например, за ускорителя Mali400 името е просто "mali", за PowerVR - "powervr_sgx540_120", за първата tegra - пак е просто "tegra" т.н.