方便查看所有教程,做了个索引目录 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礼物模块vmimIM模块,包括IM和通话部分vmimage图片模块,包括图片选择、加载、浏览等vmmp小程序模块vmpay支付模块vmpush推送模块vmqr二维码模块 二维码扫描识别与生成处理vmreport统计模块 包括数据统计及bug上报vmrequest网络请求模块
配置运行
- 首先复制
config.default.gradle到config.gradle - 配置下
config.gradle内相关字段 - 正式打包需要自己生成签名文件,然后修改下
config.gradle的signings签名信息
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",
]
}
主要修改配置
- 应用名 在
app``module下app/src/main/res/values/string找到app_name改为自己的应用名 - 应用包名 在
config.gradle中设置applicationId用于安装到设备上进行区别不同应用,很重要,而且在很多三方平台都需要,格式:域名倒写+类型+应用名称,也可以加一些其他内容,总之改成你自己的,然后对自己有意义或者好记的名字就行,比如我的域名vmloft.com模板包名就是:com.vmloft.develop.app.template只需要修改config.gradle内包名,代码内部包名无需修改
支持运行的最低配置主要包含三部分
- API接口,需和后端对应,与之配套的 www.yuque.com/lzan13/nepe…
- IM即时通讯 ****www.yuque.com/lzan13/nepe…
- 广告SDK/小程序SDK www.yuque.com/lzan13/nepe…
其他配置可以运行起来后慢慢加,后边单开章节再说
// 这里需要写入 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
在弹出框按需填写签名文件字段,主要就是前几项的Password和Alias需要认真填写,其他字段可以随意填写,然后要记牢这些,后续签名需要用到,而且签名文件需要保存好,不要丢失了,如果丢失,已上架的app用新的签名没法直接上架的很严重
如果已经生成过点击Choose existing填入签名文件密码/别名等,继续Next选择developRelease等待完成,成功后在app/Develop/release下会生成相应的APK包,可直接安装,或发布到对应平台