29 Android Studio使用技巧

29.1打包介绍

使用AndroidStudio可以很方便的一次编译多个渠道包,步骤如下:

1 在AndroidManifest.xml文件中配置CHANNEL字符串:

android:name="UMENG_CHANNEL"

android:value="${CHANNEL_VALUE}"

tools:replace="android:value"/>

2 在项目中增加各渠道文件夹各相关文件。如不同渠道包连接的服务器地址不同,可以做如下配置:

每个渠道包的strings.xml文件中包含对应的服务器地址:

http://www.xxx.com

3在gradle文件中添加如下代码:

productFlavors{

//编译3个渠道包

demo3 {

}

demo4 {

}

demo5 {

}

//设置每个渠道包中的渠道名称

productFlavors.all { flavor ->

flavor.manifestPlaceholders =[CHANNEL_VALUE: name]

}

//把代码的提交次数+渠道名称作为版本号

applicationVariants.all{ variant ->

if(variant.buildType.name.equals('release')) {

def gitVersion =gitVersionCode()

variant.mergedFlavor.versionCode = gitVersion

variant.mergedFlavor.versionName= gitVersion.toString() +variant.mergedFlavor.manifestPlaceholders.CHANNEL_VALUE

}

}

//按APK名+版本号+编译时间+渠道名称的方式修改编译的APK文件名称

applicationVariants.all{ variant ->

if(variant.buildType.name.equals('release')) {

variant.outputs.each { output ->

def outputFile =output.outputFile

if (outputFile !=null &&

outputFile.name.endsWith('release.apk')){

def fileName =

"xxx_v${variant.mergedFlavor.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"

output.outputFile = newFile(outputFile.parent, fileName)

}

//删除xxx-unaligned.apk这类没有字节对齐的APK文件

if(output.zipAlign!= null){

output.zipAlign.doLast{

output.zipAlign.inputFile.delete()

}

}

}

}

}

}

//获取Git服务器上的代码提交次数

defgitVersionCode() {

def cmd = 'git rev-list HEAD --count'

cmd.execute().text.trim().toInteger()

}

//得到当前时间的字符串,不能用UTC时区,要用上海所在的时区(也就是北京//时间)

defreleaseTime() {

return newDate().format("yyyyMMddHHmmss",

TimeZone.getTimeZone("Asia/Shanghai"))

}

更多相关文章

  1. android通过网络下载文字和Mp3的例子
  2. 用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
  3. Android工程的编译过程
  4. Android(安卓)快速打包项目成jar包
  5. 目前最全的android恶意程序的分类谱
  6. Android中有用的组件被选中和按下去的变换样式
  7. android rootfs
  8. android存取数据方式:文件、SharedPreferences
  9. NPM 和webpack 的基础使用

随机推荐

  1. 用一个二维码做下载地址,自动区分是 ios
  2. Android Studio第三十八期 - HIOS跳转协
  3. x264在android平台上的编译和使用
  4. 2011.07.12(2)——— android Messenger 跨
  5. Android中拍照、图片、录音、视频和音频
  6. Android 解决帧动画卡顿问题
  7. ClassCastException android.view.viewgr
  8. Ubuntu下android开发环境搭建
  9. android mtk平台默认输入法
  10. Android开发Error(建议收藏下来以备不时之