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

外包app开发价格表郑州优化公司有哪些

外包app开发价格表,郑州优化公司有哪些,开发软件的app有哪些,网站代运营服务目录 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://www.khdw.cn/news/43421.html

相关文章:

  • 江苏省网站建设哪家好源码时代培训机构官网
  • 360开户推广宁波seo排名优化价格
  • 卖产品的网站怎么做的代运营套餐价格表
  • java怎么做网站多语言aso优化平台有哪些
  • 做购物网站的费用电商网络推广
  • 西安做营销型网站建设网络运营具体做什么
  • 驻马店网站开发公司深圳网站seo
  • 西安域名注册网站建设免费网站分析seo报告是坑吗
  • 手机制作网站的软件本地广告推广平台哪个好
  • 深圳专业做网站哪家专业东莞网站推广营销网站设计
  • 福州专业制作网站怎么制作seo搜索优化
  • 中山网站制作定制网站维护公司
  • 怎么建立一个网站?搜索引擎网站优化和推广方案
  • 佛山企业网站seoseo最新技巧
  • app开发公司概况哈尔滨网站优化
  • apache 配置php网站优化seo软件
  • 保定市网站制作公司做网页
  • 郑州做商城网站公司深圳网络推广市场
  • 做百度网站每年的费用多少东莞网络营销
  • 网站开发实现前后端分离如何做seo搜索引擎优化
  • 网站开发项目延期说明廊坊网站
  • 网站怎么加ico网络营销案例分享
  • 用家里的路由器做网站短视频seo营销
  • 厦门企业制作网站百度商店
  • 如何查询网站注册信息一个产品的营销方案
  • 重庆企业网站如何推广seox
  • 淄博做网站58同城在线资源搜索引擎
  • 一级a做爰片免费视频网站指数型基金是什么意思
  • 个人网站构建百度seo工作室
  • 书店网站开发bing搜索引擎