# drip
安卓开发 点滴记录(欢迎star和watch)
Android开发工程师面试知识整理:
<a href="Android_Interview.md" target="_blank">Android面试知识点整理</a>(整理中)
安卓开发中的常用的库、view、widget以及一些知识总结
[View与Widget](#1) | [动画](#2) | [开发常用](#3) | [架构相关](#4) | [安卓Base封装](#5) | [直播技术](#6) | [实用插件](#7) | [Java深入](#8) |
<h2 id="1">View与Widget</h2>
### 带小红点的提示:BadgeView
- [BadgeView](https://github.com/stefanjauker/BadgeView)(stefanjauker的,改颜色需要在BadgeView源码里面改)
- [android-viewbadger](https://github.com/jgilfelt/android-viewbadger)(可以设置提示为数字或者文字,以及背景颜色)
### 标签tagview
- [TAGView](https://github.com/Jude95/TAGView)(可以设置背景图片的形状和颜色,可以同时显示图片和文字)
- [android-tagview](https://github.com/kaedea/android-tagview)(Android-Cloud-TagView-Plus,除了能设置标签的样式外,还能监听标签的点击和删除事件)
- [TagCloudView](https://github.com/kingideayou/TagCloudView)(支持 SingleLine 模式的标签云效果)
- [TagView](https://github.com/Cutta/TagView)(纯文字彩色标签,可以监听标签被选择和删除时的状态,可以单击删除)
- [android-tagview](https://github.com/VEINHORN/android-tagview)(含有箭头的彩色标签)
- [AndroidTagView](https://github.com/whilu/AndroidTagView)(可以添加和删除tag,监听单击和长按)
- [EasyTagDragView](https://github.com/wenhuaijun/EasyTagDragView)(仿网易新闻app下拉标签选择菜单,长按拖动排序,点击增删标签控件)
### 圆形图片:CircleImageView
- [CircleImageView](https://github.com/hdodenhof/CircleImageView)(hdodenhof大神的,单纯的圆形ImageView,可以设置边框,目前还有一些限制)
- [RoundedImageView](https://github.com/vinc3m1/RoundedImageView)(椭圆或者圆角矩形皆可,可以设置边框)
- [CircleImageView](https://github.com/zuoweitan/CircleImageView)(使用clippath实现的CircleImageView,没有Bitmap,没有锯齿,可以设置其他的ScaleType)
### 流程指示器StepView
- [StepView](https://github.com/baoyachi/StepView)(横向和竖直方向的流程显示,可以用于订单或者物流等需要不同状态的场景)
- [Android-StepsView](https://github.com/anton46/Android-StepsView)(单纯的横向流程,可以设置颜色)
### 可以展开的TextView:ExpandableTextView
- [ExpandableTextView](https://github.com/Chen-Sir/ExpandableTextView)(可以展开和收起的TextView,用于多文字显示)
- [ExpandableTextView](https://github.com/Manabu-GT/ExpandableTextView)(需要包含TextView和ImageView,感觉没有上面的方便,不过适合自定义单击的图片及其位置)
### ToggleButton
- [TriStateToggleButton](https://github.com/BeppiMenozzi/TriStateToggleButton)(具有三种状态的切换开关,也可以只两种状态,包含动画属性)
- [RMSwitch](https://github.com/RiccardoMoro/RMSwitch)(Android 两状态或者三状态Switch 按钮,可以设置按钮的图片,多样式)
- [Android-SwitchIcon](https://github.com/zagum/Android-SwitchIcon)(在自身图标上通过颜色的改变来显示关闭和开启的两种状态的switch控件)
### 日历
- [LightCalendarView](https://github.com/recruit-mp/LightCalendarView)(简洁风格的日历 View)
- [OneCalendarView](https://github.com/MorochoRochaDarwin/OneCalendarView)(该日历组件还是相当新颖的)
- [material-calendarview](https://github.com/prolificinteractive/material-calendarview)(日历组件,感觉UI和效果基本上和一些手机上原装的日历差不多)
- [EasyCalendar](https://github.com/shichaohui/EasyCalendar)(可进行 UI 定制的日历组件,轻松完成签到日历功能)
### RecyclerView、ListView、GridView的封装
- [EasyRecyclerView](https://github.com/Jude95/EasyRecyclerView)(包含上拉加载和下拉刷新、EmptyView、showProgress、showError)
- [侧滑RecyclerView](http://www.jianshu.com/p/af9f940d8d1c)(含侧滑的RecyclerView)
- [excelPanel](https://github.com/zhouchaoyuan/excelPanel)(二维的RecyclerView,像excel表格,自带监听)
### dialog
- [material-dialogs](https://github.com/afollestad/material-dialogs)(对dialog很好的封装,不过使用教程比较多,接入略微复杂点)
- [FlycoDialog_Master](https://github.com/H07000223/FlycoDialog_Master)(有material design的,有多item的,也有ActionSheetDialog从屏幕底端弹出的那种,风格清晰,自带弹出与关闭动画,不过依赖有点多)
- [NiftyDialogEffects](https://github.com/sd6352051/NiftyDialogEffects)(弹出的时候有各种动画)
### 漂亮的弧形顶部布局效果
- [ArcLayout](https://github.com/florent37/ArcLayout)(漂亮的弧形顶部布局效果)
### MusicPlayerView
- [Material_MusicPlayerView](https://github.com/amineghabi/Material_MusicPlayerView)(material design的音乐播放器)
### 密码解锁LockView
- [PatternLockView](https://github.com/aritraroy/PatternLockView)(漂亮的九宫格解锁)
- [LolliPin](https://github.com/OrangeGangsters/LolliPin)(为应用程序提供pin密码,包含数字和指纹识别)
### 评分
- [SmileyRating](https://github.com/sujithkanna/SmileyRating)(通过笑脸表情的变化来打分,挺有意思的)
### 输入框提示
- [官方原生](利用TextInputLayout and TextInputEditText来实现)
- [FloatingEditText](https://github.com/rafakob/FloatingEditText)(将TextInputLayout and TextInputEditText合为一个类,更方便的使用)
### 带阴影的ImageView
- [PaletteImageView](https://github.com/DingMouRen/PaletteImageView)(动态的提取图片的主要颜色并作为图片阴影的控件,还可以改变图片的cornerRadis)
***
<h2 id="2">动画</h2>
### 加载进度条LoadingView
- [AVLoadingIndicatorView](https://github.com/81813780/AVLoadingIndicatorView)(各式各样的ProgressBar)
- [NVActivityIndicatorView](https://github.com/ninjaprox/NVActivityIndicatorView)(各式各样的ProgressBar)
- [NumberProgressBar](https://github.com/daimajia/NumberProgressBar)(daimajia大神的带数字的横向ProgressBar)
### 动画
- [Android Transition Framework](https://github.com/lgvalle/Material-Animations)(安卓5.0出来的一个动画框架,很强大,该链接只是一个demo示例)
- [recyclerview-animators](https://github.com/wasabeef/recyclerview-animators)(RecyclerView相关动画)
- [AndroidViewAnimations](https://github.com/daimajia/AndroidViewAnimations)(daimajia大神的,各种动画,nice)
- [AndroidSwipeLayout](https://github.com/daimajia/AndroidSwipeLayout)(listview和RecyclerView的滑动删除、收藏)
- [lottie-android](https://github.com/airbnb/lottie-android)(该库可以通过Adobe After Effects做出动画效果然后导出为json文件,利用LottieAnimationView可以在安卓中加载为动画效果,不受限于安卓平台,动画效果可以很多)
- [Grav](https://github.com/glomadrian/Grav)(Android 粒子动画效果——多粒子运动)
- [FallingView](https://github.com/DingMouRen/FallingView)(雪花飘落效果,可以自定义大小、速度和密度)
### Toolbar
- [JellyToolbar](https://github.com/Yalantis/JellyToolbar)(果冻效果的Toolbar)
### 下拉刷新
- [FireworkyPullToRefresh](https://github.com/Cleveroad/FireworkyPullToRefresh)(带有烟花效果的下来刷新,不过背景素材有点单调)
***
<h2 id="3">开发常用</h2>
### 导航栏:
- [FlycoTabLayout](https://github.com/H07000223/FlycoTabLayout)(顶端和底部的导航栏,nice!自带indicator,可以设置数字或者小红点的消息提示,tab样式丰富-圆角矩形)
- [BottomNavigationView](https://developer.android.com/re
Android面试的相关资料(Java、Android、数据结构、算法、计算机基础)
需积分: 0 44 浏览量
更新于2023-12-27
收藏 405KB ZIP 举报
在准备Android面试的过程中,了解和掌握相关领域的核心知识点至关重要。这份资料涵盖了Java、Android、数据结构、算法以及计算机基础知识,这些都是面试中常见的考察点。以下将详细阐述这些关键领域的要点。
1. **Java**: 作为Android开发的基础,Java语言的理解和熟练应用是必须的。你需要熟悉Java语法,包括类、对象、接口、异常处理、多线程、集合框架(如ArrayList、HashMap)、IO流等。此外,深入理解面向对象设计原则,如 SOLID 原则,以及设计模式(单例、工厂、观察者等)也是面试官常问的问题。
2. **Android**: 对Android系统架构和组件的了解是基础,比如Activity、Service、BroadcastReceiver、ContentProvider等。你还需要掌握如何进行UI设计,包括布局管理器(LinearLayout、RelativeLayout、ConstraintLayout)以及自定义View。事件监听、生命周期管理、Intent机制、数据持久化(SQLite、SharedPreferences)和网络编程(HTTP、WebSocket)也非常重要。
3. **数据结构与算法**: 面试中,算法和数据结构是考察技术功底的重要部分。链表、栈、队列、树(二叉树、堆、平衡树如AVL和红黑树)、图等基本数据结构需熟练掌握。排序算法(快速排序、归并排序、冒泡排序等)、查找算法(二分查找、哈希查找)和图算法(深度优先搜索、广度优先搜索)也是常见问题。
4. **计算机基础**: 深入理解计算机系统原理,如操作系统(进程、线程、内存管理)、计算机网络(TCP/IP协议、HTTP协议)、编译原理、数据存储(硬盘、内存)等,这些都是面试中可能涉及的知识点。
5. **大数据、数据分析与数据挖掘**: 虽然在Android面试中不常直接涉及,但随着移动互联网的发展,对数据的处理和分析能力变得越来越重要。Hadoop、Spark等大数据处理框架,以及SQL和NoSQL数据库,还有机器学习、深度学习的基本概念和应用,可能会在讨论项目经验或未来发展方向时提及。
6. **Android开发常用库、View及Widget**: Android开发者通常会使用各种开源库来提高开发效率,例如Retrofit进行网络请求,ButterKnife进行视图绑定,Gson进行JSON解析,RxJava进行异步操作等。对于自定义View和复杂Widget的创建,如滑动选择器、下拉刷新控件等,理解和实践能力也是面试官关注的。
全面而深入地掌握这些知识点将极大地提升你在Android面试中的竞争力。不断学习和实践,结合实际项目经验,才能在竞争激烈的Android开发者市场中脱颖而出。记得复习这些内容,并尝试解决实际问题,以巩固你的技能。

极致人生-010
- 粉丝: 4678
最新资源
- 3生物组织中还原糖、脂肪、蛋白质的鉴定.doc
- 微信小程序-NAMI DEMO-赞赏(支付,登录).zip
- 简洁、易用、灵活的微信小程序组件库.zip
- 造价员考试《工程造价基础知识》重点知识点.doc
- 微信小程序 —— 新闻阅读器.zip
- 35kv输电线路施工组织措施及施工方案.doc
- 流动图书馆微信小程序前端.zip
- 重庆某污水处理厂施工方案.doc
- wanandroid 微信小程序.zip
- 浅析建筑施工企业索赔策略及措施.doc
- 一个简单的微信小程序购物车DEMO.zip
- sprnigboot和微信小程序实现点餐系统(全栈开发之微信小程序点餐).zip
- 微信小程序商城后台,微信小程序微店后台,接口基于FaShop.zip
- 基于 Apache ECharts 的微信小程序图表库.zip
- 德国威达种植屋面系统介绍.doc
- 油压机操作规程.docx