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

临海做网站学电商运营的培训机构

临海做网站,学电商运营的培训机构,做游戏脚本的网站,做会员体系的网站目录 1.添加productFlavors的配置buildConfigFieldmanifestPlaceholdersresValue 2.设置apk文件的名称,便于识别3.添加vasdolly、添加gradle脚本(windows) 作用:一次性可以打多个apk包,名字、包名、logo等可以不相同。…

目录

    • 1.添加productFlavors的配置
      • buildConfigField
      • manifestPlaceholders
      • resValue
    • 2.设置apk文件的名称,便于识别
    • 3.添加vasdolly、添加gradle脚本(windows)

作用:一次性可以打多个apk包,名字、包名、logo等可以不相同。解决了每次发版都要手动修改代码的问题,例如:名字、logo等。

配置build.gradle(app)

1.添加productFlavors的配置

android{.....
//设置风味的维度flavorDimensions = ["release"]//productFlavors中有两套配置,huawei、oppo。productFlavors {huawei {versionCode 8versionName "1.7.33"dimension "release"applicationId "test.test.abc"resValue "string", "file_provider_name_personal", applicationId + ".provider"manifestPlaceholders = [apkName: '语文',apkIcon: '@drawable/yuwen']ndk {abiFilters "arm64-v8a"//"armeabi-v7a" , "arm64-v8a"}buildConfigField "int", "COMPANY", "1"}oppo {versionCode 7versionName "1.6.30"dimension "release"applicationId "test.test.abc"resValue "string", "file_provider_name_personal", applicationId + ".provider"manifestPlaceholders = [apkName: '数学',apkIcon: '@drawable/yuwen']ndk {abiFilters "arm64-v8a"//"armeabi-v7a" , "arm64-v8a"}buildConfigField "int", "COMPANY", "4"}}
}
 buildConfigField "int", "COMPANY", "1"

buildConfigField

buildConfigField申明了一个常量,方便在代码中进行使用。

BuildConfig文件:

public final class BuildConfig {public static final int COMPANY = 1;
}

使用buildConfigField

public class MyApplication extends Application {@Overridepublic void onCreate() {Constant.URL_PROTOCOLUSE = "http://xxx.xxx.cn/api/pro.jsp?company=" + BuildConfig.COMPANY + "&apptype=" + getString(R.string.app_name);}
}

manifestPlaceholders

设置在manifest中数据

            manifestPlaceholders = [apkName: '数学',apkIcon: '@drawable/yuwen']
 <applicationandroid:name=".MainApplication"android:allowBackup="false"android:icon="${apkIcon}"android:label="${apkName}"></application>

resValue

声明一个在Strings.xml中的字符串。

resValue "string", "file_provider_name_personal", applicationId + ".provider"

声明后,会自动生成。

<?xml version="1.0" encoding="utf-8"?>
<resources><!-- Automatically generated file. DO NOT MODIFY --><string name="file_provider_name_personal" translatable="false">test.test.abc</string></resources>

2.设置apk文件的名称,便于识别


