2014-09-02 2 views
0

Я хотел бы предложить свое Android 4+ приложение как в Play Store, так и на рынке Amazon. Я нашел здесь несколько вопросов о SO, посвященных вопросу о том, как интегрировать оба магазина в одном APK. Это кажется довольно сложным, потому что нет надежного способа проверить, чтобы приложение было загружено из магазина A или B, но если оно было загружено из B, все ссылки на магазин, обзоры и т. Д. Должны указывать на B и т. Д. ...Как создать два разных приложения (Play Store/Amazon Store) из того же проекта Eclipse?

Таким образом, оба магазина в том же APK не то, что я ищу. Я хотел бы создать два разных APK, по одному для каждого магазина. Дополнительный бонус: APK будут меньше, поскольку каждый будет содержать только те библиотеки, которые ему действительно нужны. Как это может быть сделано?

В Xcode/iOS я бы просто создал две разные цели, каждая со своим набором libs и конфигураций. Как это можно сделать в Eclipse? Существует только один AppManifest, и опция «File/Export/Export Android Application» всегда использует ту же конфигурацию для создания того же APK.

Что я могу сделать, чтобы создать две разные версии приложения из одного проекта Eclipse?

ответ

1

Не тот ответ, который вы ищете, но это реальность.

Eclipse + ADT - это не очень гибкий способ создания приложений и для выполнения того, что вы просите, вам потребуется довольно большое количество сценариев ANT (я видел это раньше в банковском приложении, которое создает разные .apks для каждого из его брендов). Но это, наверное, еще сложнее, чем строить все в один апк.

С другой стороны, если вы хотите перенести свой проект на AndroidStudio + Gradle, это более гибкий подход к созданию программного обеспечения, и у них есть «простая в использовании» концепция вкусов, вот фрагмент из build.gradle части приложения я работаю:

productFlavors { 
    phone { 
     resConfigs "xhdpi", "xxhdpi", "xxxhdpi", "nodpi" 
     versionCode 100000 + project.ver.versionCode 
    } 
    phone_low_end { 
     resConfigs "ldpi", "mdpi", "hdpi", "nodpi" 
     versionCode 200000 + project.ver.versionCode 
    } 
    tablet { 
     versionCode 300000 + project.ver.versionCode 
    } 
    unified { 
     versionCode project.ver.versionCode 
    } 
} 
sourceSets{ 
    unified{ 
     res { 
      srcDir 'src/tablet/res' 
     } 
     assets{ 
      srcDirs 'src/phone/assets', 'src/tablet/assets' 
     } 

    } 
} 

и с этой довольно небольшой конфигурацией проект строятся с различным VersionCode, с различными активами. Для вашего проекта вы можете легко интегрироваться следующим образом:

sourceSets{ 
    googleplay{ 
     src { 
      srcDir 'src/googleplay/java/' 
     } 
    } 
    amazon{ 
     src { 
      srcDir 'src/amazon/java/' 
     } 
    } 
} 
Смежные вопросы