分渠道打包

有的时候,为了在不同的渠道下面去上传应用,我们为了满足不同平台的需求,可能需要:启动画面不同,欢迎语不同。

用户进行网络注册的时候,注册上来的用户,公司关心这个用户是从哪一个渠道商下载的,这个是运营商的需要,渠道商的id,

android studio 里面有了专门的分渠道打包的支持,其实也就是“图片,文字”


我们使用到android studio 中的flavor,android studio 会自动的根据不同的flavor去使用该flavor下面的图片和文件,

需要说明的是图片的格式必须是相同的,最好都是png格式的,而且要求该图片本来就是png格式的,不能本来是jpeg格式的然后只是修改了后缀名。


首先未考虑渠道的情况下的布局和MainActivity

package com.kodulf.channeldemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView versionCodeTextView = (TextView)findViewById(R.id.versionCode);

        String versionCodeString = getResources().getString(R.string.versioncode);
        versionCodeTextView.setText("版本号:"+versionCodeString);

    }
}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.kodulf.channeldemo.MainActivity">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text"
        android:textSize="25sp"
        android:layout_centerInParent="true"/>
    <ImageView
        android:layout_below="@+id/text"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/logo"
        />
    <TextView
        android:id="@+id/versionCode"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/text"
        android:textSize="25sp"
        android:text="版本号:"/>
</RelativeLayout>

在values 目录下面右键,new->new resource file->创建一个channels的文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="text">你好我是默认文档</string>
    <string name="versioncode">10001</string>
</resources>

然后拷贝一个logo.png图片到mimap-xhdpi目录下面。


这样上面的正常的流程走完,下面是考虑全渠道的情况:


首先找到3个百度,360,豌豆荚的logo的图片,都命名为logo.png

右键项目名,点击Open Module Settings,选择flavors,然后点击左下角的+号来进行不同的渠道的添加,这里添加了3个渠道




在Project的视图模式下面,右击src文件,new -》Android resource directory



首先我们选择Resource type  为mipmap,

然后Source set 为baidu

然后Available qualifiers 为Density



选中后点击》》来将它放到Chosen qualifiers里面

然后Density 选择High Density



这个时候就会在src的文件夹下面创建一个baidu的文件夹,这个文件夹和main文件夹是同一个等级的,


同时里面还有一个一个res的文件夹,里面有一个mipmap-xhdpi的文件夹,将我们的百度的logo.png图片放到这里。


然后我们去创建一个values文件夹,还是邮件src文件夹,然后new -》android resource directory

然后resource type 为values,source set 选择baidu。


这样就会在刚才的文件夹目录下面又有一个values文件夹,

然后将之前的main下面的values 的channels文件夹拷贝过来,然后修改

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="text">你好我是百度渠道文档</string>
    <string name="versioncode">10002</string>
</resources>

这样baidu渠道的文件部分就好了,

同理进行360和豌豆荚的更新,

更新完以后,开始build我们的apk文件了。和正常的build 只有一点区别就是选择flavor哪里,我们是全部都选的



然后点击finish,知道生成我们需要的apk包:这里可以看到的是我们需要的不同的渠道的包都有了




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值