Articles of Оптимизация

Оптимизация кода Java / Android: устраняет ли Java недостижимый код при сборке

Пожалуйста, взгляните на этот образец андроида кода: private static final boolean aBoolean = false; … if(aBoolean){ //do something like logs } В этом случае, поскольку значение aBoolean является ложным и что он не может измениться во время выполнения, будет ли // делать что-то вроде инструкции logs при построении или будет ли он все еще собираться […]

Оптимизация и опускание GPU Overdraw – Android

Я включил опцию Overdraw GPU в настройках разработчика и заметил, что мое приложение не очень оптимизировано, и я не уверен, где его изменить, чтобы он работал немного лучше. Вот образ этого. Красные разделы являются частью ListView, поэтому я не знаю, как оптимизировать его, сохраняя тот же стиль. Вот как выглядит layout.xml для каждого раздела ListView: […]

Обнаружение присутствия FPU на Android

Я хочу получить максимальную производительность моего мобильного приложения на Android. Я хотел бы знать, знает ли кто-нибудь об уловке, чтобы проверить, имеет ли телефон FPU. После некоторых исследований кажется, что использование класса FloatMath медленнее на блоке, который обладает FPU, поэтому я хотел бы иметь лучшее из обоих миров. У большинства новых телефонов есть FPU, но […]

Быстрая отмена / повтор с использованием шаблона памяти / команды?

Я пишу приложение для рисования / графики Java для мобильного телефона (так что память ограничена). Состояние приложения – это, по существу, три растровых изображения 1000×500 (т.е. слои изображения). Загрузка трех растровых изображений занимает около 2 или 3 секунд. Я пытаюсь написать движок отмены, но я просто не могу найти хороший способ сделать это. Типичными подходами […]

Самый быстрый способ читать долго из файла?

У меня есть файл, содержащий около 200 000 длинных значений, которые я хочу как можно быстрее прочитать в длинном []. Это приложение для Android; Вызовы функций медленны (поэтому все, что связано с чтением длинных за один раз с циклом «для», будет очень медленным), и мне нужно, чтобы загрузка была быстрой. Что я могу использовать? Все, […]

Будет ли этот метод вызываться? (Все еще требуется принятый ответ … См. Подробности в ответе)

TL; DR: onPause метод onPause во время телефонного звонка? У меня есть разрешение на READ_PHONE_STATE, которого я не хочу. Таким образом, вызов метода onPause вызывает телефонный звонок, так что я могу отключить звук моих приложений там? private PhoneStateListener phoneStateListener = new PhoneStateListener() { @Override public void onCallStateChanged(int state, String incomingNumber) { if (doesUserHavePermission()) { if […]

Быстрые динамические вершины в OpenGL ES 2.0 на Android

Я пытаюсь сделать несколько строк на Android с помощью OpenGL ES 2.0, и мне нужно знать, как это сделать. Прямо сейчас я создал класс под названием LineEngine, который создает FloatBuffer всех вершин для рисования, а затем рисует все строки сразу. Проблема заключается в том, что, по-видимому, FloatBuffer.put () работает очень медленно и поглощает время процессора […]

Почему API Android запрашивает параметр результатов, а не метод возврата?

Мой вопрос на всем API-интерфейсе Android, многие вызовы библиотеки требуют, чтобы параметр results[] передавался в метод, например: public boolean isInProximity(double startLat, double startLongitude, float meters) { float[] results = new float[3]; Location.distanceBetween(startLat, startLongitude, endLatitude, endLongitude, results); return results[0] <= meters; } Вызов android – Location.distanceBetween() и для этого требуются results[] почему бы им просто не […]

Является ли этот пользовательский CursorAdapter для ListView правильно кодированным для Android?

Я никогда не был доволен кодом моего пользовательского CursorAdapter до сегодняшнего дня, когда решил его пересмотреть и исправить небольшую проблему, которая беспокоила меня в течение долгого времени (достаточно интересно, ни один из пользователей моего приложения не сообщал о такой проблеме). Вот небольшое описание моего вопроса: Мой пользовательский CursorAdapter переопределяет newView() и bindView() вместо getView() как […]

Как правильно запустить ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS?

Как указано в документации: «Приложение, содержащее разрешение REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, может инициировать системный диалог, позволяющий пользователю напрямую добавлять приложение в белый список, не переходя к настройкам. Приложение запускает ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Intent для запуска диалога». Может ли кто-нибудь сказать мне правильный способ уволить это намерение?