kicc-notify-android
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wangxiang d100e5a751 111 1 year ago
app 111 1 year ago
gradle/wrapper init 1 year ago
library 111 1 year ago
.gitattributes init 1 year ago
.gitignore init 1 year ago
LICENSE init 1 year ago
README.md init 1 year ago
build.gradle init 1 year ago
common.gradle init 1 year ago
config.gradle test 1 year ago
gradle.properties init 1 year ago
gradlew init 1 year ago
gradlew.bat init 1 year ago
lombok.config init 1 year ago
maven.gradle test 1 year ago
settings.gradle init 1 year ago

README.md

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 开始为此项目做出贡献.

🍀 基础准备

  • 了解 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

Material 安卓部件风格设计库

Android Material 样式库

链接:https://github.com/material-components/material-components-android

反应式编程与安卓扩展异步UI事件反应式编程

Android 响应式组件帮助类

链接:https://github.com/ReactiveX/RxAndroid

反应式编程与安卓组件(活动或者碎片)生命周期同步,防止内存泄露

使用 RxJava 的 Android 应用程序的生命周期处理 API

链接:https://github.com/trello/RxLifecycle

网络请求客户端

链接:https://github.com/square/retrofit

Json 解析工具

链接:https://github.com/google/gson

AndroidUtilCode --推荐

参考文档: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://github.com/InflationX/Calligraphy

底部导航栏

链接:https://github.com/tyzlmjj/PagerBottomTabStrip

腾讯bugly崩溃日志分析平台异常捕捉

链接:https://bugly.qq.com/docs/user-guide/instruction-manual-android/?v=20190418140644

安卓图片选择器(功能比较全面)

包括-图片压缩、图片裁剪、自定义相机 (按需引入)

链接:https://github.com/LuckSiege/PictureSelector

友盟消息推送

链接: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/

微信官方依赖库

登录时使用wx授权

链接:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html

glide图片加载库

链接:https://github.com/bumptech/glide

腾讯 MMKV

链接1:https://github.com/Tencent/MMKV 链接2:https://www.jianshu.com/p/8f346d1984a2

Kotlin标准库

采用kotlin语言编写的依赖库,需要此库提供基础kotlin打包功能

链接:https://kotlinlang.org/api/latest/jvm/stdlib

RecyclerView扩展库

回收视图组件库

链接:https://github.com/h6ah4i/android-advancedrecyclerview

ExoPlayer播放器

音频播放

链接:https://github.com/google/ExoPlayer

下拉刷新框架

列表信息列表主要依赖框架 包含(经典刷新头、雷达刷新头、虚拟刷新头、谷歌刷新头、二级刷新头、球脉冲加载、经典加载)

链接:https://github.com/scwang90/SmartRefreshLayout

多状态布局

列表信息列表加载时状态

链接:https://github.com/czy1121/loadinglayout

带索引的回收视图

列表人列表主要依赖

链接:https://gitee.com/androidx_xy/IndexableRecyclerViewX

第三方弹出框 DialogX 以及 其IOS主题样式

链接:https://github.com/kongzue/DialogX

AndroidX-VBanner

走马灯广告展示组件

链接:https://github.com/xiaohaibin/XBanner

SwitchButton 开关

链接:https://github.com/zcweng/SwitchButton