# Android 端

# 输出范围

# 项目构建

探索Android Studio (opens new window),构建Android APK使用 Gradle (opens new window) 工具包来自动执行和管理构建流程

# 配置应用

android {
    defaultConfig {
        applicationId = "your.package.name"  // 应用ID
        minSdk = 21                          // 最低API 21,对应Android 5.0
        targetSdk = 30                       // 目标SDK
        versionCode = 10000                  // 版本号(递增)
        versionName = "1.0.0"                // 版本名称
    }
    ...
}

# 配置变体

通过 productFlavors 定义变体内容,配合构建类型buildTypes,构建不同类型组合的应用程序

可构建的应用:devDebugdevReleasetestDebugtestReleasepaasDebugpaasRelease

android {
    buildTypes {
        debug {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        release {
            signingConfig signingConfigs.release
            debuggable true
            minifyEnabled true    //  开启混淆
            shrinkResources true  //  移除无用的resource文件
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    productFlavors {
        // 开发环境
        tl_paas_dev {
            dimension 'paas'
            applicationId 'com.mmm.paas'
            buildConfigField "String", "BASE_URL", "\"https://dev.fjmaimaimai.com\""
            resValue "string", "app_name", "天联共创【开发】"
        }
        // 测试环境
        tl_paas_test {
            dimension 'paas'
            applicationId 'com.mmm.paas'
            buildConfigField "String", "BASE_URL", "\"https://test.fjmaimaimai.com\""
            resValue "string", "app_name", "天联共创【测试】"
        }
        // 生产环境
        tl_paas {
            dimension 'paas'
            applicationId 'com.mmm.paas'
            buildConfigField "String", "BASE_URL", "\"https://prd.fjmaimaimai.com\""
            resValue "string", "app_name", "天联共创"
        }
    }
    
    ...
}

# 应用签名

菜单栏中,依次点击 Build > Generate Signed Bundle/APK 创建签名文件 xxx.jks,建议相同公司下使用同一个秘钥库

android {
    //签名配置
    signingConfigs {
        debug {

        }
        release {
            storeFile file('../xxx.jks')   // .jks 秘钥库存放路径
            storePassword "密钥库密码"
            keyAlias "密钥标识名"
            keyPassword "密钥密码"
        }
    }
    ... 
}

# 构建应用

Android 构建系统会编译应用资源和源代码,然后将它们打包到 APKAndroid App Bundle 中,提供测试、部署、签名和分发

// 构建指令
gradlew assembleDebug   // 构建debug包
gradlew assembleRelease // 构建release包

# 自动化部署

通过持续集成工具 Jenkins,搭建一套适合移动端的自动发布流水线,提高交付效率

涉及到工作事项:

  • 分支管理,根据 Git 分支使用规范 执行
  • 使用 Mac OS 系统做为Jenkins工具载体(满足IOS编译环境)
  • Jenkins 配置、Gogs 钩子、二开插件(钉钉通知)
  • fir cli 指令处理

# 测试环境(自动流水线交付)

工作流程: 1.推送分支代码 -> 2.编译构建应用 -> 3.交付到托管平台 -> 4.通知相关人员(钉钉)

示意图:

cicd

# 生产环境(手动交付)

遵守公司对产品上线流程管理文件

  1. 合并测试分支
  2. 构建应用,交付到测试人员验证
  3. 验证通过,运维上架应用商店
  4. 代码创建tag

# 设备版本支持

# 最低版本要求

  • 平台版本:Android 5.0 (Lollipop/棒棒糖),于2014年10月发布
  • API级别:21
  • 全球累计分布:94.1%,中国比例会更高

# 工程仓库

# 项目仓库

# 其它

# 团队仓库

# 开源组件仓库

最后更新时间: 11/24/2021, 4:01:41 AM