Android学习最佳路线(2)-程序员宅基地

技术标签: 程序员  学习  android  

  • 事件分发:弹性滑动、滑动冲突等;

  • 玩转View:View的绘制原理、各种自定义View;

  • 动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理;

  • 懂性能优化、熟悉mat等工具

  • 懂点常见的设计模式

##学习方法
阅读进阶书籍,阅读Android源码,阅读官方文档并尝试自己写相关的技术文章,需要有一定技术深度和自我思考。在这个阶段的学习过程中,有2个点是比较困扰大家的,一个是阅读源码,另一个是自定义View以及滑动冲突。

如何阅读源码呢?这是个头疼的问题,但是源码必须要读。阅读源码的时候不要深入代码细节不可自拔,要关注代码的流程并尽量挖掘出对应用层开发有用的结论。另外仔细阅读源码中对一个类或者方法的注释,在看不懂源码时,源码中的注释可以帮你更好地了解源码中的工作原理,这个过程虽然艰苦,但是别无他法。

如何玩转自定义View呢?我的建议是不要通过学习自定义view而学习自定义view。为什么这么说呢?因为自定义view的种类太多了,各式各样的绚丽的自定义效果,如何学的玩呢!我们要透过现象看本质,更多地去关注自定义view所需的知识点,这里做如下总结:

  • 搞懂view的滑动原理

  • 搞懂如何实现弹性滑动

  • 搞懂view的滑动冲突

  • 搞懂view的measure、layout和draw

  • 然后再学习几个已有的自定义view的例子

  • 最后就可以搞定自定义view了,所谓万变不离其宗

大概再需要1-2年时间,即可达到高级工程师的技术水平。我个人认为通过《Android开发艺术探索》和《Android群英传》可以缩短这个过程为0.5-1年。注意,达到高级工程师的技术水平不代表就可以立刻成为高级工程师(受机遇、是否跳槽的影响),但是技术达到了,成为高级工程师只是很简单的事。

##技术要求:

  • 稍微深入的知识点

AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等

  • 书籍推荐

《Android开发艺术探索》、《Android群英传》

高级工程师
为了成为Android资深工程师,需要学习的东西就更多了,并且有些并不是那么具体了,如下所示:

  • 继续加深理解”稍微深入的知识点“中所定义的内容

  • 了解系统核心机制:

  1. 了解SystemServer的启动过程

  2. 了解主线程的消息循环模型

  3. 了解AMS和PMS的工作原理

  4. 能够回答问题”一个应用存在多少个Window?“

  5. 了解四大组件的大概工作流程

  • 基本知识点的细节
  1. Activity的启动模式以及异常情况下不同Activity的表现

  2. Service的onBind和onReBind的关联

  3. onServiceDisconnected(ComponentName className)和binderDied()的区别

  4. AsyncTask在不同版本上的表现细节

  5. 线程池的细节和参数配置

  • 熟悉设计模式,有架构意识

##学习方法

这个时候已经没有太具体的学习方法了,无非就是看书、看源码和做项目,平时多种总结,尽量将知识融会贯通从而形成一种体系化的感觉。同时这个阶段对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习。关于设计模式的学习,最近一本新书推荐给大家《Android 源码设计模式解析与实战》,既可以学习设计模式,又可能体会到Android源码中的设计思想,我最近也在阅读此书。

##技术要求:

  • 稍微深入的知识点

  • 系统核心机制

  • 基本知识点的细节
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

结尾

最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

高级UI,自定义View

UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。

不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

3)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2401_84121846/article/details/138098198

智能推荐

tensorflow linux多卡训练_用 Windows 电脑训练深度学习模型?超详细配置教程来了...-程序员宅基地

文章浏览阅读155次。点击上方蓝色小字,关注并星标,更多干货,第一时间送达转载自公众号:AI有道虽然大多数深度学习模型都是在 Linux 系统上训练的,但 Windows 也是一个非常重要的系统,也可能是很多机器学习初学者更为熟悉的系统。要在 Windows 上开发模型,首先当然是配置开发环境。Kaggle Master 及机器学习实践者 Abhinand 立足于自己的实践,给出了一种简单易行的 Window..._windows11如何基于linux进行模型训练

Vector如何变长_vector声明 变长-程序员宅基地

文章浏览阅读123次。关于c++11中vector如何增长_vector声明 变长

Java获取/resources目录下的资源文件方法_java获取resources下的文件-程序员宅基地

