Всем доброго времени дорогие друзья, знакомые, читатели и прочие личности. Сегодня посмотрим как ускорить Андроид, всякие там приложения под него и игры вроде PUBG Mobile в том числе

Для многих не секрет, что мы любим чего-то покрутить и поотмизировать, что порой выливается в разного рода интересные интересности или странные странности. Впрочем, часто усилия приносят страшную такую пользу и Ваши устройства начинают бегать на порядок быстрее.

Сейчас мы наблюдаем занимательную историю, когда развитие железной компьютерной индустрии достигло некоего своего логического (и не очень) пика и все технологии (в том числе программные) ринулись в сферу мобильных устройств.

Вот о последних сегодня и поговорим.

Вводная

Все наверное слышали про всякие там режимы разработчика в Android, которые позволяют что-то такое там хитрое нашаманить в настройках.

Эти настрои действительно существуют и хитрое нашаманить реально позволяют. Вопрос лишь в том, - будет ли это на пользу и не очень, - да и кому, собственно, - Вам, Вашей батареи, производительности, или некому разработчику.

Тем не менее, - ведь попытка не пытка. Во-первых, телефон можно сделать быстрее, во-вторых и в трехмерных играх всё будет бегать побыстрее (с выходом PUBG Mobile ) все прямо помешались на этой идее), да и вообще, - интересно и приятно.

Что касается возможных побочных эффектов, - тут всё просто. В некоторых случаях всё конечно идет здорово, весело и всячески на пользу. Производительность растёт, ускорение присутствует, PUBG летает, лаунчер телефона счастлив безмерно, а Вы, как его владелец, - пишите хорошие комментарии под этой статьёй, рассказываете о ней друзьям и всё такое прочее-разное.

Во всех остальных же случаях, стоит понимать, что многое зависит от железа в Вашем Android-телефоне, планшете или на чём Вы там планируете всё это запускать и использовать, - так тут вопрос техники.

И да, стоит понимать, что производительность может снизиться, а расход батареи увеличится. Как это исправить? Вернуть всё назад, настройки отключить.

Как ускорить Андроид и запустить настройки разработчика

Итого нам требуется "Многопроцессорный WebView ", - это один из крайне важных пунктов, который ускорит систему вцелом, хотя и может негавтивно сказаться на времени работы от батареи.

Как ускорить Андроид еще сильнее? И визуально понятно? Тоже самое касается пункта "оптимизация SD карты ", если конечно она у Вас вообще есть (карта) и пункт вообще).

Дальше, если Вы не любитель всяческих там анимаций, то крайне рационально будет отключить анимацию окон, переходов и убрать длительность анимации. Это на порядок сэкономит ресурсы, а визуально (субъективно и по ощущениям) у Вас телефон прямо начнет летать вообще.

Еще больше ускорения и оптимизации

Что касается аппаратного ускорения и GPU для компоновки экрана, - считается этот пункт актуален только на быстрых графических ядрах и только для 2D -приложений.

На деле это не всегда так, плюс ко всему, помимо всяких там PUBG Mobile и других 3-х мерных игр для Android , которые Вы и пытаетесь ускорить, собственно, - дело в том, что у Вас всегда задействован процессор как таковой, который работает с интерфейсом и процессами в фоне, поэтому перекладывая часть функционала на Вы можете получить некоторый прирост производительности.

Ну, и если памяти или мощностей у Вас не очень, а поиграть на любимом телефоне хочется, то есть смысл таки подрезать число фоновых процессов. Это конечно скажется на некоторых уведомлениях (например, почты), но зато повысит скорость работы в общем и целом, да и в трёхмерных приложениях в частности.

Послесловие

На сим всё, теперь Вы знаете как ускорить Андроид. Традиционно, - это не моветон и нюансов может быть много. У кого-то сие возымеет эффект, а у кого-то начнет кушать батарею. Кто-то вообще не заметить разницы и не поймет зачем оно вообще нужно.

Многое зависит от способа использования Вашей железки на Андроиде, её конфигурации, версии системы, процессора, памяти, места, игр в которые играете и многого другого.

Такие дела. Если интересно, - пишите в комментариях, - мы разовьем тему и расскажем как тем же Kernel Auditor "ом реально ускорить любой девайс, исходя из глубокого настройка ядра любого телефона.

Как и всегда, если есть какие-то мысли, вопросы, дополнения и всё такое прочее, то добро пожаловать в комментарии к этому материалу.

Я знаю приличное количество С++, и теперь я хотел исследовать создание игры. Мне было интересно, какой лучший подход будет в плане написания аппаратной ускоренной игры, которая по-прежнему кросс-платформенная (Windows/OSX/Linux). Это будет игра 2d, но достаточно интенсивная, чтобы рендеринг CPU, вероятно, не сократил бы ее.

