Куда девать API-ключ? Ресурсы, метаданные в Манифесте или статическая переменная? [дубликат]
На этот вопрос уже есть ответ здесь:
Я пытаюсь выяснить, что является лучшей практикой для добавления ключа API в мое приложение для Android.
- Некоторые люди рекомендуют использовать meta-data
в файле Manifest.xml
- link. Который заставило меня почувствовать, что это лучше, чем добавление ключа в файлы resources
.
<meta-data android:value="key_value" android:name="api_key"></meta-data>
- Некоторые люди говорят, добавьте его в resources
- ссылка
<string name="api_key">api_key_value</string">
- мы можем просто добавить его в код класса
api.configue("api_key_value");
- Некоторые люди говорят, что добавление ключей в файлы Manifest.xml
и resources
позволит другим приложениям прочитать его - Ссылка.
<string name="foo">bar</string">
Я не пытаюсь найти лучший безопасный способ, потому что для меня я бы сохранил ключ на моем сервере и извлек его в во время выполнения.
Я спрашиваю о наилучшем подходе и наилучшей практике для этого.
Заранее благодарю.
1 ответ:
Я не понял вопроса, потому что, похоже, вы уже определились, что делать с ключом API (в сервере).
Отличная статья о возможных укрытиях API ключей в Android: http://www.androidauthority.com/how-to-hide-your-api-key-in-android-600583/
В вашем случае, поскольку вы собираетесь получить ключ во время выполнения с сервера, я бы следовал #4: API key Public/private key exchange из статьи, но это может быть громоздким.
Также я бы рассмотрел подход NDK (#3 из статьи ). Это довольно простой подход на стороне клиента.