文章浏览阅读1w次,点赞16次,收藏34次。Java获取/resources目录下的资源文件的9种方法_java获取resources下的文件

做游戏美术师必须掌握哪些基本知识_游戏美术需要掌握的能力-程序员宅基地

文章浏览阅读399次。很多正在游戏美术路上前行的新手小伙伴们都有两个疑问:现阶段自己达到了怎样的水品,以及学到怎样的程度才能进入公司胜任岗位。小编整理了一下身为游戏美术师,你必须达到的高度。看看你走到哪一步了?1、原画师需要有素描和色彩基础,逐步提升为概念设计师。原画部门当中有美术宣传组,要求尤其高,必须有画插画的基础和概念设计的功底。作为原画师需要懂得运用photoshop和paint软件与电子手绘板来创作,熟练掌握电脑CG绘画语言、色彩原理,由传统绘画方式过渡到电脑绘画方式,最终理解游戏美术光影、色彩、材质表现技能。_游戏美术需要掌握的能力

AVL树详解-程序员宅基地

文章浏览阅读1.6k次。AVL树、单旋转、双旋转_avl树

Qt编译静态链接库和动态链接库(Windows&Linux)_qt 动态库编译-程序员宅基地

文章浏览阅读1k次,点赞23次,收藏11次。最近需要在Linux中编译相关程序动态库,对相关经验总结。使用到的工具为Qt5.13.2。_qt 动态库编译

随便推点

详解双向链表的基本操作(C语言)_c语言双向链表的移动功能-程序员宅基地

文章浏览阅读4.5w次,点赞417次,收藏1.7k次。1.双向链表的定义上一节学习了单向链表单链表详解。今天学习双链表。学习之前先对单向链表和双向链表做个回顾。单向链表特点:  1.我们可以轻松的到达下一个节点, 但是回到前一个节点是很难的.  2.只能从头遍历到尾或者从尾遍历到头(一般从头到尾)双向链表特点  1.每次在插入或删除某个节点时, 需要处理四个节点的引用, 而不是两个. 实现起来要困难一些  2.相对于单向链表, 必然占用..._c语言双向链表的移动功能

【哈士奇赠书活动 - 17期】-〖uni-app跨平台开发与应用从入门到实践〗-程序员宅基地

文章浏览阅读5.1k次,点赞87次,收藏64次。【哈士奇赠书活动 - 17期】-〖uni-app跨平台开发与应用从入门到实践〗_uni-app跨平台开发与应用从入门到实践

VMware要不要装在固态SSD上,虚拟机系统文件要不要放固态SSD上,虚拟机伤不伤固态SSD...-程序员宅基地

文章浏览阅读7.7k次。先说结论:VMware建议装在固态上运行快,系统文件最好放在机械硬盘上(有钱除外),虚拟机会伤固态。  今天在学淘淘商城中的搜索项目,克隆了一个虚拟机,这个虚拟机开机贼慢,令人无法忍受,我觉得我再也受不了我那坑爹的HHD了。我笔记本上有两块硬盘,一块是东芝的HHD还有一块是国产的SSD,HHD上放的是一般的可以随时替换的数据,SSD上放的系统和开发软件和它们的数据。相信大家已经知道S..._vmware软件装固态还是机械

openwrt之wifi,以及mac80211_openwrt mac80211-程序员宅基地

文章浏览阅读6.6k次。IEEE 802.3 is a family of communication protocols comprising Layer 1 and Layer 2 Sublayer MACIEEE 802.3 has an official name: EthernetIEEE 802.11 is a family of communication protocols a_openwrt mac80211

百度地图瓦片下载工具(仅供学习)-程序员宅基地

文章浏览阅读9.3k次,点赞8次,收藏28次。百度地图瓦片下载工具执行命令:java -jartilestool-1.0.0-SNAPSHOT.jar 启动工具输入网址访问,账密:admin/admin点击“区域下载”框选想要的下载范围,以双击左键结束选择需要下载的瓦片级别点击“任务信息”查看下载任务点击“离线演示”检查下载的瓦片情况执行下载后,会自动生成两个目录,第一个目录用于保存下载进度信息的,第二个目录保存瓦片的这是默认配置,如果无该文件将以下面的默...._百度地图瓦片下载

GD32F407V**全解介绍_gd32f407 id的含义-程序员宅基地

文章浏览阅读213次。GD32F407V**全解介绍,值得大家学习_gd32f407 id的含义

推荐文章

热门文章

相关标签