Я думал о том, чтобы иметь скрипт, который бы добавлял информацию о ветвях в виде 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-файл как угодно на своем жестком диске, но я бы не стал рассчитывать, что это имя останется нетронутым в процессе установки.