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

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

У меня есть файл, содержащий около 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 для запуска диалога». Может ли кто-нибудь сказать мне правильный способ уволить это намерение?

Genymotion не остановит оптимизацию приложения

Я пытаюсь использовать Genymotion с Android Studio, чтобы тестировать приложение, но всякий раз, когда я пытаюсь запустить эмулятор, он говорит: «Android запускается … Оптимизация приложения [#] из 74», и он оптимизируется некоторое время. В конце концов он перестает оптимизировать, но тогда это просто черный экран и говорит «андроид». Затем через минуту или две он возвращается […]

Эффективный цикл через список Java

Следующий список из беседы ввода-вывода google в 2008 году, называемый «Внутренние виртуальные машины Dalvik», представляет собой список способов циклического перебора множества объектов в порядке от большинства до наименее эффективных: (1) for (int i = initializer; i >=0; i–) //hard to loop backwards (2) int limit = calculate_limit(); for (int i= 0; i< limit; i++) (3) […]

Как оптимизировать рендеринг в Android-браузере

Есть ли возможность увеличить скорость рендеринга в webview? С простым innerHTML для отображения содержимого требуется около 1 секунды, хотя рендеринг js занимает несколько мс. С IOS точно такой же код работает быстро и идеально, даже с менее производительным оборудованием. Протестировано под Android: 2.3, 3.2, 4.0 (Desire HD, Galaxy Nexus, Galaxy Tab) IOS: 4, 5 (iPhone […]

Производительность Android – «Избегайте внутренних Getters / Setters»

Просто прочитайте это на сайте dev: Избегайте внутренних Getters / Setters На родных языках, таких как C ++, обычно использовать геттеры (например, i = getCount ()) вместо прямого доступа к полю (i = mCount). Это отличная привычка для C ++, потому что компилятор обычно может встроить доступ, а если вам нужно ограничить или отлаживать доступ […]