android - API key 放在哪里? list 中的资源、元数据或静态变量?

标签 android android-studio android-manifest

<分区>

我正在尝试找出将 API key 添加到我的 Android 应用程序中的最佳做法。

-有些人建议在Manifest.xml 文件中使用meta-data - link .这让我觉得,最好在 resources 文件中添加 key 。

<meta-data android:value="key_value" android:name="api_key"></meta-data>

-有人说,把它添加到resources - link

<string name="api_key">api_key_value</string">

-我们可以在类代码中简单地添加它

api.configue("api_key_value");

-有人说在 Manifest.xmlresources 文件中添加 key 将允许其他应用读取它 - link .

<string name="foo">bar</string">

我并不想找到最安全的方法,因为对我来说,我会将 key 保存在我的服务器中并在运行时检索它。

我问的是要遵循的最佳方法和最佳实践。

提前致谢。

最佳答案

我没有关注这个问题,因为您似乎已经确定了如何处理 API key (在服务器中)。

一篇关于 Android 中 API key 可能隐藏的好文章: http://www.androidauthority.com/how-to-hide-your-api-key-in-android-600583/

在您的情况下,由于您要在运行时从服务器检索 key ,我会遵循文章中的#4: API key Public/private key exchange,但它可以是麻烦。

另外,我会考虑 NDK 方法(文章中的#3)。作为客户端方法,它非常简单。

关于android - API key 放在哪里? list 中的资源、元数据或静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794656/

相关文章:

android - setWindowAnimations 和 overridePendingTransition 之间的区别?

java - Android:从 Activity 到其他 fragment 选项卡的接口(interface)不起作用

android - 在 AndroidManifest 中注册 Intent.ACTION_DREAMING_STARTED

android - 如何在 Android Studio 4.2.1 中获取 SHA1 和 SHA256

java - 禁用 IntelliJ 中运行窗口的显示

android - 如何从build.gradle文件动态设置自定义权限的protectionLevel?

android - Android 中的操作、类别、 Activity 名称有什么区别?

android - 从 RealmList 中删除 RealmObject

Java (Android),方法 POST,Web 格式而不是 JSON

Android - 单击主页按钮时不显示自定义主页应用程序