当前位置: 首页 > news >正文

建设网站前的市场分析怎么写/苹果cms永久免费全能建站程序

建设网站前的市场分析怎么写,苹果cms永久免费全能建站程序,宜昌网站企业,网站开发长春原文链接:http://stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ 由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了&…

原文链接:http://stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/

 

由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。

友盟多渠道打包

废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段:

<meta-dataandroid:name="UMENG_CHANNEL" android:value="Channel_ID" />

里面的Channel_ID就是渠道标示。我们的目标就是在编译的时候这个值能够自动变化。

  • 第一步 在AndroidManifest.xml里配置PlaceHolder
<meta-dataandroid:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
  • 第二步 在build.gradle设置productFlavors
android {  productFlavors {xiaomi { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"] } _360 { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "_360"] } baidu { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"] } wandoujia { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"] } } }

或者批量修改

android {  productFlavors {xiaomi {} _360 {} baidu {} wandoujia {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } }

很简单清晰有没有?直接执行 ./gradlew assembleRelease , 然后就可以静静的喝杯咖啡等待打包完成吧。

assemble结合Build Variants来创建task

上一篇博客介绍了 assemble 这个命令,会结合 Build Type 创建自己的task,如:

  • ./gradlew assembleDebug

  • ./gradlew assembleRelease

除此之外 assemble 还能和 Product Flavor 结合创建新的任务,其实 assemble 是和 Build Variants 一起结合使用的,而 Build Variants = Build Type + Product Flavor , 举个例子大家就明白了:

如果我们想打包wandoujia渠道的release版本,执行如下命令就好了:

  • ./gradlew assembleWandoujiaRelease

如果我们只打wandoujia渠道版本,则:

  • ./gradlew assembleWandoujia

此命令会生成wandoujia渠道的Release和Debug版本

同理我想打全部Release版本:

  • ./gradlew assembleRelease

这条命令会把Product Flavor下的所有渠道的Release版本都打出来。

总之,assemble 命令创建task有如下用法:

  • **assemble**: 允许直接构建一个Variant版本,例如assembleFlavor1Debug。

  • **assemble**: 允许构建指定Build Type的所有APK,例如assembleDebug将会构建Flavor1Debug和Flavor2Debug两个Variant版本。

  • **assemble**: 允许构建指定flavor的所有APK,例如assembleFlavor1将会构建Flavor1Debug和Flavor1Release两个Variant版本。

完整的gradle脚本

最后福利大放送,来一份我在项目中使用的完整的gradle文件配置:

apply plugin: 'com.android.application'def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) } android { compileSdkVersion 21 buildToolsVersion '21.1.2' defaultConfig { applicationId "com.boohee.*" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" // dex突破65535的限制 multiDexEnabled true // 默认是umeng的渠道 manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"] } lintOptions { abortOnError false } signingConfigs { debug { // No debug config } release { storeFile file("../yourapp.keystore") storePassword "your password" keyAlias "your alias" keyPassword "your password" } } buildTypes { debug { // 显示Log buildConfigField "boolean", "LOG_DEBUG", "true" versionNameSuffix "-debug" minifyEnabled false zipAlignEnabled false shrinkResources false signingConfig signingConfigs.debug } release { // 不显示Log buildConfigField "boolean", "LOG_DEBUG", "false" minifyEnabled true zipAlignEnabled true // 移除无用的resource文件 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { // 输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk def fileName = "boohee_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } } } } // 友盟多渠道打包 productFlavors { wandoujia {} _360 {} baidu {} xiaomi {} tencent {} taobao {} ... } productFlavors.all { flavor -> flavor.

转载于:https://www.cnblogs.com/ryq2014/p/5674499.html

http://www.lbrq.cn/news/1117783.html

相关文章:

  • 贵州建设工程招标协会网站/企业培训计划方案
  • 海淀重庆网站建设/百度pc版网页
  • 上海工业网站建设/百度空间登录
  • 网站无法收录/广告公司取名字参考大全
  • 制作网站工具/站长网站查询
  • 网站建设对称对比型/舆情网站
  • 国外对旅游网站的建设/百度搜索排名购买
  • 刚刚做的网站怎么排名/百度识图在线识图
  • 做网站包括哪些/怎么优化网站排名
  • 网站仿站建设/新闻稿在线
  • 资源网站优化排名软件/网页设计制作软件
  • 西安谁家的集团门户网站建设比较好/会员卡营销策划方案
  • 广州网站建设广州网络推广公司好/志鸿优化网
  • 设计创意广告/百度seo排名培训优化
  • 服务器建站用哪个系统好/seo sem是啥
  • 做网站需要写代码吗/培训心得体会总结
  • php语言入门/seo软件工具
  • 温州哪里做网站比较好/站长统计app软件下载官网
  • 切削工具东莞网站建设/线上推广活动有哪些
  • 网站seo具体怎么做/windows优化大师在哪里
  • 网站忘记备案/百度网页版下载
  • 你愿意做我女朋友吗表白网站/中国国家培训网官网查询
  • 赞助网站怎么做/郑州今日重大新闻
  • 网站循环滚动图片z怎么做/百度游戏客服在线咨询
  • 网站开发项目外包/简单的网站建设
  • 网页美工培训学校/武汉seo 网络推广
  • 网站风格设计原则/百度关键词价格查询软件
  • 网站设计与建设论文/yahoo搜索引擎
  • 图表统计类手机网站开发/全网整合营销平台
  • 百度搜索自己的网站/360建站和凡科哪个好
  • NumPy, SciPy 之间的区别
  • 数据集相关类代码回顾理解 | utils.make_grid\list comprehension\np.transpose
  • AI应用核心转向Context Engineering
  • rocky8 --Elasticsearch+Logstash+Filebeat+Kibana部署【7.1.1版本】
  • 信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代
  • 前端vue3获取excel二进制流在页面展示