美文网首页
多包的实现技术方案

多包的实现技术方案

作者: 747a945a4501 | 来源:发表于2018-12-04 14:23 被阅读35次

1. 包名 & icon等一些应用级别的配置

通过配置Gradle来实现这样的多包

productFlavors {
        zhuoShiXiong {
            applicationId "com.example.app1"
            resValue "string", "app_name", "包名1"
            buildConfigField "string", "WX_ID", '"wx999999999999999"'
            buildConfigField "string", "APP_SECRET", '"00dsadsadsadae"'
            manifestPlaceholders = [
                    app_name:"APP名称1",
                    app_icon:"@mipmap/zsx"
            ]
        }
        wxHuiFu {
            applicationId "com.example.app2"
            resValue "string", "app_name", "包名2"
            buildConfigField "string", "WX_ID", '"wx999999999999999"'
            buildConfigField "string", "APP_SECRET", '"00dsadsadsadae"'
            manifestPlaceholders = [
                    app_name:"APP名称2",
                    app_icon:"@mipmap/wx_huifu"
            ]
        }
    }

清单文件的配置如下,文件路径名全部改为绝对路径

<application
    android:icon="${app_icon}"
    android:label="@string/app_name"
     android:name="com.company.aaa.MyApplication"
    >
    <activity
            android:name="com.company.aaa.Activities.Startup.HelpActivity" />
    <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="${applicationId}.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />
        </provider>
    .....
</application>

2. 第三方和包名相关的配置

支付宝支付

支付宝无论是H5支付还是V2支付方式,客户端均不需要配置。后台的支付回调参数需要根据不同app的请求,返回对应的支付请求参数。

微信支付和微信登录

微信需要在Application入口,注册APP_ID和APP_SECRET,通过gradle文件配置方式,来实现多包变化。方法见第一条的配置Demo。后台的支付回调参数同支付宝一样,需要变化。

埋点

神策没有对包名有依赖,需要的渠道名也是通过签名工具注入清单文件,无需额外配置。

3. 资源文件的分发

资源文件涉及到皮肤概念,但是分包的皮肤不会有额外的动态换肤功能。所以不通过切换上下文来实现换肤的方式。而是通过配置皮肤主题管理器来实现资源分发。
代码和资源是放在同一个工程里面,这样带来的好处,代码及共用的资源可以在一起,不必维护多次。通过分包打包的方式,可以避免资源放在一起增加包容量大小的问题。
这里的资源包括:图片,颜色,字体大小,样式等等

原加载资源的方式:

image.png
现在加载方式通过SkinManager做分发
image.png

4. 布局或者应用流程变化

因为分包设计没有一定标准化的东西,所以没办法做碎片化。所以针对布局或者流程变化我们会重新开辟新的页面。然后跳转通过路由的方式调整。


image.png

混淆 加固 打包等方式都不需要改变。

通过实践总结,除去具体的分包业务需求改变外,还需要修改的地方有:

  1. 支付宝和微信的支付配置信息的修改,后台接口支持多包的支付参数返回
  2. 版本检测接口需要支持多包
  3. 如果用户是独立的,那所有和用户相关的接口都需要支持多包。

相关文章

  • 多包的实现技术方案

    1. 包名 & icon等一些应用级别的配置 通过配置Gradle来实现这样的多包 清单文件的配置如下,文件路径名...

  • 10x程序员学习

    以终为始 1)技术需求方案:做技术需求,多考虑需求上下文,从产品生命周期来考虑技术实现的方案。2)面对需求:面对“...

  • 需求实现方案如何设计

    技术方案和需求实现方案侧重点不一样,技术需求侧重技术特点,技术优势以及方案对比;需求实现方案有所不同,侧重需求的实...

  • IT技术方案实施方法

    IT技术方案实施方法 一般流程 主体目标确定 -> 确定需求功能点 -> 分析技术实现方案 -> 技术储备 -> ...

  • 王者荣耀刷金币脚本方案

    [TOC] 大纲 分析各种方案优劣 技术方案实现 python脚本讲解 部署环境实现 背景 王者荣耀经过几年的发展...

  • angular8+ng-zorro支持i18n

    angular8+ng-zorro i18n方案 1.采用的技术方案 2.实现的具体方案

  • 技术解决方案过程域

    本过程域要实现以下目标:1)建立需求的解决方案;2)设计、实现建立的解决方案。“技术解决方案的目的是设计、开发和实...

  • vue项目实现导入/导出Excel

    前端方案 首先安装依赖包 前端实现方案 后端处理导出 前端通过字节流或者url实现导出,字节流方式导出的文件方式可...

  • 话说TS

    TS是技术解决方案的英文缩写,但TS过程域不仅是技术解决方案,也包含了技术的设计与实现内容,TS过程域所处的上下文...

  • OC语法_多线程

    1. 多线程实现原理; 2. 多线程实现的方案; 3. 线程同步技术; 1. 多线程实现原理; - 进程:...

网友评论

      本文标题:多包的实现技术方案

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