news 2026/4/16 21:59:53

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/16 13:43:21

产品快讯 | Docusign 发布 IAL2 级身份验证,强化协议信任

借助集成式 IAL2 身份审核机制&#xff0c;让组织在防欺诈、提效率与控合规上同步升级。 在当今高度数字化的业务环境中&#xff0c;身份验证已不再是例行步骤&#xff0c;而是维系信任、合规与安全的核心支柱。无论是审批贷款、收集患者同意&#xff0c;还是处理任何高价值交易…

作者头像 李华
网站建设 2026/4/16 15:07:39

Java对接多头借贷行业风险版API:AES加解密与复杂结构体解析实战

一、构建精细化的信贷审批“流水线” 在银行核心信贷系统或消费金融的风控中台&#xff08;Risk Decision Engine&#xff09;构建中&#xff0c;单一的“黑名单”查询已无法满足差异化的客群经营需求。业务部门往往需要更细粒度的数据来支撑决策&#xff1a;比如&#xff0c;一…

作者头像 李华
网站建设 2026/4/16 13:42:39

Qdrant向量数据库:构建企业级AI应用的元数据治理新范式

Qdrant向量数据库&#xff1a;构建企业级AI应用的元数据治理新范式 【免费下载链接】qdrant Qdrant - 针对下一代人工智能的高性能、大规模向量数据库。同时提供云端版本 项目地址: https://gitcode.com/GitHub_Trending/qd/qdrant 在人工智能应用规模化部署的今天&…

作者头像 李华
网站建设 2026/4/16 14:46:31

MindSpore 技术干货:揭秘其核心利器——自动并行

在深度学习框架竞争日益激烈的今天&#xff0c;华为开源的 MindSpore 凭借其“全场景”的设计理念脱颖而出。在其众多特性中&#xff0c;自动并行 无疑是其最耀眼的技术亮点之一&#xff0c;它旨在显著降低大规模模型训练的复杂度&#xff0c;让开发者更专注于算法本身。什么是…

作者头像 李华
网站建设 2026/4/16 14:44:55

解锁昇腾算力:基于 MindSpore 的高效迁移学习与自动混合精度实战

1. 构建高性能数据管道数据加载往往是训练性能的瓶颈。MindSpore 的 mindspore.dataset模块底层基于 C 实现&#xff0c;提供了并行加载和数据增强能力。我们以加载自定义数据集为例&#xff1a;import mindspore.dataset as ds import mindspore.dataset.vision as vision imp…

作者头像 李华
网站建设 2026/4/16 13:31:31

小红的密码修改【牛客tracker 每日一题】

小红的密码修改 时间限制&#xff1a;1秒 空间限制&#xff1a;256M 网页链接 牛客tracker 牛客tracker & 每日一题&#xff0c;完成每日打卡&#xff0c;即可获得牛币。获得相应数量的牛币&#xff0c;能在【牛币兑换中心】&#xff0c;换取相应奖品&#xff01;助力每…

作者头像 李华