Java-приложение перегревается

Последние несколько месяцев у меня были проблемы с приложениями, которые я создал для Android. Похоже, что после относительно небольшого времени работы (примерно 10-20 минут) мой телефон начинает сильно нагреваться. Кроме того, приложение может начать отставать тонну (падение примерно 30-40 кадров). Я пытался выследить проблему некоторое время, но не повезло. У меня есть несколько идей относительно того, что может быть причиной проблемы, но я не смог подтвердить.

Вот немного информации о моей настройке, которая может быть причиной проблемы:

  1. Приложение использует примерно 50-80 МБ, если загруженные звуки или изображения высокого качества иногда могут достигать 140 МБ.

  2. Все прямо нарисовано на холсте Javas. (Можно ли попробовать сделать приложение высокого качества, используя холст Javas для рисования?)

  3. Я не использую андроиды "активность" системы. Вместо этого у меня есть своя собственная система, которая создает и удаляет объекты посредством передачи строк, когда инициируются определенные события. (Таким образом, технически вся программа всегда выполняется в основном действии, а объекты обрабатываются через мою систему).

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

  5. Функция обновления основного объекта запускается в потоке, в то время как метод рисования сам по себе вызывает инвалидность. Мои объекты обновляются с помощью следующего кода

    while (roomRunning)
            {
                if (!isPaused)
                    update();
    
                try { synchronized (this) { wait(5); } } catch       (InterruptedException e)
                {
                    e.printStackTrace();
                }
            }
    

0,005 секунды - это скорость обновления кода. Эта частота обновления очень близка к 60 кадрам, и она кажется очень плавной, однако я все еще обеспокоен тем, что она может быть быстрой (особенно потому, что приложению иногда приходится обрабатывать сотни объектов на обновление кода).

Я контролировал использование памяти моим приложением и сравнивал его с другими играми, запущенными на моем телефоне. Использование памяти, кажется, там со многими другими приложениями, однако они не вызывают перегрев. Кроме того, при запуске приложения на телефоне друзей я не заметил проблем с перегревом или зависанием.

Может ли эта проблема быть вызвана неисправным телефоном, или мне нужно исправить что-то серьезное в моем приложении?

Если есть еще какая-то информация, необходимая для решения этой проблемы, пожалуйста, дайте мне знать.

0 ответов

Другие вопросы по тегам