前言
Android开发相关知识及前沿技术梳理、分享
文章目录
- 前言
- 1 开发环境搭建
- 2 开发框架/小工具
- 2.1 图片处理
- 2.2 组件
- 2.3 进度条
- 2.4 APP版本升级
- 2.5 第三方登录集成
- 2.6 悬浮窗
- 2.7 信息注释、说明组件 带三角头
- 2.8 组件折叠效果
- 2.9 文字轮播控件
- 2.10 json 数据解析框架 Gson
- 2.11 二维码、条形码
- 3 Gradle插件
- 4 开发组件
- 5 异常问题分析
- 6 APP权限调用
- 7 APP功能开发
- 8 数据存储
- 9 APP性能优化
- 10 APP兼容性适配
- 11 apk静默升级常用处理方式 打包
- 12 与前端页面交互
- 13 Android Studio 插件
- 14 UI设计规范参考
- 15 开发问题汇总
1 开发环境搭建
博客推荐 - 博主 - 风之盔 - 查看Android API文档的正确方式
Android Studio 下载 Gradle 失败或下载速度慢的解决方案
博客推荐 - 博主 - 生命壹号 - Android Studio中gradle项目构建
博客推荐 - 博主 - 生命壹号 - Android Studio新建工程并安装Genymotion模拟器
博客推荐 - 博主 - 生命壹号 - Android Studio的常用配置
博客推荐 - 博主 - 显卡84du - Android Studio配置文件路径修改
博客推荐 - 博主 - SurprisedHao - AndroidStudio连不上Android设备真机
博客推荐 - 博主 - 菩提树下的杨过 - 在MAC中安装Android SDK
2 开发框架/小工具
2.1 图片处理
2.1.1 banner 广告图片轮播控件
Android广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等!
项目地址:https://github.com/youth5201314/banner
2.1.2 图片切换效果
博客推荐 - 博主 - 分享是总结学习的一种好方法 - Android Banner图片轮播控件 + ViewPagerIndicator + ViewPager 炫酷切换效果大全收集
2.1.3 相册或相机获取图片
RxImagePicker:从零实现灵活且可高度定制的Android图片选择架构
2.1.4 拍照功能
使用文档:一个非常好用的Android图片选择框架
项目地址:https://github.com/wildma/PictureSelector
2.2 组件
2.2.1 Butterknife 组件依赖注入
项目地址:https://github.com/JakeWharton/butterknife
2.2.2 Android-PickerView 仿iOS的PickerView控件
Android-PickerView是一款仿iOS的PickerView控件,带有3D圆弧效果,并封装了时间选择和选项选择这两种选择器。
时间选择器、省市区三级联动。
项目地址:https://github.com/Bigkoo/Android-PickerView
文档地址:https://github.com/Bigkoo/Android-PickerView/wiki
2.2.3 FlycoTabLayout 一个Android TabLayout库
项目地址:https://github.com/H07000223/FlycoTabLayout/blob/master/README_CN.md
2.2.4 XFrame Android快速开发框架
XFrame - Android快速开发框架:主要是封装有Http网络隔离框架、日志、缓存、加载等待、toast、页面状态布局管理、权限、自定义view等常用的集合框架,减少开发成本,提高软件体验!
项目地址:https://github.com/youth5201314/XFrame
说明文档:https://github.com/youth5201314/XFrame/wiki
2.2.5 WheelPicker 顺滑的、高度自定义的滚轮控件和选择器
项目地址:WheelPicker
自定义 View 实现滑动流畅、功能齐全、用法简单、高度自定义的 WheelView,并在 WheelView 基础之上封装了常用的日期选择器(包括年、月、日 WheelView)、选项选择器。
2.2.6 RecycleView
博客推荐 - 博主 - 宁_593066063 - Android中RecyclerView开源框架
2.2.6.1 BaseRecyclerViewAdapterHelper
功能比较齐全
项目地址:https://github.com/CymChad/BaseRecyclerViewAdapterHelper
使用方法:博客推荐 - 博主 - 陈宇明 - BRVAH官方使用指南(持续更新)
2.2.6.2 EasyRefreshLayout
实现下拉刷新和上拉加载更多,可自定义加载视图
项目地址:https://github.com/anzaizai/EasyRefreshLayout
2.2.6.3 GroupedRecyclerViewAdapter
GroupedRecyclerViewAdapter可以很方便的实现RecyclerView的分组显示,并且每个组都可以包含组头、组尾和子项;可以方便实现多种Type类型的列表,可以实现如QQ联系人的列表一样的列表展开收起功能,还可以实现头部悬浮吸顶功能等。
项目地址:https://github.com/donkingliang/GroupedRecyclerViewAdapter
2.2.7 侧滑删除
2.2.7.1 EasySwipeMenuLayout
独立的侧滑删除组件
项目地址:https://github.com/anzaizai/EasySwipeMenuLayout
2.2.8 APP指向性功能高亮,引导介绍
项目地址:https://github.com/hongyangAndroid/Highlight
2.2.9 标签自动换行、流式布局
TagFlowLayout
项目地址:https://github.com/hongyangAndroid/FlowLayout
Android 中自动换行的标签实现
博客推荐 - 博主 - TianFB - Android中自动换行的标签实现
2.2.10 自定义密码输入框
项目地址:https://github.com/xiaschina/CustomView
使用说明:博客推荐 - 博主 - 点石成金XIAS - Android自定义密码输入框
2.2.11 WebView
Android WebView 加载闪退问题处理(Error inflating class android.webkit.WebView)
2.3 进度条
NumberProgressBar
项目地址:https://github.com/daimajia/NumberProgressBar
2.4 APP版本升级
AppUpdate
项目地址:https://github.com/WVector/AppUpdate
项目地址:https://github.com/ixuea/AndroidDownloader
2.5 第三方登录集成
JustAuth
史上最全的整合第三方登录的开源库。目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为和企业微信等第三方平台的授权登录。 Login, so easy! https://docs.justauth.whnb.wang
项目地址:https://github.com/justauth/JustAuth
2.6 悬浮窗
EasyFloat
项目地址:https://github.com/princekin-f/EasyFloat
使用方法:博客推荐 - 博主 - 呱呱_ - EasyFloat:浮窗从未如此简单
2.7 信息注释、说明组件 带三角头
BubbleView
项目地址:https://github.com/lguipeng/BubbleView
2.8 组件折叠效果
SectionedExpandableGridRecyclerView
项目地址:https://github.com/bpncool/SectionedExpandableGridRecyclerView
使用方法:博客推荐 - 博主 - 王亟亟 - 翻翻git之—利用RecyclerView实现折叠效果 SectionedExpandableGridRecyclerView
2.9 文字轮播控件
一个Android文字轮播控件,又名跑马灯;已经实现了可垂直跑、可水平跑的跑马灯,几行代码集成!
项目地址:https://github.com/ChessLuo/TextBannerView
2.10 json 数据解析框架 Gson
项目地址:https://github.com/google/gson
2.11 二维码、条形码
QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
项目地址:https://github.com/bingoogolapple/BGAQRCode-Android
3 Gradle插件
4 开发组件
4.1 ListView 列表组件
ListView组件中嵌套GridView(重算GridView的高度)
Android列表组件ListView子项的点击事件与子项中组件的点击事件
Android列表组件ListView使用详解之滑动事件监听
Android列表组件ListView使用详解之屏幕触摸事件
Android列表组件ListView使用详解之数据为空提示信息
Android列表组件ListView使用详解之动态加载或修改列表数据
Android列表组件ListView使用详解之设置显示第几项子项
Android列表组件ListView使用详解之取消子项的点击效果
Android列表组件ListView使用详解之ViewHolder提高效率
4.2 RadioButton 单选按钮
博客推荐 - 博主 _张风捷特烈 - 自定义RadioButton:改变文字上、下、左、右图片,可设置图片大小(宽高)
4.3 Android四大组件
4.4 TextView 文本组件
4.5 GridView 九空格布局组件
4.6 CheckBox 复选框
4.7 RecyclerView 系列
RecyclerView系列 - RecyclerView的基本使用
5 异常问题分析
5.1 相机
6 APP权限调用
博客推荐 - 博主 - hmg25 - Android权限sharedUserId使用:设备关机重启、调用隐藏方法、静默安装升级卸载APP等需要使用system权限的场景
7 APP功能开发
博客推荐 - 博主 - 淡漠de人生 - 栗子——ListView实现筛选菜单滑动吸顶悬停
博客推荐 - 博主 - 淡漠de人生 - 栗子——嵌套组合实现筛选菜单滑动吸顶悬停 Android新特性
博客推荐 - 博主 -下沉的代码 - 自定义Android消息推送提示音
8 数据存储
9 APP性能优化
9.1 内存优化
博客推荐 - 博主 - Sun‘刺眼的博客 - 在Android中解决内存溢出 – OutOfMemoryError
博客推荐 - 博主 - Scorpio_Happy - java.lang.OutOfMemoryError
博客推荐 - 博主 - 大圣代 - Android性能优化之内存
博客推荐 - 博主 - 大圣代 - Android UI性能优化
9.2 图片优化
博客推荐 - 博主 - guolin - Android高效加载大图、多图解决方案,有效避免程序OOM
9.2.1 Compressor 图片压缩
项目地址:https://github.com/zetbaitsu/Compressor
9.2.2 Luban 可能是最接近微信朋友圈的图片压缩算法
项目地址:https://github.com/Curzibn/Luban
9.2.3 android和RxJava配合使用的两个图片压缩框架LuBan、Compressor
博客推荐 - 博主 - 晓果博客 - android 和RxJava配合使用的两个图片压缩框架LuBan、Compressor
10 APP兼容性适配
11 apk静默升级常用处理方式 打包
博客推荐 - 博主 - 手工艺人 - Android实现静默安装的两种方法,android 静默升级
博客推荐 - 博主 - qhs1573 - Android Apk静默安装的方法(后台安装)
博客推荐 - 博主 - 九九叔 - 不可实现的Android静默安装
博客推荐 - 博主 - Goingmerry - Apk安装:应用未安装,解决办法
博客推荐 - 博主 - erweimaerweima - Android Studio 打包时 Signature Version V1 V2
12 与前端页面交互
博客推荐 - 博主 - 少问,多查,靠自己 - Android开发 assets目录
13 Android Studio 插件
博客推荐 - 博主 - 王菜花 - Android Studio 常用插件整理
Android-Debug-Database 数据库调试工具
14 UI设计规范参考
Android官方建议关于Android APP UI界面设计的一些参考原则
15 开发问题汇总
博客推荐 - Android 避免APP启动闪黑屏的解决办法
博客推荐 - Android Studio 编译错误 Received close_notify during handshake解决
博客推荐 - 彻底解决NestedScrollView、ScrollView加载完自动滑动至底部问题
Lint found fatal errors while assembling a release target.
极光:Unable to get provider cn.jpush.android.service.DownloadProvider