API 键放在哪里?清单中的资源、元数据或静态变量?

Where to put the API key? Resources, Meta-data in Manifest or static variable?

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

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

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

-有人说,把它加进resources-link

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

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

api.configue("api_key_value");

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

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

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

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

提前致谢。

我没有跟进问题,因为您似乎已经确定了如何处理 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)。作为客户端方法,它非常简单。