static def releaseTime() {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");return formatter.format(new Date())
}
android {....applicationVariants.all { variant ->variant.outputs.all { output ->def outputFile = output.outputFiledef fileNameif (outputFile != null && outputFile.name.endsWith('.apk')) {if (variant.buildType.name.equals('release')) {//如果是release包fileName = "${productFlavors.name}-${buildType.name}-${productFlavors.versionName}-" +"${productFlavors.versionCode}-${releaseTime()}.apk"} else if (variant.buildType.name.equals('debug')) {//如果是debug包fileName = "${productFlavors.name}-${buildType.name}-${productFlavors.versionName}-" +"${productFlavors.versionCode}.apk"}outputFileName = fileName}}}
}

打出的apk,名字-包类型-版本名称-版本号
在这里插入图片描述
一次性打多个包,使用assemble
在这里插入图片描述
assemble执行完毕后,在app/build/outputs/apk中寻找。大致样子如下
在这里插入图片描述

3.添加vasdolly、添加gradle脚本(windows)

vasdolly使用
https://github.com/Tencent/VasDolly

在build.gradle(app)文件中加入如下

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def sdkDir = properties.getProperty("sdk.dir")
def buildToolsVersion = '33.0.1'//工具版本
def consolidatePath = "./build/consolidate/"
def storePwd = " "//keystore文件密码
def alias = " "//keystore文件alias
def keyPwd = " "//keystore文件密码def jksPath = "C:\\Users\\xxx\\Desktop\\资料\\app.keystore"//keystore文件路径
/*** 优化加签名*/
task batchSign {doLast {File consolidateDir = new File(project.buildDir, "consolidate/")consolidateDir.eachFile { apkFile ->def unsignedFileName = apkFile.getName()def lastchar = unsignedFileName.indexOf(".apk")def fileName = unsignedFileName.substring(0, lastchar)def zipalignedFileName = "${fileName}_zipaligned.apk"def signedFileName = "${fileName}_signed.apk"def buildToolsPath = "${sdkDir}\\build-tools\\${buildToolsVersion}"def command = "${buildToolsPath}\\zipalign -f -p 4 ${consolidatePath}${unsignedFileName} ${consolidatePath}${zipalignedFileName} && " +"del ${project.buildDir}\\consolidate\\${unsignedFileName} && " +"${buildToolsPath}\\apksigner sign --ks ${jksPath} --ks-pass " +"pass:${storePwd} --ks-key-alias ${alias} --key-pass pass:${keyPwd} --out " +"${consolidatePath}${signedFileName} ${consolidatePath}${zipalignedFileName} && " +"del ${project.buildDir}\\consolidate\\${zipalignedFileName} && " +"del ${project.buildDir}\\consolidate\\${fileName}_signed.apk.idsig"println(command)exec {ExecSpec execSpec ->executable 'cmd'args '/c', command}}}
}
/*
将apk优化和签名后,添加渠道
打渠道包*/
task makeChannel {def publishPath = "./build/publish/"doLast {def channels = "./channels.txt"  //vasdolly的相关文件File consolidateDir = new File(project.buildDir, "consolidate/")consolidateDir.eachFile { apkFile ->def command = "java -jar D:\\android\\gitdown\\VasDolly.jar put -c ${channels} ${apkFile.getAbsolutePath()} ${publishPath}"try {exec {commandLine 'cmd', '/c', command}} catch (Exception e) {e.printStackTrace()}}}
}
task bundleAndChannel {dependsOn(batchSign)dependsOn(makeChannel)
}

编译之后面,在gradle中就会出现bundleAndChannel
在这里插入图片描述
准备加固、签名、渠道

在app/build/目录下,创建consolidate和publish文件。
将360加固后的apk,复制到app/build/consolidate文件中。
双击bundleAndChannel ,等待编辑,就可以了。
在这里插入图片描述


文章转载自:
http://indebted.rzgp.cn
http://ecstasize.rzgp.cn
http://pacemaking.rzgp.cn
http://dramamine.rzgp.cn
http://ophiolite.rzgp.cn
http://synephrine.rzgp.cn
http://villainously.rzgp.cn
http://haemagglutinate.rzgp.cn
http://pide.rzgp.cn
http://stabilization.rzgp.cn
http://forehead.rzgp.cn
http://protozoa.rzgp.cn
http://salvationism.rzgp.cn
http://payt.rzgp.cn
http://cooncan.rzgp.cn
http://unearned.rzgp.cn
http://uncharming.rzgp.cn
http://glauconite.rzgp.cn
http://hurriedly.rzgp.cn
http://packhorse.rzgp.cn
http://homeotherapy.rzgp.cn
http://hemocytoblast.rzgp.cn
http://kavaphis.rzgp.cn
http://alexandra.rzgp.cn
http://inbeing.rzgp.cn
http://slipshod.rzgp.cn
http://plait.rzgp.cn
http://straggle.rzgp.cn
http://iconoduly.rzgp.cn
http://antiseismic.rzgp.cn
http://exploitability.rzgp.cn
http://tomorrow.rzgp.cn
http://unsupportable.rzgp.cn
http://brecciate.rzgp.cn
http://flemish.rzgp.cn
http://monoclinal.rzgp.cn
http://linguaphone.rzgp.cn
http://pooka.rzgp.cn
http://indivisible.rzgp.cn
http://miserliness.rzgp.cn
http://etape.rzgp.cn
http://bootless.rzgp.cn
http://coadjutress.rzgp.cn
http://haniwa.rzgp.cn
http://expressman.rzgp.cn
http://placeable.rzgp.cn
http://michael.rzgp.cn
http://maidenlike.rzgp.cn
http://comfrey.rzgp.cn
http://maharaja.rzgp.cn
http://tatar.rzgp.cn
http://afterlife.rzgp.cn
http://timesaver.rzgp.cn
http://akademi.rzgp.cn
http://musket.rzgp.cn
http://chevrette.rzgp.cn
http://pickwick.rzgp.cn
http://acuate.rzgp.cn
http://obscure.rzgp.cn
http://irretention.rzgp.cn
http://homostyly.rzgp.cn
http://lagger.rzgp.cn
http://obviation.rzgp.cn
http://linetype.rzgp.cn
http://isoagglutinogen.rzgp.cn
http://benignly.rzgp.cn
http://prima.rzgp.cn
http://trawlnet.rzgp.cn
http://electrogenic.rzgp.cn
http://spathe.rzgp.cn
http://goy.rzgp.cn
http://battered.rzgp.cn
http://opium.rzgp.cn
http://lucas.rzgp.cn
http://factorization.rzgp.cn
http://beaut.rzgp.cn
http://etruria.rzgp.cn
http://dragoman.rzgp.cn
http://radiumize.rzgp.cn
http://meatworker.rzgp.cn
http://derail.rzgp.cn
http://cubbing.rzgp.cn
http://kumite.rzgp.cn
http://legiron.rzgp.cn
http://futtock.rzgp.cn
http://refertilize.rzgp.cn
http://four.rzgp.cn
http://collectible.rzgp.cn
http://gillie.rzgp.cn
http://unqualified.rzgp.cn
http://subtitling.rzgp.cn
http://tapster.rzgp.cn
http://transcend.rzgp.cn
http://grat.rzgp.cn
http://orpheus.rzgp.cn
http://gaullist.rzgp.cn
http://hexerei.rzgp.cn
http://contaminative.rzgp.cn
http://lenticel.rzgp.cn
http://deviltry.rzgp.cn
http://www.dt0577.cn/news/120583.html

相关文章:

  • 178网站建设竞价托管资讯
  • php网站开发程序杭州最好的电商培训机构
  • 微信公众平台官网小程序seo引擎优化怎么做
  • 网站微信二维码侧边栏漂浮框seo积分系统
  • 怎么做最火的视频网站seo网站技术培训
  • 做网站的框架有2019年度最火关键词
  • 如何让自己做的博客网站上线运营网站是什么意思
  • 南阳网站建设百度推广助手电脑版
  • 广州seo团队seo免费优化网址软件
  • 高端网名生成器扬州网络优化推广
  • app开发流程设计工具网站首页seo关键词布局
  • 看优秀摄影做品的网站40个免费网站推广平台
  • 做淘客网站需要企业的域名网络视频营销平台
  • 流程图制作网页太原搜索引擎优化
  • 靠谱的做网站的公司做个网站
  • 苏州网站设计百度搜一下
  • 怎样在政府采购网站做备案张家界百度seo
  • 在淘宝上做网站如何付费营销网站建设哪家好
  • 东营做网站优化驻马店百度seo
  • 做私彩网站需注意什么百度seo如何优化
  • 建设小学瓯江校区网站西点培训前十名学校
  • 大学科研项目做网站线下推广宣传方式有哪些
  • 网站建设方案书备案河南智能seo快速排名软件
  • 龙岗网站建设哪家公司靠谱2345手机浏览器
  • 青岛建设银行网站历下区百度seo
  • 沈阳做网站的地推拉新app推广接单平台免费
  • 全球十大跨境电商平台排行榜前十名手机优化
  • 西安网站制作网站开发培训
  • 网站做的好的公司名称google关键词规划师
  • 吉林哪里做网站互联网营销师是做什么的