Наконец, я видел такие библиотеки, как http://www.sfml-dev.org/ , которые, возможно, упростили, следует ли мне спуститься по этому маршруту?

Еще раз спасибо.

6 ответов

Это нонсенс ребята

OpenGL IS кросс-платформенный. Нет необходимости в Qt или такой. Необходимо адаптировать только несколько частей: API окон и API ввода, которые являются единственными функциями, зависящими от подпрограмм, специфичных для ОС.

У вас есть несколько возможностей:

Перекрестная платформа с аппаратным ускорением 2d С++ app?

Я знаю, что OpenGL, но я не могу найти каких-либо учебников о том, как использовать его в кросс-платформенной манере, все они сосредоточены на одной платформе.

SDL_Init(SDL_INIT_VIDEO); SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0);//disable vsync if (SDL_SetVideoMode(scrWidth, scrHeight, 32, SDL_OPENGL) == 0){ fprintf(stderr, "couldn"t set mode %dx%d!\n", 640, 480); SDL_Quit(); return -1; } glewInit();//if you use glew, shaders, extensions. while(gameIsRunning()){//game loop glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //OpenGL rendering here glFlush(); SDL_GL_SwapBuffers(); } SDL_Quit();

Подробнее см. в документации по sdl.

Использование SDL также возможно, но я боюсь, что игра может не работать, если я ее использую. Это обязательно верно?

Если vsync отключен, вы можете получить от нескольких сотен до тысячи кадров в секунду. Точная производительность зависит от сложности вашего оборудования и сложности сцены. У меня было 300 кадров в секунду для простого 3D-искателя подземелий, в котором использовался "RAW" opengl без отображения списков/объектов буфера вершин. Кроме того, если вы используете механизм с фиксированной частотой кадров или таймером, вы не будете получать больше кадров в секунду, чем вы просили.

SDL использовался для переноса Unreal 2004 на Linux. Он также использовался в порту Linux Doom 3/Quake 4. Поэтому он тщательно протестирован и хорошо известен.

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

Я думаю, что ошибочно беспокоиться о производительности, прежде чем вы даже начали свой проект. Работайте над проблемами производительности, такими как любая другая проблема, с которой вы сталкиваетесь во время разработки. Создайте свою программу, чтобы изолировать библиотеки на одном уровне, отличном от остальной части вашей логики. При необходимости будет проще переключать реализацию. Это даже позволит экспериментировать с различными реализациями.

// separate files class LowLevelGraphicStuff { // abstract }; class LowLevelGraphicStuff_SFML: public LowLevelGraphicsStuff { // actual SFML implementation }; class LowLevelGraphicsStuff_OGL: public LowLevelGraphicsStuff { // actual OpenGL implementation }; // main // Run the game with the SFML implementation. gameLoop(new LowLevelGraphicsStuff_SFML()); // Run the game with the OpenGL implementation. gameLoop(new LowLevelGraphicsStuff_OGL());

Покажу как ускорить планшет на Android. По умолчанию планшет настроен производителем не на скорость работы, а на стабильную работу, к тому же производитель часто устанавливает в планшет много своих программ, которые мало кому нужны, но за это производитель получает денежки с тех чьи приложения он вшил в планшет.

1. Отключение системных служб и приложений

Заходим в настройки - диспетчер приложений. Проводим пальцем справа налево, чтобы открыть все приложения.

Перейдя во все приложения мы увидим список всех приложений, которые установлены на вашем планшете.

В самом низу списка отображены все отключенные приложения. Я отключил на своем планшете просмотр улиц, синтезатор речи Google, яндекс киноафиша, яндекс новости, яндекс пробки, яндекс такси.

Также я отключил диспетчер приложений, карты, мировое время, мобильная печать, настройка Google Partner, обмен данными через Wi-Fi Direct.

Отключил Play игры, Play музыка, Polaris Office 5, S Voice, Samsung apps, Samsung print Service.

Отключены на моем планшете также Google play книги, Google play фильмы, Google play поиск, Google+, Hangouts.

Все эти приложения мне не нужны и я ими не буду пользоваться, но если они включены, то они будут обновляться, занимать место, предлагать мне свои услуги, визуально мне мешать своим бесполезным нагромождением.

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

Чтобы отключить приложение нажимаем на него в списке приложений. И здесь видим кнопку Остановить, нажав на которую приложение остановит свою работу, но не отключится. При перезагрузке планшета оно вновь начнет свою работу.

Не все системные приложения в планшете можно отключить, некоторые можно только остановить.

