Где хранить глобальные константы в приложении для Android?

Я бы знал, какая наилучшая практика для хранения глобальных констант, которые могут измениться с помощью среды (debug, preprod, prod, release и т. Д.) Во время компиляции.

В iOS я использовал все глобальные константы в файле заголовка и менял его с помощью макропроцессора, чтобы увидеть этот ответ:

Где хранить глобальные константы в приложении iOS?

Какое решение я должен использовать для Android?

    Создайте константы класса в папке базового пакета.

    (Или создать интерфейс вместо класса, поэтому нет необходимости ссылаться на класс каждый раз, однако это плохая практика из-за читаемости кода, но она будет работать)

    Заполните его public static final значениями.

    Более того, как class так и interface также могут быть объявлены abstract .

    Если значения ваших констант зависят от среды (плотность, локаль и т. Д.), Вы должны использовать ресурсы для их хранения (целое число, строка, размер и т. Д.).

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

    Используйте public static final values. И сохраните их в отдельном файле java следующим образом:

      static String QC = "http:/************"; static String DEV = "http:/************"; static String CLOUD = "http:/************"; static String SERVICEURL = CLOUD ; //Use this SERVICEURL in your code at run time 

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

    Это можно использовать для хранения констант, таких как учетная запись, которой управляет это приложение:

    Ex. WelcomeActivity.java

     AccountManager am = AccountManager.get(WelcomeActivity.this); Account account = am.getAccountsByType(getResources().getString(R.string.ACCOUNT_TYPE))[0]; 

    Ex. RES / значения / strings.xml

     <resources> <string name="ACCOUNT_NAME">com.acme.MyAccountSignature</string> </resources> 

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

    Intereting Posts
    Разница между FutureTask и AsyncTask в андроиде Понимание того, как на самом деле drawRect или рисование координат работают в Android Обновленная диаграмма размеров экрана Как обновить / обновить Android APK во время Staged Rollout в Google Play Отображение изображения, большего, чем экран устройства Ошибка при создании на устройстве Android Значки меню Android не отображаются, когда уровень API выше 10 ListFragment, как получить listView? Проблема при внедрении приемника местоположения в приложении Android-приложения Распознавание рукописного текста для изолированного арабского языка Android – создание папки в каталоге data / data / pkg / files Аутентификация пользователя, входящего в систему с FB на моем сервере, с помощью диспетчера учетных записей Android Как открыть различные действия с моими элементами списка? Передача данных между устройствами Android с использованием Wi-Fi Direct? Ограничить количество вызовов при использовании Parse