一直感觉AndroidStudio没有eclipse快,但是最近由于遇到一个问题不得不将工程迁移到AndroidStudio上,迁移后之前在eclipse上所做的所有批量打包又得重新在AndroidStudio上搞一遍,不得不说这个过程远比我想象的让人愉快,AndroidStudio的强大和好用改变了之前我对这个IDE的偏见,无疑这个IDE是开发Android的最好工具。
一、普通打包配置
defaultConfig {
applicationId myAppId
minSdkVersion 14
targetSdkVersion 19
versionCode vCode
versionName vName
testApplicationId "com.xx.xxx.test"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
multiDexEnabled true
signingConfig signingConfigs.releaseConfig
manifestPlaceholders = [package_name: myAppId, app_icon: myAppIcon,
app_name: myAppName, umeng_appkey: umengAppKey,
main_menu_json: mainMenus, main_app_change_string:appChangedText]
}
这个配置是一个默认配置项,我们可以将一些公共的东西配置在这里,在这里可以看到我对AppId(也就是通常说的包名)用一个变量进行配置,因为在我的工程中同一个源码要打多个应用(AppId),像这样的需求应该不多见,但是你总有一天会碰到
def myAppId = 'com.xx.xxx'
大家肯定还会注意到我最下面的配置
manifestPlaceholders = [package_name: myAppId, app_icon: myAppIcon,
app_name: myAppName, umeng_appkey: umengAppKey,
main_menu_json: mainMenus, main_app_change_string:appChangedText]
这些配置都是在mainfest文件中定义的变量,在这里做一个统一配置(因为是默认配置),如果有个别渠道需要单独配置可以在下面的productFlavors中做具体的个性化配置。
productFlavors {
forum { }
}
这个就是官网包的配置(使用的是默认配置),所以不需要做个性化配置,这样就ok了,如果要添加其他渠道,比如baidu要个性化应用名称。
productFlavors {
forum { }
baidu{
manifestPlaceholders = [app_name: '百度']
}
}
这样看似很完美是不是,可以打不通的渠道不同的AppId的包了,事实上的确如此,但是我们都知道android的应用市场好几百,一般上个20多个应用市场(也就是打20个渠道)不