忘忧大陆-Android客户端端开发与配置运行

272 阅读5分钟

方便查看所有教程,做了个索引目录 www.yuque.com/lzan13/nepe…

工欲善其事必先利其器,项目开发的再好,没有好的运行环境都是虚的,想运行项目,必须先搭建好可供运行的环境,与之配套的 www.yuque.com/lzan13/nepe…

开发环境

项目基本属于在Android开发环境下开发,全局使用Kotlin语言,项目已经适配Android6.x以上的动态权限适配,以及7.x的文件选择,和8.x的通知提醒,10.x的文件选择等;

  • 开发系统:Mac OS 11.5.2
  • 开发工具:Android Studio Arctic Fox | 2021.2.1
  • 打包工具:Gradle 7.0.2
  • 开发语言:Kotlin 1.5.21

项目模块儿

  • app 主模块,包括项目的业务逻辑
  • vmads 广告模块,对广告请求与展示进行简单封装
  • vmbase 基类模块,项目的基类封装
  • vmcommon 公共模块,这部分主要包含了一些公共组件加配置信息
  • vmdata 数据模块,包括网络请求的数据以及数据库缓存数据处理
  • vmdb 数据库模块
  • vmgift 礼物模块
  • vmim IM模块,包括IM和通话部分
  • vmimage 图片模块,包括图片选择、加载、浏览等
  • vmmp 小程序模块
  • vmpay 支付模块
  • vmpush 推送模块
  • vmqr 二维码模块 二维码扫描识别与生成处理
  • vmreport 统计模块 包括数据统计及bug上报
  • vmrequest 网络请求模块

配置运行

  1. 首先复制config.default.gradleconfig.gradle
  2. 配置下config.gradle内相关字段
  3. 正式打包需要自己生成签名文件,然后修改下config.gradlesignings签名信息
ext {
    // 默认配置
    configs = [
            compileSdkVersion: 30,
            buildToolsVersion: "30.0.3",
            applicationId    : "com.vmloft.develop.app.template",
            minSdkVersion    : 21,
            targetSdkVersion : 30,
            versionCode      : 1,
            versionName      : "0.0.1",

            // 推送平台 极光 https://www.jiguang.cn/
            pushAppId        : "Push AppId", // 推送平台 AppId
            pushAppKey       : "Push AppKey", // 推送平台 AppKey
            pushAppSecret    : "Push AppSecret", // 推送平台 AppSecret

            // 聚合平台配置 TopOn https://www.toponad.com/zh-cn
            topOnAppId       : ""TopOn AppId"", // TopOn 聚合平台 AppId
            topOnAppKey      : ""TopOn AppKey"", // TopOn 聚合平台 AppKey
            topOnAppIdGP     : ""TopOn GooglePlay AppId"", // TopOn 聚合平台 AppId
            topOnAppKeyGP    : ""TopOn GooglePlay AppKey"", // TopOn 聚合平台 AppKey
            admobAppId       : "", // Google Admob AppId,国内环境不需要
            adsSecKey        : """", // 广告回调签名key 和后端一致

            // Bugly https://bugly.qq.com/
            buglyAppId       : "Bugly AppId",

            // 友盟 https://www.umeng.com/
            umengAppKey      : "UMeng AppKey",

            // 环信相关配置 https://console.easemob.com/index
            emAppKey         : "appKey", // 环信 IM AppKey
            // 声网 https://www.agora.io/cn/
            // 这里需要写入 BuildConfig 只会写入双引号内部字段,所以需要多包一层""
            agoraAppId       : ""Agora appId"",

            // 这里需要写入 BuildConfig 只会写入双引号内部字段,所以需要多包一层""
            // 然后这里地址需要和服务器配置一致,看服务器项目的 default 配置 subSite 字段,如果是二级目录需要带上完整的路径如:https://xxx.com/api/
            // 调试服务器环境配置,这里的IP是和你设备同路由下服务器 IP
            baseUrlDebug     : ""http://192.168.1.3:5920/"",
            // 线上服务器地址 对应服务器nginx反向代理 domain + api 部分
            baseUrlRelease   : ""接口域名地址"",

            // 这里需要写入 BuildConfig 只会写入双引号内部字段,所以需要多包一层""
            // IM Debug 环境 host 配置,这里的IP是和你设备同路由下服务器 IP
            imHostDebug       : ""http://192.168.31.107:5920/"",
            // IM 线上环境 host 配置 对应服务器nginx反向代理 domain + im 部分
            imHostRelease    : ""接口域名地址"",
            // 访问资源域名地址 这里需要写入 BuildConfig 只会写入双引号内部字段,所以需要多包一层""
            mediaUrl         : ""资源域名地址"",

    ]

    // 签名文件由 AndroidStudio 生成,然后使用 keytool 命令转换格式
    // keytool -importkeystore -srckeystore ./vmloft.debug.jks -destkeystore ./vmloft.debug.keystore -deststoretype pkcs12
    // 签名配置,这里是默认添加的 debug 签名,方便打包测试,发布时需生成自己的签名文件,记得将签名文件复制到项目中
    signings = [
            keyAlias     : "vmloft",
            keyPassword  : "123456",
            storeFile    : "../vmloft.debug.keystore",
            storePassword: "123456",
    ]
}

主要修改配置

  1. 应用名 在app``moduleapp/src/main/res/values/string 找到 app_name 改为自己的应用名
  2. 应用包名 在config.gradle 中设置applicationId用于安装到设备上进行区别不同应用,很重要,而且在很多三方平台都需要,格式:域名倒写+类型+应用名称,也可以加一些其他内容,总之改成你自己的,然后对自己有意义或者好记的名字就行,比如我的域名 vmloft.com 模板包名就是:com.vmloft.develop.app.template只需要修改config.gradle内包名,代码内部包名无需修改

支持运行的最低配置主要包含三部分

其他配置可以运行起来后慢慢加,后边单开章节再说

// 这里需要写入 BuildConfig 只会写入双引号内部字段,所以需要多包一层""
// 然后这里地址需要和服务器配置一致,看服务器项目的 default 配置 subSite 字段,如果是二级目录需要带上完整的路径如:https://xxx.com/api/
// 调试服务器环境配置 这里的IP是和你设备同路由下服务器 IP
baseUrlDebug     : ""http://192.168.1.3:5920/"",
// 线上服务器地址 对应服务器nginx反向代理 domain + api 部分
baseUrlRelease   : ""接口域名地址"",
// 这里需要写入 BuildConfig 只会写入双引号内部字段,所以需要多包一层""
// IM Debug 环境 host 配置 ,这里的IP是和你设备同路由下服务器 IP
imHostDebug       : ""http://192.168.31.107:5920/"",
// IM 线上环境 host 配置 对应服务器nginx反向代理 domain + im 部分
imHostRelease    : ""接口域名地址"",

运行打包

本地运行比较简单,项目配置完成同步过后,直接点击小三角运行到设备或者模拟器即可

如果是打包发布,需要点击菜单栏build->Generate Signed Bundle or APK在弹出菜单选择APK(如果是发布到GooglePlay可以选择第一项Android App Bundle),选择Next这里需要设置签名文件

如果没有需要点击Create New

在弹出框按需填写签名文件字段,主要就是前几项的PasswordAlias需要认真填写,其他字段可以随意填写,然后要记牢这些,后续签名需要用到,而且签名文件需要保存好,不要丢失了,如果丢失,已上架的app用新的签名没法直接上架的很严重

如果已经生成过点击Choose existing填入签名文件密码/别名等,继续Next选择developRelease等待完成,成功后在app/Develop/release下会生成相应的APK包,可直接安装,或发布到对应平台