文章目录
1.项目简介
这是一门使用Java语言,从0开发一个Android平台,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识;不会深入到源码讲解某个知识点,以及原理,但会粗略的讲解下基础原理;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级商业级项目,目的是让大家,学到真正的企业级项目开发技术。
2.开发环境概述
2022年5月开发完成的,所以全部都是最新的,平均每3年会重新制作,现在已经是第三版了。
JDK17
Android 12/13
最低兼容版本:Android 6.0
Android Studio 2021.1
3.项目架构
大部分模块采用MVC,商城列表和商城详情采用MVVM,Jetpack官方组件。
4.项目目录结构
├── MyCloudMusicAndroidJava
│ ├── LRecyclerview //第三方Recyclerview框架
│ ├── LetterIndexView //类似微信通讯录字母索引
│ ├── app //云音乐项目
│ ├── build.gradle
│ ├── common.gradle //通用项目配置文件
│ ├── config //配置目录,例如签名
│ ├── glidepalette //Glide画板,用来从网络图片提取颜色
│ ├── gradle
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── keystore.properties
│ ├── local.properties
│ ├── settings.gradle
│ ├── super-j //公用Java语言扩展
│ ├── super-player-tencent //腾讯开源的超级播放器
│ ├── super-speech-baidu //百度语音识别
5.项目包结构
├── courses
│ └── mymusic //主项目包
│ ├── AppContext.java
│ ├── MainActivity.java
│ ├── activity //通用界面
│ ├── adapter //通用适配器
│ ├── component //模块
│ │ ├── about //关于
│ │ ├── ad //广告
│ │ ├── ...
│ ├── config //配置目录
│ ├── exception //通用自定义异常
│ ├── fragment
│ ├── manager
│ ├── model
│ ├── repository //数据仓库
│ ├── service //服务
│ ├── util //常用工具类
│ ├── view //自定义View
├── selector //选择器
└── superui //通用UI框架
6.如何运行
用最新AS打开MyCloudMusicAndroidJava目录,然后等待完全编译成功,因为是企业级项目,所以第三方依赖很多,同时代码量也很多,所以必须要确认完全编译成功,才能运行。
6.1.可选配置
如果也有配套服务端源码,可以在Config.java中修改服务器API地址,资源地址;其他的第三方信息,QQ登陆,微信登陆/支付,支付宝支付,阿里云OSS等信息也可以修改为自己的。
7.依赖框架
内容太多,只列出部分。
//分页组件版本
//这里可以查看最新版本:https://developer.android.google.cn/jetpack/androidx/releases/paging
def paging_version = "3.1.1"
//添加所有libs目录里面的jar,aar
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
//官方兼容组件,像AppCompatActivity就是该依赖里面的
implementation 'androidx.appcompat:appcompat:1.4.1'
//Material Design组件,像FloatingActionButton就是该依赖里面的
implementation 'com.google.android.material:material:1.4.0'
//官方提供的约束布局,像ConstraintLayout就是该依赖里面的
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
//UI框架,主要是用他的工具类,也可以单独拷贝出来
//https://qmuiteam.com/android/get-started
implementation 'com.qmuiteam:qmui:2.0.1'
//动态处理权限
//https://github.com/permissions-dispatcher/PermissionsDispatcher
implementation "com.github.permissions-dispatcher:permissionsdispatcher:4.8.0"
annotationProcessor "com.github.permissions-dispatcher:permissio