关于渠道包的不完美之处

来源:互联网 发布:luajit windows 编辑:程序博客网 时间:2024/06/06 01:03

渠道打包的基本配置:

android {

    compileSdkVersion 23
    buildToolsVersion '23.0.3'

    defaultConfig {
        applicationId "com.ztapps.lockermaster"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName '1'
        multiDexEnabled true
    }

    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
    signingConfigs {
        lockerConfig {
            storeFile file('keystore.key')//秘钥文件地址,相对路径
            storePassword ""
            keyAlias ""
            keyPassword ""
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.lockerConfig
            zipAlignEnabled true
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
    repositories {
        flatDir {
            dirs 'libs'
        }
    }

    dexOptions {
        javaMaxHeapSize "4g"
    }
    productFlavors {

        aLocker {
            applicationId ""
            versionCode 1
            versionName '1'
            manifestPlaceholders = [EXTRA: "EXTRA"]
            buildConfigField "String", "EXTRA_STATUSBAR", '"EXTRA_a"'
            }
        bLocker {
            applicationId "com.ztapps.lockermaster"
            versionCode 6020
            versionName '6.0.2.0'
            manifestPlaceholders = [EXTRA : "EXTRA"]
            buildConfigField "String", "EXTRA_STATUSBAR", '"EXTRA_b"
        }
    }

}

网上说打渠道包的好处一大堆,实际上渠道包的缺陷还是蛮多的

1.我经历了6个项目合六为一的过程,虽然说这几个包功能差不多,但是还是有区别的,而且当有依赖不同的时候,打出来的包,比之前的包的体积会增大。(不过想想,渠道包初衷也许就不是让干这个功能的)

2.当app中有如下功能(我知道的就这两个):向桌面生成快捷图标;接受消息。如果通过渠道包来实现,老用户肯定受影响,之前已经桌面生成快捷图标,开启消息权限的都会默认为否。这是因为在AndroidManifest.xml中, package="com.example.haipingguo.demo"这个你更改不成原来的包名,即类的包名

4.当打渠道包的时候,打包出来的包无法同在一台设备上安装,可能是数据库同名冲突问题及其权限重复问题,使用linux命令行安装app发现问题:adb install ~/下载,会有提示

5.两个包区别太大不要强行和并为一个包,不然既费时间,也做无用功

3.题外话,,一开始产品就该想好,干嘛做那么多无聊的包,只有个别区别却要分别建立project呢。。一开始打渠道包,就没有这么麻烦了


0 0
原创粉丝点击