美文网首页
安卓多渠道配置之简易版

安卓多渠道配置之简易版

作者: 肥得流油 | 来源:发表于2023-08-16 11:26 被阅读0次

以前很少使用到多渠道,因为做的APP也不会发布到应用市场(太乐色了)因此也没遇到需要多渠道的场景。
现在是因为有个APP需要分为两个不同的功能,但是彼此之间有存在很强的相似度。因此没有必要维护两个应用。才想起来可以试试多渠道。
先简单的梳理一下:
多渠道也就是多环境,大部分时候一般我们可以使用debug、或者release包来区分不同的环境,其中不同环境指的是不同的网络请求地址,不同的混淆策略,不同的签名等。
但是很多时候我们需要更多不同的信息,比如不同的包名、不同的版本、不同的应用图标、应用名称、不同的资源文件等。

1.配置多渠道

android {
    productFlavors{
        newVersion{//新版本
            applicationId rootProject.ext.appConfig.newAppId
            resValue "string", "monitor_app_name", "新版抓包助手"
            manifestPlaceholders=[APP_NAME:"新版测试软件"]
            versionName "1.0.2"
        }

        oldVersion {//旧版本
            applicationId rootProject.ext.appConfig.oldAppId
            resValue "string", "monitor_app_name", "旧版抓包助手"
            manifestPlaceholders=[APP_NAME:"旧版测试软件"]
            versionName "1.0.0"
        }

    }
    defaultConfig {
        applicationId "${applicationId}"
          //必须写一个共同的flavorDimensions ,gradle 3.0以后,否则会报错
        flavorDimensions "versionCode==1.0.0"
    }
  //不同渠道不同资源文件配置
  sourceSets{
      newVersion.res.srcDirs 'src/main/res-new'
      newVersion.res.srcDirs 'src/main/res-old'
  }
|

在gradle配置文件中增加了上述配置之后,就让应用拥有了两个不同的环境。在打包的时候,可以直接去选择打哪种包。
也可以通过 右侧的gradle ->Tasks->build->assemble 命令来一件同时生成两个环境下的debug和release的apk安装包。


assemeble

2.设置多环境资源

在配置完多环境之后,根据不同的环境,需要动态的使用不同的资源,比如app的名字动态的变化
需要获取manifestPlaceholders 中已经配置好的字段名称,这里我们使用的是APP_NAME;
在AndroidManifest 中 新增资源的引用:

<meta-data android:name="APP_NAME" android:value="${APP_NAME}"/>
 <application
        android:allowBackup="false"
        android:icon="@mipmap/icon_1"
        android:label="${APP_NAME}" 
        android:supportsRtl="true"
        tools:replace="android:label,android:allowBackup"
        android:theme="@style/activityTransTheme">
        <activity
            android:name=".SplashActivity"
            android:theme="@style/activityTheme"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

此时再重新构建应用时,就会更具你所选择的构建环境动态的变化资源了。

3.多环境构建的简单使用

在完成上述的操作之后,我们再调试中,需要将软件安装到设备中,就不能直接使用 绿色三角直接运行了


运行

而是应该在右侧的gradle ->Tasks->install->installxxDebug(installxxRelease)


install

4.根据多环境配置,动态的使用不同代码

在第一步骤配置中,我们使用了 newVersion、oldVersion 来表示不同环境的名称。
那么在代码中,可以通过BuildConfig.FLAVOR 来获取当前环境的名称。

if(BuildConfig.FLAVOR=="newVersion"){
  //TODO 做新版本的变更
}
if(BuildConfig.FLAVOR=="oldVersion"){
  //TODO 维持旧版本操作
}

上述只是使用了一些简单的多渠道多环境的配置操作,实际在使用中应该会使用一些比较成熟的多渠道打包方案,例如美团的 Walle、腾讯的 VasDolly简介二者

相关文章

  • 安卓多渠道打包(二)walle多渠道打包

    如题,使用美团walle进行多渠道打包。关于安卓原生打包,请移步上一篇文章:原生多渠道打包[https://www...

  • 安卓多渠道打包

    背景介绍: 多渠道打包一般应用于向不同应用市场提交app后用来统计不同渠道下载量等一些信息。一般集成友盟sdk(同...

  • 安卓多渠道打包

    前言 不借助任何工具,直接用 AS实现多渠道打包。 步骤 清单文件 在 module 的 build.gradle...

  • 安卓多渠道打包

    多渠道打包不是第一次接触,但今天是第一次自己去实现,特此记录一下实现过程中各种细节。如今各种三方平台能够实现多渠道...

  • iOS渠道划分,多渠道推广

    iOS渠道划分,多渠道推广 安卓的多渠道大家并不陌生,多平台发布可以用多平台打包处理,但iOS很少有分渠道的,因为...

  • 安卓多渠道打包(四)腾讯加固多渠道打包

    内容如题,使用腾讯VasDolly进行安卓多渠道包的输出。官方链接[https://github.com/Tenc...

  • 安卓中多渠道打包

    今天简单记录下在安卓中的多渠道打包。 以下代码参考友盟多渠道打包。 首先在清单文件中加入以下代码: 然后在Modu...

  • 视频会议webRTC实现

    终于把安卓和iOS的视频会议做出来了,虽然是个简易版本,但是看到希望了......

  • 安卓多渠道打包(结合友盟)

    通常发版本时我们需要打很多渠道的包,360,应用宝,豌豆荚等等,安卓默认只打一个debug的包。那么如何进行多渠道...

  • 安卓多渠道打包(一)原生多渠道打包

    本文,将会讲解安卓以配置gradle的方式实现多渠道打包。开发环境:androidstudio版本为3.0以上马上...

网友评论

      本文标题:安卓多渠道配置之简易版

      本文链接:https://www.haomeiwen.com/subject/plpkmdtx.html