Android -- 开发中级工程师进阶
Posted Kevin-Dev
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android -- 开发中级工程师进阶相关的知识,希望对你有一定的参考价值。
中级工程师进阶
一、前言
初级工程师只要又快又好的完成任务就可以,中级工程师阶段不仅要又快又好,还要能独当一面。独当一面是要能独立负责一个项目,或者一个独立业务。并在遇到问题时可以独立解决,成为最熟悉自己负责业务的那个人。
中级工程师开始要注重代码规范,学习更底层的知识,一般还要指导初级工程师。同时要懂得更多职场规则,并做好长远的职业规划。
二、明确定位
现在你是中级工程师,但是你想当个高级工程师,所以,你就要给自己定个目标,即:我是要成为高级工程师的男人。有了这个定位,并且努力朝着这个目标去努力,然后内心深处就会有一个感觉,这个感觉就会成为你的 B 格,也就是说,虽然我现在是小菜,但是我不是一般的小菜,从而内心有一种自豪感,而这种自豪感会给你提供正能量。这一条是虚的,但是是有用的。
三、技术要求
1. 自定义 View
自定义 View 的三种方式:
-
组合基础控件
-
继承基础控件,做相应的更改
-
继承 View 或 ViewGroup
这种方式也是我们用的比较多的一种方式,这种方式比较自由,定制度高,需要实现下面几个方法
- onMeasure()
- onLayout()
- onDraw()
执行顺序为:onMeasure()->onLayout() -> onDraw()。
- View 事件分发机制:
自定义 View 的时候,我们需要响应用户的各种事件,这个时候我们就需要了解View的事件分发机制了。
更加详细 & 具体请看专栏:Android – 自定义 View
2. App 的几种架构
- MVC
- MVP
- MVVM
- Jetpack
更加详细 & 具体请看专栏:Android – 架构
3. 线程 & 进程
- Thread
- Runnable
- Handler
- AsycTask
- IntentService
- HandlerThread
- 线程池
更加详细 & 具体请看专栏:Android – 线程 & 进程
4. Android 动画
(1)android 中的 5 种基础动画:
- 平移动画
- 缩放动画
- 旋转动画
- Alpha 动画
- 帧动画
(2) 属性动画
补间动画很简单,但是它的场景使用很有限,它只能对一个 View 做动画。有的时候,我们需要更为精准的控制,我们要控制一个属性来做动画,这个时候属性动画就派上用场了。属性动画的几个相关类:
- ObjectAnimator
- ValueAnimator
- AnimatorSet
属性动画用得就比较广泛了,属性动画 + 自定义View 配置 Path和贝塞尔曲线 能做出很多复杂的漂亮的效果。
(3)矢量动画
-
svg
-
VectorDrawable
-
AnimatedVectorDrawable
矢量动画大家可能比较陌生,Android Studio
支持将一个 Svg 文件导入生成一个path 路径,用 VectorDrawable
和AnimatedVectorDrawable
来实现矢量动画。但是需要在 Android5.0
以上。
更加详细 & 具体请看专栏:Android – 动画
5 . Material Design 系列
Android 5.0 开始,Google 推出了 Material Design
设计规范,Android support
包中也加入了符合 Material Design
设计规范的各种控件:
-
Toolbar 的使用
-
AppbarLayout+CollapsingToolbarLayout
-
Behavior 相关:
- BottomSheetBehavior
- BottomSheetDialog
- SwipeDismissBehavior
- 自定义Behavior
-
TextInputLayout + TextInputEditText
-
TabLayout
-
BottomNavigationView
-
CardView 阴影卡片
-
Snackbar , FloatActionButton
利用这些控件,可以做出很多符合 Material Design 设计规范的效果和动画。
更加详细 & 具体请看专栏:Android – Material Design
6 . Android 多媒体
多媒体相关也是 Android 开发中比较重要并且较难的一块了,它设计到相机、视频、音频相关的开发。
6.1 相机开发
- 使用自带的相机APP 拍照
- 系统相册选择照片
- 系统相机或相册获取的照片裁剪
- 使用相机API 开发相机:
(1) Android 5.0 (API 21 )以下 使用Camera API
(2) Android 5.0 以上使用 Camera2 API
-
自定义相册开发
-
自定义裁剪界面
6.2 Android 视频开发
-
视频播放
MediaPlayer
VideoView -
视频编解码
6.3 Android 音频开发
-
AudioPlayer
-
音乐播放器
更加详细 & 具体请看专栏:Android – 多媒体
7. 性能优化
- 布局优化
- 绘制优化
- 启动速度优化
- 内存优化
- 稳定性优化
- 包体积优化
- 耗电优化
更加详细 & 具体请看专栏:Android – 性能优化
8. 学习了解开源库
Github 绝对是我们程序员的宝贵财富,上面有各种各样的开源库,只有你想不到的,没有你找不到的。各大公司也有各种各样的开源的解决方案。
以下是比较流行的一些框架:
图片加载框架:
- Universal-Imageloader
- Picasso
- Glide
- Frecssco
网络相关框架:
-
Retrofit
-
Okhttp
-
Volley
RxJava :
-
RxJava
-
RxAndroid
数据库方面:
-
GreenDao
-
OrmLite
-
Realm
上面都是当前流行的一些框架。尤其是 RxJava , 当你看到 Github 上各种各样的 RXxxx 时,你就明白RxJava 有多火。(加个Rx感觉逼格都高了一档)。
更加详细 & 具体请看专栏:Android – 开源库
更加详细 & 具体请看专栏:Android – RxJava
9. Kotlin
-
数据容器(数组)
-
数据容器(集合)
-
构建第一个 Android App
-
函数
-
Lambda 表达式
-
条件控制
-
循环控制
更加详细 & 具体请看专栏:Android – Kotlin
四、学会造轮子
当我们有了一定的积累之后,试着去造轮子吧。可以是一个简单的 View、炫酷的动画效果、一个常用的组件抽取。把这些常用的功能封装成一个库。当以后实现相似的功能的时候,我们就可以避免重复搬砖了。
如果条件允许,我们还可以将它开源到 Github ,有利于他人学习和使用,开源是一件利人利己的事。对于他人而言:可以借鉴思路、或者在项目中直接使用。对于自己而言:使用者发现bug反馈给我们,修复 bug、升级版本,本生也是一个提升自己的机会。同时还能相互之间交流,吸取经验。
如果你还没有开始写一个开源库,那么现在就尝试着写一个吧 。
五、收集自己的工具类库
你现在就可以看看你所做的项目,里面是不是有一个 utils 包 ?不用看了,肯定有,里面有你使用的各种各样的工具类。
也许你会跟我有同样的感觉,一些常用的操作如,读写文件、Bitmap 转换、日期格式化等等。当我们使用的时候,我们很难一下子就将它写出来,我们可能会记得以前有个项目使用过,然后去翻以前的项目,有的可能去 google 下,拷贝一段代码。
这些都是比较常用的功能,并且代码相对固定,我们可以将我们平时使用的工具类收集到一个单独的类库中。然后将其分好类:
-
文件操作相关 FileUtils
-
Bitmap 操作相关 BitmapUtils
-
日期格式化相关 DateUtils
上面只是举了三个例子,所有的工具类都可以收集。
当你工作 3 年或者 5 年之后,你再来看一看这个库,或许就会不一样了。
六、学会思考和总结
当我们学习一个功能或者解决一个问题的时候,我们可以把整个过程梳理总结一下,如果我们学习了或者解决问题之后不做思考和总结,那么过一段时间或许就全部忘了。好记性不如烂笔头,梳理一下,记一个笔记或者写一篇博文。这样做有很多好处:
- 有利于加深我们的记忆。
- 脉络梳理清楚了,有助于我们更深刻的理解。
- 就算以后忘记了,再来翻一下自己的笔记或者博客,再看一遍,就又想起来了。
- 还可以帮助其他人,避免遇到相同的问题。
当我们做完一个项目的时候,留给自己一些时间做一些梳理和总结吧,如果你还没有这样的习惯,那么就从现在开始吧!总之,形成自己的知识体系很重要。
以上是关于Android -- 开发中级工程师进阶的主要内容,如果未能解决你的问题,请参考以下文章
阿里技术官纯手打架构师进阶宝典全网首发,一条龙理论+项目齐飞
IT:后端进阶技术路线图(初级→中级→高级)后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略