KICC-NOTIFY-ANDROID

公司官网仓库地址

## 🐬 介绍 | kicc-notify-android 一个简单好用的通知APP | |----------------------------------| ## ✨ 特性 - MVVM开发模式 - 采用最新的Androidx扩展库,并向后兼容各个Android版本 - Material-Dialogs一个漂亮的、流畅的、可定制的material design风格的对话框。 - 引入RxJava+RxAndroid,支持java响应式编程与安卓扩展异步UI事件响应式编程 - 引入RxBinding,支持用RxJava的形式来处理UI事件 - 引入RxLifecycle让安卓组件(活动或者碎片)生命周期同步,防止内存泄露 - 采用Retrofit、OkHttp、RxJava进行网络请求 - 集成AndroidUtilCode工具库,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以甜甜的 - 集成Dagger2实现了IOC依赖控制反转,帮助您的应用程序拆分为松散耦合的组件,可以更轻松地开发、测试和维护这些组件 - 集成Calligraphy3字体风格库,实现字体个性化 - 集成Lombok,让代码变得更加简洁,消除冗长代码提高开发效率 - 集成腾讯bugly平台,支持异常上报和数据分析功能,帮助开发者快速定位bug - 集成PictureSelector,支持微信风格的图片自定义选择器进行上传 - 集成友盟库,支持消息推送、社会化分享、QQ登录、微信登录、自定义启动引导页面 - 集成华为厂商通道,支持huawei-push、huawei-Core等服务直接唤醒app - 集成DialogX对话框组件库,松实现各种对话框、菜单和提示效果,更有Material You、iOS、MIUI等主题扩展可选 - 集成XBanner(图片轮播)支持图片无限轮播,支持AndroidX、自定义指示点、显示提示文字、切换动画、自定义布局,一屏多显、视频图片混合轮播等功能 - 集成SmartRefreshLayout-下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框架 - 集成Glide,支持各种图片加载 - 集成腾讯MMKV,让 key-value 数据存储变得更加高效 - 支持地图导航,智能路线规划,后台刷新定位、媒体锁后台保活 - 集成AdvancedRecyclerView支持各种回收视图高级适配器操作(可滑动列表,可拖拽列表) ## 黑客节 加入[Github HackToberFest](https://hacktoberfest.com/) 开始为此项目做出贡献. ## 🍀 基础准备 - 了解 **RxJava** - 了解 **Androidx** - 了解 **Dagger2** ## 🔨 开发目录 ``` ├─ dolphin-android -- Android海豚APP │ ├─ app -- app目录 │ │ ├─ src -- 源代码 │ │ │ ├─ androidTest -- 安卓插桩测试单元测试 │ │ │ ├─ main -- 源代码入口 │ │ │ │ ├─ java -- Java源代码根目录 │ │ │ │ │ ├─ com.kanglai.push -- 包名 │ │ │ │ │ │ ├─ app -- 初始化应用程序 │ │ │ │ │ │ ├─ constant -- 全局常量 │ │ │ │ │ │ ├─ di -- dagger2依赖注入 │ │ │ │ │ │ │ ├─ component -- 组件媒介 │ │ │ │ │ │ │ ├─ module -- 注入模块提供 │ │ │ │ │ │ │ ├─ scope -- 局部单例生命周期注解 │ │ │ │ │ │ ├─ engine -- 图片选择器第三方组件引擎 │ │ │ │ │ │ ├─ entity -- 数据实体类 │ │ │ │ │ │ ├─ listener -- 监听器 │ │ │ │ │ │ ├─ mapper -- api请求数据映射层 │ │ │ │ │ │ ├─ service -- 业务逻辑处理层 │ │ │ │ │ │ ├─ ui -- 活动界面控制层 │ │ │ │ │ │ │ ├─ activity -- 活动窗口 │ │ │ │ │ │ │ ├─ adapter -- 回收视图适配器 │ │ │ │ │ │ │ ├─ fragment -- 活动碎片局部窗口 │ │ │ │ │ │ │ ├─ vm -- 视图模型 │ │ │ │ │ │ ├─ util -- 全局工具类 │ │ │ │ ├─ res -- 资源文件 │ │ │ │ │ ├─ drawable -- 默认图片目录(像素密度目录中找不到就使用默认的) │ │ │ │ │ ├─ drawable-nodpi -- 像素密度无关的图片目录 │ │ │ │ │ ├─ drawable-xxhdpi -- 1080*1920 分辨率下的图片目录 │ │ │ │ │ ├─ drawable-xxxhdpi -- 1440*2560 分辨率下的图片目录 │ │ │ │ │ ├─ layout -- 界面布局文件 │ │ │ │ │ ├─ values -- 参数配置 │ │ │ │ │ ├─ xml -- 配置文件 │ │ │ ├─ unitTest -- 本地单元测试 │ ├─ gradle -- gradle下载配置 │ ├─ library -- 基础依赖库 │ │ ├─ core -- 核心库 │ │ │ ├─ libs -- 本地离线依赖 │ │ │ ├─ src -- 源代码 │ │ │ │ ├─ main -- 源代码入口 │ │ │ │ │ ├─ assets -- 外部文件的资源目录,不会被编译 │ │ │ │ │ ├─ java -- Java源代码根目录 │ │ │ │ │ │ ├─ com.kanglai.core -- 包名 │ │ │ │ │ │ │ ├─ amap -- 高德地图相关 │ │ │ │ │ │ │ ├─ base -- 基础核心类 │ │ │ │ │ │ │ ├─ binding -- 扩展组件的属性绑定 │ │ │ │ │ │ │ │ ├─ command -- 绑定视图命令回调 │ │ │ │ │ │ │ │ ├─ viewadapter -- 绑定视图适配器 │ │ │ │ │ │ │ ├─ bus -- 全局组件事件订阅发布通信 │ │ │ │ │ │ │ ├─ constant -- 全局常量 │ │ │ │ │ │ │ ├─ crash -- 自定义应用程序崩溃 │ │ │ │ │ │ │ ├─ entity -- 数据实体类 │ │ │ │ │ │ │ ├─ enums -- 枚举定义 │ │ │ │ │ │ │ ├─ http -- http请求 │ │ │ │ │ │ │ │ ├─ api -- 响应信息 │ │ │ │ │ │ │ │ ├─ exception -- 请求错误处理 │ │ │ │ │ │ │ │ ├─ file -- 文件流相关处理 │ │ │ │ │ │ │ │ ├─ interceptor -- 请求拦截器 │ │ │ │ │ │ │ │ ├─ observer -- 基础文件响应可观测监听 │ │ │ │ │ │ │ ├─ listener -- 监听器 │ │ │ │ │ │ │ ├─ service -- 安卓后台服务 │ │ │ │ │ │ │ ├─ util -- 全局工具类 │ │ │ │ │ │ │ ├─ widget -- 安卓组件扩展 │ │ │ │ │ ├─ res -- 资源文件 │ │ │ │ │ │ ├─ drawable-hdpi -- 480*800/480*854 分辨率下的图片目录 │ │ │ │ │ │ ├─ drawable-mdpi -- 320*480 分辨率下的图片目录 │ │ │ │ │ │ ├─ drawable-xhdpi -- 720*1280 分辨率下的图片目录 │ │ │ │ │ │ ├─ drawable-xxhdpi -- 1080*1920 分辨率下的图片目录 │ │ │ │ │ │ ├─ drawable-xxxhdpi -- 1440*2560 分辨率下的图片目录 │ │ │ │ │ │ ├─ layout -- 界面布局文件 │ │ │ │ │ │ ├─ raw -- 原始文件目录 │ │ │ │ │ │ ├─ values -- 参数配置 │ │ │ │ │ ├─ res-sw -- 最小宽度屏幕适配资源 │ │ ├─ umeng -- 友盟库 │ │ │ ├─ libs -- 本地离线依赖 │ │ │ ├─ src -- 源代码 │ │ │ │ ├─ main -- 源代码入口 │ │ │ │ │ ├─ java -- Java源代码根目录 │ │ │ │ │ │ ├─ com.kanglai.umeng -- 包名 │ │ │ │ │ │ │ ├─ entity -- 数据实体类 │ │ │ │ │ │ │ ├─ enums -- 枚举定义 │ │ │ │ │ │ │ ├─ listener -- 监听器 │ │ │ │ │ ├─ res -- 资源文件 │ │ │ │ │ │ ├─ layout -- 界面布局文件 │ │ │ │ │ │ ├─ xml -- 配置文件 ``` ## 🤔 运行配置
支持的so库 "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
运行Android版本 >= API 29
设备成功联网
JDK 版本 11.0.5
AndroidStudio >= 2022.1.1
正式线端口号:http://kicc.kanglailab.com:9999
本地测试端口号: http://192.168.3.10:9999
## 🛹 调用的第三方库以及地址 #### AndroidX 兼容库 ##### Android 原生库、工具、UI 解决方案 链接:[https://github.com/androidx/androidx](https://github.com/androidx/androidx) #### Material 安卓部件风格设计库 ##### Android Material 样式库 链接:[https://github.com/material-components/material-components-android](https://github.com/material-components/material-components-android) #### 反应式编程与安卓扩展异步UI事件反应式编程 ##### Android 响应式组件帮助类 链接:[https://github.com/ReactiveX/RxAndroid](https://github.com/ReactiveX/RxAndroid) #### 反应式编程与安卓组件(活动或者碎片)生命周期同步,防止内存泄露 ##### 使用 RxJava 的 Android 应用程序的生命周期处理 API 链接:[https://github.com/trello/RxLifecycle](https://github.com/trello/RxLifecycle) #### 网络请求客户端 链接:[https://github.com/square/retrofit](https://github.com/square/retrofit) #### Json 解析工具 链接:[https://github.com/google/gson](https://github.com/google/gson) #### AndroidUtilCode --推荐 参考文档:[https://blankj.com/2016/07/31/android-utils-code](https://blankj.com/2016/07/31/android-utils-code) #### 依赖注入框架dagger2,类似于spring的ioc 链接:[https://developer.android.com/training/dependency-injection/dagger-android?hl=zh-cn](https://developer.android.com/training/dependency-injection/dagger-android?hl=zh-cn) #### 设置自定义字体 链接:[https://github.com/InflationX/Calligraphy](https://github.com/InflationX/Calligraphy) #### 底部导航栏 链接:[https://github.com/tyzlmjj/PagerBottomTabStrip](https://github.com/tyzlmjj/PagerBottomTabStrip) #### 腾讯bugly崩溃日志分析平台异常捕捉 链接:[https://bugly.qq.com/docs/user-guide/instruction-manual-android/?v=20190418140644](https://bugly.qq.com/docs/user-guide/instruction-manual-android/?v=20190418140644) #### 安卓图片选择器(功能比较全面) 包括-图片压缩、图片裁剪、自定义相机 (按需引入) 链接:[https://github.com/LuckSiege/PictureSelector](https://github.com/LuckSiege/PictureSelector) #### 友盟消息推送 链接:[https://developer.umeng.com/docs/67966/detail/173238](https://developer.umeng.com/docs/67966/detail/173238) ``` 集成步骤: 1.申请Appkey 2.接入Push SDK 从官网下载sdk 复制到libs目录 然后 app/build.gradle 目录中添加 dependencies { api fileTree(dir: 'libs', include: ['*.jar']) api fileTree(dir: 'libs', include: ['*.aar']) } 3.然后就是接口的使用了 在自定义Application类的onCreate()中初始化SDK,在UMConfigure.init方法后调用注册接口,注册成功后可获取deviceToken ``` #### 华为推送 链接:[https://id1.cloud.huawei.com/](https://id1.cloud.huawei.com/) #### 微信官方依赖库 登录时使用wx授权 链接:[https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html](https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html) #### glide图片加载库 链接:[https://github.com/bumptech/glide](https://github.com/bumptech/glide) #### 腾讯 MMKV 链接1:[https://github.com/Tencent/MMKV](https://github.com/Tencent/MMKV) 链接2:[https://www.jianshu.com/p/8f346d1984a2](https://www.jianshu.com/p/8f346d1984a2) #### Kotlin标准库 ##### 采用kotlin语言编写的依赖库,需要此库提供基础kotlin打包功能 链接:[https://kotlinlang.org/api/latest/jvm/stdlib](https://kotlinlang.org/api/latest/jvm/stdlib) #### RecyclerView扩展库 ##### 回收视图组件库 链接:[https://github.com/h6ah4i/android-advancedrecyclerview](https://github.com/h6ah4i/android-advancedrecyclerview) #### ExoPlayer播放器 ##### 音频播放 链接:[https://github.com/google/ExoPlayer](https://github.com/google/ExoPlayer) #### 下拉刷新框架 ##### 列表信息列表主要依赖框架 包含(经典刷新头、雷达刷新头、虚拟刷新头、谷歌刷新头、二级刷新头、球脉冲加载、经典加载) 链接:[https://github.com/scwang90/SmartRefreshLayout](https://github.com/scwang90/SmartRefreshLayout) #### 多状态布局 ##### 列表信息列表加载时状态 链接:[https://github.com/czy1121/loadinglayout](https://github.com/czy1121/loadinglayout) #### 带索引的回收视图 ##### 列表人列表主要依赖 链接:[https://gitee.com/androidx_xy/IndexableRecyclerViewX](https://gitee.com/androidx_xy/IndexableRecyclerViewX) #### 第三方弹出框 DialogX 以及 其IOS主题样式 链接:[https://github.com/kongzue/DialogX](https://github.com/kongzue/DialogX) #### AndroidX-VBanner ##### 走马灯广告展示组件 链接:[https://github.com/xiaohaibin/XBanner](https://github.com/xiaohaibin/XBanner) #### SwitchButton 开关 链接:[https://github.com/zcweng/SwitchButton](https://github.com/zcweng/SwitchButton)