全部产品

框架简介

OSGi (Open Service Gateway Initiative) 技术是 Java 动态化模块化系统的一系列规范。mPaaS Android 开发框架基于 OSGi 技术把一个 App 划分成业务独立的 Bundle 工程包,并对每个 Bundle 工程的生命周期和依赖加以管理。Portal 工程把所有的 Bundle 工程包合并成一个可运行的 .apk 包。

mPaaS Android 框架适用于大团队协同开发全新的 App。该框架中包含了组件初始化、埋点等功能,方便您轻松接入 mPaaS 组件。组件对 mPaaS 框架没有强依赖,您也可以单独使用各组件功能。

Bundle 工程

一个 mPaaS Bundle 工程一般由一个名为 app 的主 module 和若干个子 module 组成。有关 Bundle 工程的介绍以及 Bundle 与传统 Android 工程的区别,查看 Bundle 工程

Portal 工程

Portal 工程把所有的 Bundle 工程包合并成一个可运行的 .apk 包。有关 Portal 工程的介绍以及 Portal 与传统 Android 工程的区别,查看 Portal 工程

工程依赖

mPaaS Android 框架项目分为 Bundle 工程和 Portal 工程。一个 App 有且只能有一个 Portal 工程,但可以有多个 Bundle 工程。

通过 mPaaS 插件,Portal 工程把所有的 Bundle 工程包合并成一个可运行的 .apk 包。合并后,该插件把 Bundle 工程部署至指定的仓库地址。该仓库地址在 Bundle 的主 module 中的 build.gradle 中定义,如下代码所示:

  1. uploadArchives {
  2. repositories {
  3. mavenLocal()
  4. }
  5. }

该仓库地址是上传至本地的 ~/.m2 仓库地址。您也可以添加自定义的仓库地址,如下所示:

  1. mavenDeployer {
  2. mavenLocal()
  3. repository(url: "${repository_url}") {
  4. authentication(userName: 'userName', password: 'userName_pwd')
  5. }
  6. snapshotRepository(url: "${repository_url}") {
  7. authentication(userName: 'userName', password: 'userName_pwd')
  8. }
  9. }

上传之后,Bundle 以 groupid:artifactid:version:classifier@type 的形式存在指定的仓库中。因此,只要在 Portal 最外层主 module 的 build.gradle 中声明 dependency 就可指定各 Bundle 依赖,如下代码所示:

  1. dependencies {
  2. bundle 'com.alipay.android.phone.mobilesdk:quinox-build:2.2.1.161221190158:nolog@jar'
  3. manifest 'com.alipay.android.phone.mobilesdk:quinox-build:2.2.1.161221190158:AndroidManifest@xml'
  4. }

此外,Bundle 工程之间的相互依赖也需要在 Bundle 的最外层的 build.gradle 中声明仓库依赖地址。

注意:以下配置中的 usernamepassword 不是控制台的登录用户名和密码。您必须 提交工单 获取这两个值。其中,

  • mavenLocal() 是描述依赖的本地仓库地址。
  • maven{} 声明依赖的远程仓库地址。
  1. allprojects {
  2. repositories {
  3. mavenLocal()
  4. mavenCentral()
  5. maven {
  6. credentials {
  7. username "{username}"
  8. password "{password}"
  9. }
  10. url "http://mvn.cloud.alipay.com/nexus/content/repositories/releases/"
  11. }
  12. }
  13. }

相关链接