news 2026/4/18 11:56:46

Uniapp——史上最完整Android离线多渠道打包教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Uniapp——史上最完整Android离线多渠道打包教程

Android离线多渠道打包教程

  • 前言
  • 一、原生build.gradle文件配置?
  • 二、模块AndroidManifest.xml
  • 三、uniapp代码使用教程
  • 四、打包处理
  • 总结

前言

Android 需要多渠道打包的主要原因是 支持不同的设备、市场和用户需求。通过多渠道打包,可以将一个应用根据不同的目标市场、设备配置、网络环境、语言等因素生成多个定制化的 APK,从而提高应用发布的灵活性和覆盖面。


一、原生build.gradle文件配置?

plugins{alias(libs.plugins.android.application)}android{namespace'com.qnt'compileSdk35defaultConfig{applicationId"com.qnt"minSdk21targetSdk35versionCode1versionName"1.0.0"multiDexEnabledtruendk{abiFilters/*'x86',*/'armeabi-v7a','arm64-v8a'}testInstrumentationRunner"androidx.test.runner.AndroidJUnitRunner"// 定义动态的 BuildConfig 字段buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|release\""}sourceSets{main{assets.srcDirs=['src/main/assets']}}aaptOptions{additionalParameters'--auto-add-overlay'ignoreAssetsPattern"!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"}signingConfigs{release{storeFilefile("../jnt.jks")storePassword"jt"keyAlias"jalias"keyPassword"jt"v1SigningEnabledtrue//兼容v1v2SigningEnabledtrue//兼容v2}}buildTypes{debug{signingConfig signingConfigs.release minifyEnabledfalseproguardFilesgetDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'}release{signingConfig signingConfigs.release minifyEnabledfalseshrinkResourcesfalseproguardFilesgetDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'}}compileOptions{sourceCompatibilityJavaVersion.VERSION_1_8 targetCompatibilityJavaVersion.VERSION_1_8}buildFeatures{buildConfig=true// Enable BuildConfig generation}flavorDimensions"default"productFlavors{APP_CHANNEL_DOU{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|1_APP_CHANNEL_DOU\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|1_APP_CHANNEL_DOU"]}APP_CHANNEL_DOU{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|1_APP_CHANNEL_DOU\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|1_APP_CHANNEL_DOU"]}APP_CHANNEL_KUAI{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|2_APP_CHANNEL_KUAI\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|2_APP_CHANNEL_KUAI"]}APP_CHANNEL_BAIDU{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|4_APP_CHANNEL_BAIDU\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|4_APP_CHANNEL_BAIDU"]}huawei{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|huawei\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|huawei"]}xiaomi{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|xiaomi\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|xiaomi"]}vivo{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|vivo\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|vivo"]}oppo{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|oppo\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|oppo"]}a360{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|360\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|360"]}YYB{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|YYB\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|YYB"]}RongYao{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|RongYao\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|RongYao"]}MeiZu{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|MeiZu\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|MeiZu"]}GDT{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|GDT\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|GDT"]}SAMSUNG{buildConfigField"String","DCLOUD_STREAMAPP_CHANNEL","\"com.qnt|db288fe7d1e89fa4|0123456789|SAMSUNG\""manifestPlaceholders=[DCLOUD_STREAMAPP_CHANNEL:"com.qnt|db288fe7d1e89fa4|0123456789|SAMSUNG"]}}}dependencies{implementationfileTree(dir:'libs',include:['*.aar','*.jar'],exclude:[])implementation libs.appcompat implementation libs.material implementation libs.activity implementation libs.constraintlayout implementation'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'implementation'androidx.core:core:1.6.0'implementation"androidx.fragment:fragment:1.1.0"implementation'androidx.recyclerview:recyclerview:1.1.0'implementation'androidx.webkit:webkit:1.5.0'implementation'androidx.legacy:legacy-support-v4:1.0.0'implementation'com.facebook.fresco:fresco:2.5.0'implementation"com.facebook.fresco:animated-gif:2.5.0"implementation'com.alibaba:fastjson:1.2.83'implementation'com.github.bumptech.glide:glide:4.9.0'// 微信implementation'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.9'// 支付宝implementation'com.alipay.sdk:alipaysdk-android:15.8.11'implementation"net.lingala.zip4j:zip4j:2.11.5"implementation'com.squareup.okhttp3:okhttp:4.9.0'implementation'com.squareup.okio:okio:2.9.0'// implementation project(':uniplugin_module')implementationproject(':qnt_module')testImplementation libs.junit androidTestImplementation libs.ext.junit androidTestImplementation libs.espresso.core}

二、模块AndroidManifest.xml

提示:将这块代码放到 <application> 里面

<meta-dataandroid:name="DCLOUD_STREAMAPP_CHANNEL"android:value="${DCLOUD_STREAMAPP_CHANNEL}"/>

三、uniapp代码使用教程

plus.runtime.channel 获取渠道 plus.runtime.version 获取版本号 1.0.0 plus.runtime.versionCode 获取code 1 if(plus.runtime.isApplicationExist({pname:'com.tencent.mm',action:'weixin://'})){ console.log("微信应用已安装"); }else{ console.log("微信应用未安装"); } plus.runtime.appid 获取包名,需要云打包或者离线打包才能正确获取

四、打包处理

提示:有以下显示说明配置成功,具体自行验证是否生效

总结

多渠道打包的核心目的是便于管理和发布不同版本的应用,减少开发的重复劳动,同时提供定制化的功能和更好的数据分析能力,帮助开发者在不同的渠道和市场中更好地推广和管理应用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/7 20:41:19

云顶之弈智能挂机全攻略:3步实现自动经验收割

云顶之弈智能挂机全攻略&#xff1a;3步实现自动经验收割 【免费下载链接】LOL-Yun-Ding-Zhi-Yi 英雄联盟 云顶之弈 全自动挂机刷经验程序 外挂 脚本 ,下载慢可以到https://gitee.com/stringify/LOL-Yun-Ding-Zhi-Yi 项目地址: https://gitcode.com/gh_mirrors/lo/LOL-Yun-Di…

作者头像 李华
网站建设 2026/4/18 10:19:12

中铁资源金港公司精准施策夯实外派劳务服务保障根基

在中国中铁深耕全球、助力国家“一带一路”倡议推进中&#xff0c;中铁资源金港公司聚焦境外企业外派人员服务保障&#xff0c;以“选、育、派、管、归”全流程闭环管理体系&#xff0c;持续深耕服务细节&#xff0c;筑牢基础业务“压舱石”&#xff0c;切实守护外派员工福祉。…

作者头像 李华
网站建设 2026/4/18 7:04:07

使用LLaMA-Factory快速训练自己的专用大模型

本文聊聊 LLama-Factory&#xff0c;它是一个开源框架&#xff0c;这里头可以找到一系列预制的组件和模板&#xff0c;让你不用从零开始&#xff0c;就能训练出自己的语言模型&#xff08;微调&#xff09;。不管是聊天机器人&#xff0c;还是文章生成器&#xff0c;甚至是问答…

作者头像 李华
网站建设 2026/4/17 18:31:25

Vosk Android Demo:安卓离线语音识别完整指南

Vosk Android Demo&#xff1a;安卓离线语音识别完整指南 【免费下载链接】vosk-android-demo alphacep/vosk-android-demo: Vosk Android Demo 是一个演示项目&#xff0c;展示了如何在Android平台上使用Vosk语音识别引擎进行实时语音转文本功能。Vosk是开源的离线语音识别库&…

作者头像 李华
网站建设 2026/4/18 4:44:09

南京大学学位论文排版系统:从零开始掌握LaTeX模板

南京大学学位论文排版系统&#xff1a;从零开始掌握LaTeX模板 【免费下载链接】njuthesis-nju-thesis-template 南京大学学位论文(本科/硕士/博士)&#xff0c;毕业论文LaTeX模板 项目地址: https://gitcode.com/gh_mirrors/nj/njuthesis-nju-thesis-template 项目核心价…

作者头像 李华
网站建设 2026/4/18 6:34:19

DexHunter:安卓应用加固自动解包技术详解

DexHunter&#xff1a;安卓应用加固自动解包技术详解 【免费下载链接】DexHunter General Automatic Unpacking Tool for Android Dex Files 项目地址: https://gitcode.com/gh_mirrors/de/DexHunter DexHunter是一款专门用于自动解压加固DEX文件的开源工具&#xff0c;…

作者头像 李华