对于工作,我维持一个内部“市场”,可以上传和下载新的应用程序版本。我还维护一个启动器,可以从我们的许多应用程序中进行选择并启动它们(有些是同一个应用程序'品牌'不同)。我目前可以使用包名和版本代码填充此列表,但我还想在SVN分支中添加。
我正在考虑使用一个脚本,将分支信息作为XML添加到清单中作为自定义属性或单独的XML文件。理想情况下,这可以通过PackageManager公开访问。这可能吗?
或者,我可以通过编程方式更改APK名称吗?然后我可以使用“$ name - $ branch”作为新名称。
答案 0 :(得分:2)
我正在考虑使用一个脚本,将分支信息作为XML添加到清单中作为自定义属性或单独的XML文件。理想情况下,这可以通过PackageManager公开访问。这可能吗?
您已将<meta-data>
元素添加到组件的元素(例如<activity>
)并通过PackageManager
访问元数据XML内容:
<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");
然后,您的自定义构建过程可以调整<meta-data>
指向的XML资源,以包含您想要的任何内容。
或者,我可以通过编程方式更改APK名称吗?
您可以在硬盘驱动器上为APK文件命名,但我不会指望该名称在安装过程中保持不变。