Jim*_*mmy 10 android android-manifest
我正在编写一个供开发人员使用的库,我有一些配置项,比如apiKey,environment和其他.我想开发人员设置这些值,我首先想到的是使用我在Application类中加载的Java Properties文件,但我看到Google Play和Google Map SDK要求开发人员在Android的元数据标记中添加他们的apiKey表现.推荐的方式是什么?
推荐的android方法让用户从应用程序模块定义库的值是通过元标记
它就像在android-manifest上使用这个代码一样简单
<meta-data android:name="com.yourproject.apikey" android:value="apikey"/>
Run Code Online (Sandbox Code Playgroud)
你可以像这样从你的库中获取这些值
try {
ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.GET_META_DATA);
Bundle bundle = applicationInfo.metaData;
String apiKey = bundle.getString("com.yourproject.apikey");
} catch (NameNotFoundException e) {
//Resolve error for not existing meta-tag, inform the developer about adding his api key
}
Run Code Online (Sandbox Code Playgroud)
这种方法的主要好处是
1)您可以让用户为每种设备类型定义不同的值,例如手机,平板电脑或sdk版本(这可能不适用于您的情况,但这肯定是一个好点)
2)您可以在元标记中添加复杂数据作为值,如果要添加包含要声明的所有值的字符串数组,则可以使用此数据.
3)由于元标记基本上是一个包,因此更容易
在库代码中读取这些值.
如果用户尚未声明所需的元标记,则具有默认值.
(我相信从资产中解析属性需要更多代码而没有任何好处)
4)您还可以在AndroidManifest上为活动,提供者和广播接收者添加配置元标记.
5)此外,我认为更容易请求您的库的消费者在他的Android Manifest上添加一些元信息,而不是在他们的资产文件夹中添加属性文件.我相信这是许多已知库的主要原因使用这种方法,如google-play-service,google-maps,崩溃报告库和许多提供用户分析的库.
祝好运
| 归档时间: |
|
| 查看次数: |
653 次 |
| 最近记录: |