Как создавать различные приложения для Android с использованием скриптов ant - PullRequest
3 голосов
/ 16 мая 2011

Здравствуйте, я создаю пользовательское приложение.PRE:

  • Приложение будет доступно только ограниченному кругу пользователей.(скажем, 20 человек)
  • Приложение должно быть уникальным для каждого пользователя, поэтому каждый apk будет ссылаться только на пользователя.
  • Каждое приложение должно иметь свое имя пакета

Итак, я начинал думать о сценарии сборки, который принимает список пользователей, создает 20 apks (по одному для каждого пользователя) и обновляетФайл strings.xml с пользовательскими изменениями, необходимыми для каждого пользователя.

Но я действительно не знаю, с чего начать.Есть хороший способ или учебник, на который я могу сослаться?

Просто чтобы было ясно, я бы хотел получить манифест, подобный этому:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="$pname"
    android:versionCode="1"
    android:versionName="1.0">
        <application>...</application>
    </manifest>

И затем заменить $ pnameиспользуя муравья.

Ответы [ 4 ]

1 голос
/ 16 мая 2011

Возможно, вы ищете команду 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.
1 голос
/ 16 мая 2011

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

0 голосов
/ 16 мая 2011

Вы также можете использовать некоторый уникальный идентификатор устройства.Об этом была интересная статья в Блоге разработчиков Android .

Если вы хотите создать скрипт сборки, вы можете использовать Ant .

0 голосов
/ 16 мая 2011

Может быть проще, если вы сохраните 20 кодов в своем приложении и дадите один код каждому клиенту.Тогда просто подайте каждому клиенту одно и то же заявление.Приложение меняет свои свойства в зависимости от того, какой код был введен.

Если это звучит как правильный подход, я посмотрю, смогу ли я написать некоторые конкретные аспекты.Если это не тот подход, который вам нужен, пожалуйста, не могли бы вы дать мне немного больше информации о том, как будут идентифицированы эти 20 человек?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...