放置API密钥的位置?资源,清单中的元数据还是静态变量?

时间:2015-03-01 14:27:08

标签: android android-studio android-manifest

我试图弄清楚将API的密钥添加到我的Android应用程序中的最佳做法。

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

<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文件中的密钥会让其他应用读取它 - link

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

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

我询问最佳方法,以及最佳实践。

提前致谢。

1 个答案:

答案 0 :(得分:3)

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

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

在您的情况下,由于您将在运行时从服务器检索密钥,我会从文章中跟踪#4:API密钥公钥/私钥交换,但它可能很麻烦。

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