0

对于工作,我维护一个内部“市场”,可以上传和下载新的应用程序版本。我还维护了一个启动器,它可以从我们的许多应用程序中选择并启动它们(有些是相同的应用程序“品牌”不同)。我目前可以使用包名称和版本代码填充此列表,但我还想在 SVN 分支中添加。

我正在考虑有一个脚本,它将分支信息作为 XML 添加到清单中作为自定义属性或作为单独的 XML 文件。理想情况下,这可以由 PackageManager 公开访问。这可能吗?

或者,我可以以编程方式更改 APK 名称吗?然后我可以使用“$name - $branch”作为新名称。

4

1 回答 1

2

我正在考虑有一个脚本,它将分支信息作为 XML 添加到清单中作为自定义属性或作为单独的 XML 文件。理想情况下,这可以由 PackageManager 公开访问。这可能吗?

您已将元素添加<meta-data>到组件的元素(例如,<activity>)并通过以下方式访问元数据 XML 内容PackageManager

    <receiver android:name="com.commonsware.cwac.wakeful.AlarmReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>

        <meta-data
            android:name="com.commonsware.cwac.wakeful"
            android:resource="@xml/wakeful"/>
    </receiver>

该组件将通过如下代码访问元数据:

PackageManager pm=ctxt.getPackageManager();
ComponentName cn=new ComponentName(ctxt, getClass());
ActivityInfo ai=pm.getReceiverInfo(cn, PackageManager.GET_META_DATA);
XmlResourceParser xpp=ai.loadXmlMetaData(pm, "com.commonsware.cwac.wakeful");

然后,您的自定义构建过程可以调整指向的 XML 资源<meta-data>以包含您想要的任何内容。

或者,我可以以编程方式更改 APK 名称吗?

您可以在硬盘驱动器上随意命名 APK 文件,但我不会指望该名称在安装过程中保持不变。

于 2012-02-14T14:42:31.210 回答