Я уже некоторое время работаю над игрой для Android.У меня реализована основная игра, так что теперь я возвращаюсь и пытаюсь оптимизировать.Кажется, что заряд батареи и использование процессора слишком высоки для того, что я делаю.У меня действительно есть только мой основной поток, а затем все рисование и обновление выполняются в отдельном потоке.
Ниже приведен код для реального игрового потока, который выполняет обновление, и всего рисования.Весь фактический код был удален, осталось то, с чем я экспериментировал, чтобы выяснить ненормальное использование процессора / разрядку батареи.
Так что, в принципе, если я запускаю нижеследующий поток только с бесконечным циклом в то время как приложение использует около 315 мАч или около 9% батареи моего телефона за 30 минут использования.Если я запускаю поток без кода внутри метода run, чтобы он истекал после одного прохода, он расходует примерно 70 мАч или 2% батареи телефона за то же время.Загрузка ЦП также увеличивается с 2% -3% без выполнения потока до примерно 14% -15%, когда поток работает и просто выполняет бесконечный цикл.
Подводя итог, кажется, что запуск потока только с бесконечным циклом while, который ничего не делает, увеличивает использование батареи на 7% в течение 30 минут.Я не понимаю, как это возможно, и думаю, что я что-то упускаю.Я буду продолжать работать, чтобы понять это, но больше нет кода, который можно взять.Если у кого-то есть какие-либо предложения или они могут дать некоторое представление о том, почему это происходит, я буду очень признателенЗаранее спасибо.
class InnerThread extends Thread
{
public InnerThread()
{
super();
}
public void run()
{
while(true){}
}
}