文档首页 > > 用户指南> 集成Android客户端> 源码导读

源码导读

分享
更新时间:2020/06/05 GMT+08:00

快视频Android Demo采用了MVVM dataBinding和组件化的开发方式,以便开发者快速搭建快视频APP。快视频Android Demo通过组件化,可以按照业务大致将项目拆分为播放器模块、直播推流模块、用户管理模块、上传模块,短视频模块等。因此创建了module-wepalyer、module-shortvideo、module-push、module-update、module-sign等组件。您在使用源码时,可以根据实际需求分工对模块进行开发,然后将子业务模块组合打包。

组件配置

为控制当前运行的工程是隔离状态还是合并状态,需要在“gradle.properties”定义一个全局变量“isBuildModule”
  • “isBuildModule”“true”时,表示可以使每个组件独立运行;
  • 若为“false ”,则可以将所有组件集成到到宿主APP中。

组件的具体配置如下所示:

  1. 开启每个组件中“build.gradle”,包括宿主APP。

    android {     
        //开启DataBinding    
        dataBinding 
        {         
            enabled true    
        } 
    }

  2. 在组件的“build.gradle”中动态切换“library”“application”

    if (
    isBuildModule.toBoolean()) {
         //作为独立App应用运行
        apply plugin: 'com.android.application'
        } else {     
        //作为组件运行
        apply plugin: 'com.android.library'
    }

  3. “isBuildModule”“true ”时,它是一个application,可以设置自己的包名。

    android {
         defaultConfig {
             //如果是独立模块,则使用当前组件的包名
             if (isBuildModule.toBoolean()) {
                 applicationId 组件的包名
             }
         }
     }

  4. 组件在组合和分离时采用的不同的“AndroidManifest”,需要在“build.gradle”中进行配置。

    android {
         sourceSets {
             main {
                 ...             
    if (isBuildModule.toBoolean()) {
                     //独立运行
                    manifest.srcFile 'src/main/alone/AndroidManifest.xml'
                } else {
                     //合并到宿主
                    manifest.srcFile 'src/main/AndroidManifest.xml'
                    resources {
                         //正式版本时,排除alone文件夹下所有调试文件
                        exclude 'src/main/alone/*'
                    }
                 }
             }
         }
     }

  5. 根据不同的模式在组件中“module.build.gradle”设置“applicationId ”

    apply from: "../module.build.gradle"android {
         defaultConfig {
             //如果是独立模块,则使用当前组件的包名
        if (isBuildModule.toBoolean()) {
                 applicationId 组件的包名
             }
         }
         //统一资源前缀,规范资源引用
        resourcePrefix "module name"
    } dependencies {
         ... 
    }

目录结构解析

下载的Demo源码使用Android Studio打开工程,Demo目录结构如图1所示。各文件或目录的功能如表1所示。

图1 目录结构
表1 文件/目录说明

文件/目录

说明

app-fastvideo

快视频主入口。

app-toolkit

工具包主入口。

library-base

通用组件,包含各种工具类,各个模块单独编译时都需要加入编译。

library-res

通用资源文件,各个模块单独编译时都需要加入编译。

module-home

展示模块。

module-main

主页面模块。

module-push

推流模块。

module-shortvideo

短视频模块。

module-sign

登录模块。

module-update

更新版本模块。

module-upload

上传短视频模块。

module-user

用户详情模块。

module-weplayer

播放器模块。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问