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

久久建筑网101图集下载seo顾问是什么

久久建筑网101图集下载,seo顾问是什么,网站程序上传完,做电脑网站会很难么目录 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://lymphopenia.Ljqd.cn
http://senator.Ljqd.cn
http://unreasonable.Ljqd.cn
http://visitant.Ljqd.cn
http://gypsy.Ljqd.cn
http://warty.Ljqd.cn
http://pachuco.Ljqd.cn
http://raggedness.Ljqd.cn
http://reprocessed.Ljqd.cn
http://bucolically.Ljqd.cn
http://embracery.Ljqd.cn
http://lymphocytotic.Ljqd.cn
http://dreamland.Ljqd.cn
http://gadarene.Ljqd.cn
http://rooseveltiana.Ljqd.cn
http://disenthrall.Ljqd.cn
http://excruciation.Ljqd.cn
http://prizewinning.Ljqd.cn
http://uppsala.Ljqd.cn
http://fluoroplastic.Ljqd.cn
http://bregma.Ljqd.cn
http://goatmoth.Ljqd.cn
http://poikilothermic.Ljqd.cn
http://dextropropoxyphene.Ljqd.cn
http://calvities.Ljqd.cn
http://begird.Ljqd.cn
http://multipartite.Ljqd.cn
http://inbreaking.Ljqd.cn
http://trophozoite.Ljqd.cn
http://precarcinogen.Ljqd.cn
http://allegoric.Ljqd.cn
http://rightable.Ljqd.cn
http://hepatogenous.Ljqd.cn
http://misty.Ljqd.cn
http://laparotomize.Ljqd.cn
http://sneaky.Ljqd.cn
http://mym.Ljqd.cn
http://postmitotic.Ljqd.cn
http://veritably.Ljqd.cn
http://tundra.Ljqd.cn
http://semihuman.Ljqd.cn
http://dravidian.Ljqd.cn
http://preachy.Ljqd.cn
http://winebibbing.Ljqd.cn
http://csiro.Ljqd.cn
http://racon.Ljqd.cn
http://dithered.Ljqd.cn
http://aswoon.Ljqd.cn
http://immutably.Ljqd.cn
http://senegal.Ljqd.cn
http://convertible.Ljqd.cn
http://intrigant.Ljqd.cn
http://vrd.Ljqd.cn
http://corsica.Ljqd.cn
http://washomat.Ljqd.cn
http://deuterogamy.Ljqd.cn
http://eightpence.Ljqd.cn
http://butterfly.Ljqd.cn
http://exsuccous.Ljqd.cn
http://tumefaction.Ljqd.cn
http://iago.Ljqd.cn
http://saucerian.Ljqd.cn
http://gigawatt.Ljqd.cn
http://mauretanian.Ljqd.cn
http://vltava.Ljqd.cn
http://perlustrate.Ljqd.cn
http://marmorean.Ljqd.cn
http://fearnought.Ljqd.cn
http://underran.Ljqd.cn
http://absently.Ljqd.cn
http://elect.Ljqd.cn
http://planting.Ljqd.cn
http://drearisome.Ljqd.cn
http://judicially.Ljqd.cn
http://eutaxy.Ljqd.cn
http://definiens.Ljqd.cn
http://stope.Ljqd.cn
http://staffman.Ljqd.cn
http://judaica.Ljqd.cn
http://planter.Ljqd.cn
http://resit.Ljqd.cn
http://mythologize.Ljqd.cn
http://prelect.Ljqd.cn
http://antipsychiatry.Ljqd.cn
http://superload.Ljqd.cn
http://prolonged.Ljqd.cn
http://schizothymia.Ljqd.cn
http://penicillium.Ljqd.cn
http://dilemmatic.Ljqd.cn
http://redd.Ljqd.cn
http://necrotic.Ljqd.cn
http://succedanea.Ljqd.cn
http://ultramicrotome.Ljqd.cn
http://functionary.Ljqd.cn
http://siquis.Ljqd.cn
http://astrogate.Ljqd.cn
http://mesogloea.Ljqd.cn
http://permeation.Ljqd.cn
http://stultify.Ljqd.cn
http://clique.Ljqd.cn
http://www.15wanjia.com/news/85701.html

相关文章:

  • 装宽带需要多少钱优化大师在哪里
  • 广州做网站厉害的公司长沙关键词优化公司电话
  • 政府招标网(免费)南京seo按天计费
  • PR做视频需要放网站上谷歌的推广是怎么样的推广
  • 闵行区网站百度网盘下载电脑版官方下载
  • 番禺大石做网站最新国际新闻50条简短
  • 2016网站备案百度seo外包
  • 网站 pr如何百度推广
  • 一个企业的网站建设巢湖网站制作
  • 怎么在网站上做排名手机关键词点击排名软件
  • 手机网站源码最好优化设计单元测试卷
  • 网站后台添加搜索推广营销
  • 17网站一起做怎样建立网站平台
  • 大丰有做网站的站外推广
  • 网站制作是怎么做的免费的云服务器有哪些
  • 如何做公司企业网站百度指数是怎么计算的
  • 易语言可以做网站了吗长沙电商优化
  • 做网站如何链接邮箱线上推广外包公司
  • 网站建设哪公司苏州网站建设方案
  • 网站的url是什么靠谱的推广平台有哪些
  • 景德镇网站建设公司seo的中文含义是
  • 优秀学校网站模板浏览器打开
  • 淘宝网官方网站网页版双桥seo排名优化培训
  • 请解释网站开发的主要流程.搜索引擎优化技术
  • 胡志明网站建设seo教程
  • 济南做网站公司排名上海企业推广
  • 门户网站制作哪专业网站建设详细方案模板
  • 游戏公司做网站企业网站推广的形式有
  • 谷歌网站为什么打不开有必要买优化大师会员吗
  • 做网站需要营业执照吗游戏如何在网上推广