您好,我正在构建一个自定义应用程序。前:
- 该应用程序将仅限于有限数量的用户。(假设20人)
- 每个用户的应用应该是唯一的,因此每个 apk 仅引用一个用户。
- 每个应用应具有不同的包名称
所以我开始考虑一个构建脚本,它采用用户列表并创建 20 个 apk(每个用户一个)并使用每个用户所需的自定义修改更新字符串.xml文件。
但我真的不知道从哪里开始。有没有我可以参考的好方法或教程?
为了清楚起见,我想要这样的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="$pname"
android:versionCode="1"
android:versionName="1.0">
<application>...</application>
</manifest>
然后用蚂蚁替换$pname。
也许您正在寻找 aapt 命令。它有一个额外的标志 --rename-manifest-package。帮助说
Rewrite the manifest so that its package name is the package name given here. Relative class names (for example .Foo) will be changed to absolute names with the old package so that the code does not need to change.
半空默认活动(每个用户一个),位于 20 个不同的包中,扩展了 1 个真实活动,例如:
mypackage.user01.MyMainActivity extends mypackage.MyMainActivity;
mypackage.user02.MyMainActivity extends mypackage.MyMainActivity;
mypackage.user03.MyMainActivity extends mypackage.MyMainActivity;
...
mypackage.user20.MyMainActivity extends mypackage.MyMainActivity;
然后是 20 种不同的机器人清单.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mypackage.userXX">
<application
android:icon="@drawable/MyIcon"
android:label="@string/MyApplication"
>
<activity android:name=".MyActivity"
android:label="@string/MyActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="mypackage.MyActivity"
android:label="@string/MyActivity"/>
<activity
android:name="mypackage.user01.MyActivity"
android:label="@string/MyActivity"/>
<!-- etc. till user20 -->
</application>
</manifest>
将使用简单的 Ant 复制任务复制到真正的任务 - 它很容易实现,虽然有点无聊:)
如果您在应用中存储 20 个代码,并为每个客户提供一个代码,可能会更简单。然后只需为每个客户提供相同的应用程序。应用程序根据输入的代码更改其属性。
如果这听起来是正确的方法,我会看看我是否可以编写一些特定的方面。如果这不是你所追求的方法,你能给我更多关于如何识别这20个人的信息吗?
您还可以使用一些唯一的设备标识符。在Android开发者博客上有一篇有趣的文章。
如果要创建构建脚本,可以使用 Ant。