简介
脚手架分为MVC\MVP\MVVM三种框架,但是主体结构没有发生明显变化
默认首页为LoginActivity
默认android:allowBackup="false"
项目打开即可使用,如果没有相关依赖,请自行下载
目前已实现功能
封装状态栏颜色(BaseActivity)
加载框封装(BaseActivity中StatusBarCompat.compat(xxx))
ButterKnife封装(BaseActivity)
动态权限封装(easypermissions)
网络请求封装(参见LoginActivity中login方法)
SharedPreference封装(参见LoginActivity中login方法成功回调)
网络请求结果打印封装(HttpJsonMethod中的HttpLoggingInterceptor)
三大框架的各自封装
todo
国际化功能
开发/测试环境区分
RecyclerView的Adapter标准书写
项目框架使用情况
compileSdkVersion 29
详情见build.gradle
//黄油刀注解
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
//动态权限申请框架
implementation 'pub.devrel:easypermissions:0.4.3'
//RecyclerView的简易Adapter框架
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
implementation 'com.github.baserecycleradapter:library:1.1.0'
//网络请求相关
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.6.0'
implementation 'com.squareup.okio:okio:1.15.0'
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
implementation 'io.reactivex:rxandroid:1.2.1'
//打印日志的依赖
implementation 'com.orhanobut:logger:2.2.0'
项目文件结构
image.png
com
├── base //基础组件,包括功能的base以及页面的base
├── data //数据处理(重点是实体类的定义)
│ ├── DataManager.java //数据管理器
│ ├── local //来源于本地的数据,比如 SP,Database,File
│ ├── model //定义 model(数据结构以及 getter/setter、compareTo、equals 等等,不含复杂操作)
│ └── remote //来源于远端的数据
├── feature //功能
│ ├── login //具体功能模块
│ │ ├── LoginActivity.java
│ │ ├── LoginContract.java
│ │ ├── xxAdapter.java
│ │ └── ... 其他 class
│ └── ...其他功能
├── http //网络请求封装
├── util //工具类
│ ├── CheckUtil //负责一些检查工作的工具类
│ ├── DialogUtils //负责创建Dialog工具类
│ ├── SharedPreferencesUtils //负责管理SharedPreference的工具类
├── widget //自定义视图及小部件
├── MyApplication.java //定义 Application 类
├── Config.java //配置方面的一些数据(常量)
├── Consts.java //项目使用上用到的一些数据(常量)
项目资源文件结构
资源文件图例
res
├── color //各种关于color的selector
├── drawable //图片资源文件
├── layout //页面文件
├── mipmap //小图片资源文件
├── values //各种资源文件
│ ├── colors //颜色定义文件
│ ├── dimens //间距等定义文件
│ └── strings //字符定义文件
│ └── styles //样式定义文件
├── xml //功能设置等资源文件