Покажу как отключить встроенное приложение на примере приложения сообщения.

Например приложение сообщения, которые позволяет отправлять и принимать смс с планшета можно остановить и отключить, если вы не посылаете и не принимаете смс со своего планшета.

Нажимаем остановить.

Выдается уведомление: Принудительно остановить. Принудительная остановка приложения может привести к ошибкам. То есть приложение сообщение в данный момент работает. Нажимаем да.

Приложение сообщения остановлено. Теперь отключаем приложение сообщения. Нажимаем отключить.

Выходит предупреждающий вопрос: Отключить встроенное приложение?

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

Нажимаем да.

Теперь приложение сообщение отключено.

В списке приложений можно видеть, что оно отключено.

Если отключенное встроенное приложение вам вновь понадобится, то его можно включить. Открываем отключенное приложение в списке приложений и нажимаем включить.

Встроенное приложение сообщение вновь работает.

2. Остановка работающих приложений

Заходим в настройки - диспетчер приложений. Проводим пальцем справа налево, чтобы открыть список «выполняется», в этом списке отображены те приложения, которые работают в данный момент.

Допустим остановим работающее приложение на планшете детский диктофон (это приложение позволяет записывать звуки и голос, когда в детском режиме оно запущено).

Нажимаем остановить, чтобы остановить работу приложения, чтобы выгрузить приложение из оперативной памяти (оно занимает 2,5 Мб. оперативной памяти) и остановить его фоновую работу, которая также нагружает иногда процессор.

3. Включение параметров разработчика

Заходим в настройки - параметры разработчика.

Если у вас нет пункта параметры разработчика, то его можно включить.

Чтобы включить параметры разработчика, то заходим в пункт об устройстве и нажимаем 7 раз на строку номер сборки, после этого у вас должен появится пункт параметры разработчика.

У меня параметры разработчика на планшете уже есть, поэтому, когда я нажимаю на номер сборки мне пишется уведомление: не требуется, режим разработчика уже включен.

4. Отключение анимации

Заходим в настройки - параметры разработчика, находим пункт масштаб анимации окна и нажимаем на этот пункт.

Теперь нажимаем на анимация отключена, чтобы отключить анимацию перехода окна, чтобы не нагружать видеопроцессор и процессор этой процедурой.

Также отключаем масштаб анимации перехода, шкала длительности аниматора.

Также включаем принудительная обработка GPU, чтобы использовать аппаратное ускорение в 2D приложениях. Таком образом видеоускоритель возьмет на себя обработку графики в 2D приложениях и освободит немного процессор от этой задачи.

5. Запретить фоновые процессы.

Заходим в настройки - параметры разработчика. Находим пункт фоновые процессы, по умолчанию стоит стандартное ограничение.

Нажимаем на пункт фоновые процессы, чтобы редактировать пункт и меняем фоновые процессы на нет фоновых процессов, чтобы если приложение не на экране и мы им прямо сейчас не пользуемся, то оно фоново не работало и не тратило заряд и не нагружало процессор своей фоновой работой.

Таким образом будет работать только то приложение, которое запущено в данный момент и на экране и ничто не будет фоново «съедать» ресурсы планшета.

Вот видео урок на тему как ускорить Android.

Разработчик из Google Диана Hackborn на своей странице в Google+ поделилась информацией касательно аппаратного ускорения интерфейса в Android 4.0 Ice Cream Sandwich. Ажиотаж который поднялся вокруг этой функции не просто так - слишком много упреков звучало в адрес плавности отрисовки 2D-элементов в Android в сравнении с другими мобильными ОС.

Безусловно, аппаратное ускорение в Android это позитивная вещь, но есть много неправильных представлений о том что на самом деле представляет из себя эта возможность. Во-первых, Android уже много лет поддерживает аппаратное ускорение для задач отрисовки множества окон (речь идет о композиции окон - панель задач, оповещения, панель меню, появление и скрытие элементов интерфейса). Это означает что вся анимация элементов интерфейса в Android всегда использовала аппаратное ускорение.

В отличии от отрисовки композиции окон, рендеринг изображения внутри окна традиционно осуществлялся при помощи процессора в Android 2.X и ниже. Однако, в Android 3.0 Honeycomb, эти функции могут быть переложены на графический ускоритель, но только в том случае если в манифесте приложения это прямо указано опцией android:hardwareAccelerated=”true”. Единственное отличие Android 4.0 ICS в том, что при разработке, используя последнее доступное API level 14 (и во всех будущих), эта опция для приложений включена "по умолчанию".

Казалось бы, теперь у нас есть возможность "заставить" работать все приложения в Android 4.0 ICS с включенным аппаратным ускорениям независимо от его манифеста, разве это не прекрасно? На самом деле это не совсем так. В случае, например, с видеоускорителем PowerVR драйвера, используемые в Nexus S и даже в Galaxy Nexus, "отъедают" по 8Мб оперативной памяти за каждый процесс который использует аппаратное ускорение. Вроде бы не так много? Не тут-то было, ведь такое активное потребление оперативной памяти сразу множеством процессов значительно повышает потребление памяти в целом, что сразу сказывается на скорости мультизадачности - вплоть до значительного ее замедления. В итоге, команда разработчиков Google сейчас тратит значительные усилия на тонкую настройку того, какие именно части пользовательского интерфейса действительно нуждаются в аппаратном ускорении на Nexus S.

Что же в итоге? По сравнению с Android 2.X, Ice Cream Sandwich имеет больше возможностей, в том числе благодаря более широкому использованию аппаратного ускорения. Тем не менее, кроме как опции включенного "по умолчанию", использование аппаратного ускорения в ICS ничуть не более "полное", чем это было ранее. И, кроме всего прочего, не стоит забывать что аппаратное ускорение это не магия и не чудо, как считают многие, но его присутствие это конечно плюс, а не минус.

По материалам Google+ Дианы Hackborn и Уилла Verduzco (xda-developers.com)

Доброе утро, Хабр!

Обнаружил на xda-developers.com интересную для себя новость, которая является пересказом свежего поста «Разрушаем мифы о полном аппаратном ускорении в ICS» из Google+ профиля разработчика Google Дианы Hackborn. Взял на себя смелость сделать краткий перевод-пересказ по мотивам этих двух публикаций, который и привожу ниже под хабракатом. Первый вариант этой публикации уже был опубликован мной этой ночью в блоге R2-D2: Android с пользой , но тема показалась мне достойной освещения и на Хабрахабре (я надеюсь тут не нужно поднимать повторно обсуждение того факта, что раздел «Ссылки» после осеннего хабраобновления практически и фактически умер).

Разработчик из Google Диана Hackborn на своей странице в Google+ поделилась информацией касательно аппаратного ускорения интерфейса в Android 4.0 Ice Cream Sandwich. Ажиотаж который поднялся вокруг этой функции возник не просто так - слишком много упреков звучало в адрес плавности отрисовки 2D-элементов в Android в сравнении с другими мобильными ОС.

Безусловно, аппаратное ускорение в Android это позитивная вещь, но есть много неправильных представлений о том что на самом деле представляет из себя эта возможность. Во-первых, Android уже много лет поддерживает аппаратное ускорение для задач отрисовки множества окон (речь идет о композиции окон - панель задач, оповещения, панель меню, появление и скрытие элементов интерфейса). Это означает что вся анимация элементов интерфейса в Android всегда использовала аппаратное ускорение.

В отличии от отрисовки композиции окон, рендеринг изображения внутри окна традиционно осуществлялся при помощи процессора в Android 2.X и ниже. Однако, в Android 3.0 Honeycomb, эти функции могут быть переложены на графический ускоритель, но только в том случае если в манифесте приложения это прямо указано опцией android:hardwareAccelerated=”true”. Единственное отличие Android 4.0 ICS в том, что при разработке, используя последнее доступное API level 14 (и во всех будущих), эта опция для приложений включена «по умолчанию».
Казалось бы, теперь у нас есть возможность «заставить» работать все приложения в Android 4.0 ICS с включенным аппаратным ускорениям независимо от его манифеста, разве это не прекрасно? На самом деле это не совсем так. В случае, например, с видеоускорителем PowerVR драйвера, используемые в Nexus S и даже в Galaxy Nexus, «отъедают» по 8Мб оперативной памяти за каждый процесс который использует аппаратное ускорение. Вроде бы не так много? Не тут-то было, ведь такое активное потребление оперативной памяти сразу множеством процессов значительно повышает потребление памяти в целом, что сразу сказывается на скорости мультизадачности - вплоть до значительного ее замедления. В итоге, команда разработчиков Google сейчас тратит значительные усилия на тонкую настройку того, какие именно части пользовательского интерфейса действительно нуждаются в аппаратном ускорении на Nexus S.

Что же в итоге? По сравнению с Android 2.X, Ice Cream Sandwich имеет больше возможностей, в том числе благодаря более широкому использованию аппаратного ускорения. Тем не менее, кроме наличия опции включенного ускорения «по умолчанию», использование аппаратного ускорения в ICS ничуть не более «полное», чем это было ранее. И, кроме всего прочего, не стоит забывать что аппаратное ускорение это не магия и не чудо, как считают многие, но его присутствие это конечно плюс, а не минус.