成为一个优秀的Android开发者,需要必备哪些技术&工作技能?

但是请走出你自己的舒适区,和其他开发者发生更多的联系和沟通吧。当你参加开发者会议,社交活动以及和其他有着和你共同兴趣爱好的开发者一起谈论问题的时候,你会学习到很多很多的东西。

24. 熟悉使用键盘快捷键

试着养成一个尽可能不使用你的鼠标的习惯。在 Android Studio 上几乎所有的操作都可以由快捷方式完成。

这会显著地减少你的开发时间并提升你的工作流程。记住一些键盘快捷键可能会在初始阶段花上一些时间,但是从长远时间来看,它会有助于你进入一个真正无鼠标的工作流程状态。

25. 尝试着至少每周学会一个安卓相关的知识

在安卓大千世界里,当你在一开始踏入的时候,有太多需要学习和了解的东西会让你感觉猝不及防。但是如果你给自己下定决心,每周学习一个安卓相关的知识点,那么事情会变得更加容易。

做一个列表记下所有你不会的东西,给他们标上先后顺序和重要性,在接下来每周里开始学习,并一步一步地完成它们。那么在几个月后,你会发现你已经远远不是那个刚开始的自己了。

26. 把所有浪费你时间的事情自动化

我们作为工程师,生来就喜欢偷懒,总是想着找到一种简便的方式来完成一份烦人的工作。

所以,如果你在一天里需要做一些重复且厌烦的事情的时候,尝试着考虑把它自动化吧。这会累计让你每周都节约不少时间,从而可以用来花在做其他高效率以及有用的事情上,并能够减少你的焦虑感。

27. 考虑同时运行两个不同版本的 Android Studio

保持使用一个稳定版本的 Android Studio 用来做你每天需要做的那些很重要的事情。但是也同时考虑保持安装使用一个最新候选版本的 Android Studio 。

有时候早期版本中会有很多令人兴奋的新特性,那都是你很乐意去尽可能尝试使用的。

28. 仔细审查所有你一次性添加的第三方类库

在我们需要的时候我们都喜欢使用添加类库,这当然没问题。但是,要养成一个习惯,审查你所一次性添加的所有的第三方类库,并且移除那些你不再需要的库。

如果你仅仅是使用一个类库的一小部分,那么考虑把它分解出来而不是使用整个库。有那么一个可能性的事件是:审查有时候也会帮你更新那些急需更新的旧类库。

29. 学习更好的方法用来重构遗留代码库

不要犯那种一次性重构一个完整的庞大代码库的错误。这样做会把你陷入到没有退路的困境之中。

考虑重构你现在就需要使用的部分代码库,然后慢慢地延伸扩展到你所需要的其他部分。同样,考虑在碰到其他代码之前为你所需要重构而又怀疑会破坏现有功能的那部分写一些测试。

30. 经常在低端设备上进行开发和测试

如果你想要像专业人士一样开发应用程序,那么不要犯那种总是在高端设备上开发并测试程序的错误。一般来说,我们开发者手头拥有高端的旗舰产品,并且使用它来做应用的开发和测试用。但是这完全正是你需要克制的地方。

尝试着在市场上买点便宜的、低端的设备,并养成在上面开发应用程序的习惯。你将会看到你的应用的一大堆缺陷,而你之前并不知道它们的存在。

31. 买你所能负担起的最好的设备

不要犯那种购买一个低端的工作用机器来做每天工作的错误,那会有损你的开发经验。

考虑使用一个 Mac (超越 Windows )来做开发。你会爱上它那简介而又稳定的特性的。

从现在开始,如果你要买一台苹果笔记本,那么考虑买一个最合适你自己的版本。几百块(美元,编者按 )的额外开销并不会伤害你,反而你会感谢自己做下了这个决定的。

那么一个优秀的Android开发者,需要必备哪些技术?

Android

作为好的安卓开发,首先明确Android是前端,重点是UI,做出稳定的应用是关键。

1.做出稳定的应用是关键。

作为好的安卓开发,首先明确Android是前端,重点是UI,掌握自定义view。

2.建立知识体系

很多人对Android属于一知半解的状态,鼓励去Stackoverflow之类的地方寻找问题的解决办法,但务必了解内在的机理,达成对知识理解的体系,当你建立了一个体系,很多问题就不在复杂,软件开发是precise engineering,不是凭运气。

举个例子,面试的时候,我喜欢挑战面试者一些很离谱的题目,比如,在一个EditText里面,你输了一个字母“A”,这个A是经过了多少安卓特有的流程才能显示到屏幕上的。 初看这是个无聊的问题,大家往往会觉得,这是理所当然的事情,其实不然,这个问题考查了你对view layout/measure的理解,对rendering的理解,对drawing的理解,如果面试者能答出来这个问题,那我一定不担心你会写出卡顿的安卓代码。

刚开始做Android开发的时候,我也答不出这个问题,但几年之后,渐渐养成了一个体系,充分贯通这些“不必要”的细节,我私以为这是个资深程序员必备的条件,什么性能优化都是水到渠成的事情

至于其他的技术,比如video streaming,取决于你是想成为某个领域的专家,还是解决问题的能手,如果是后者,你需要良好的数据结构+算法+读代码+读文档的能力,在短时间内了解优秀的解决办法,然后加以利用,做软件工程不是读PhD,先把需求解决了,再看怎么提高。

3.数据结构算法,源码,原理机制

很多人推荐了各种书,对于Android开发,很好的资源莫过于Google的官方视频,他们指引了正确的方向让你深入了解Android的UI构建和运行机制。见过许多写了很多app,但是不明白其中要点的程序员,我只觉得失望并担忧。当然,既然要做前端UI,黑魔法少不了,学习日新月异的编程思想,Dagger/React等等

如果身在团队中,建立良好的学习氛围,鼓励交流,同时在被产品经理和设计师折磨的时候,理解他们,帮助他们理解Android开发特点

新技术更新很快,很多人担心跟不上被淘汰,其实大可不必,Android只是个解决问题的工具,你需要一个时刻准备用这个工具解决问题的知识体系,换了一个工具也是一样的。比如跨平台开发技术都是殊途同归,手机没被淘汰,Android开发就不会被淘汰。

另外关于NDK开发,音视频,微信小程序,Flutter跨平台技术等等。其实严格来说已经可以算独立出Android的技术面了。但是却又息息相关。因为企业招一个Android开发,肯定希望他能同时掌握其它的技能,减少用人成本。所以这些技术也需要去学习掌握。

Java

**一个优秀的Android开发者,一定有扎实的Java基础知识。**今天给大家分享一下我们必须掌握的Java知识点。

设计模式

  • Builder模式:比如AlertDialog.Builder;

  • 适配器模式:比如GridView、ListView与Adapter;

  • 命令模式:比如Handler.post;

  • 享元模式:比如Message.obtain;

  • 单例模式:比如InputMethodManager.getInstance;

  • 观察者模式:比如ContentObserver;

  • 抽象工厂模式:比如BaseActivity;

深入Java泛型

  • 泛型的作用与定义

  • 通配符与嵌套

  • 泛型上下边界

  • RxJava中泛型的使用分析

注解深入浅出

3.1 自定义注解

  • 自定义注解与元注解

  • 注解参数与默认

3.2 注解的使用

  • APT,编译时注解处理器

  • 插桩,编译后处理筛选

  • 反射,运行时动态获取注解信息

3.3 Retrofit中的注解

并发编程

并发就不必多说了,面试必问,Glide/Okhttp等框架自己看一眼就知道里面是如何大量使用的。

4.1 线程共享和协作

  • CPU核心数,线程数,时间片轮转机制解读

  • synchronized、Lock、volatile、ThreadLocal如何实现线程共享

  • Wait,Notify/NotifyAll,Join方法如何实现线程间协作

4.2 站在巨人肩上操作CAS

  • CAS的原理

  • CAS带来的ABA问题

4.3 仅会用线程池是不够的

  • Callbale、Future和FutureTask源码解读

  • 线程池底层实现分析

  • 线程池排队机制

  • 手写线程池实战

  • Executor框架解读实战

4.4 Android AsyncTask原理解析

数据传输与序列化

  • Serializable原理

  • Parcelable接口原理解析

  • Json

反射与类加载

6.1 反射基本概念与Class

  • 三种获取Class对象的方式

  • 获取构造器实例化对象与属性信息

  • 包信息和方法

  • Hook技术动态编程

6.2 ClassLoader类加载器

  • 动态代理模式

  • AndroidDavilk与ART

  • PathClassLoader、DexClassLoader与BootClassLoader

  • 双亲委托机制

JVM核心原理

7.1 垃圾回收器机制

  • 对象存活及强、弱等各种引用辨析

  • 快速解读GC算法之标记-清除、复制及标记-整理算法

  • 正确姿势解读GC日志

7.2 内存分配策略

  • JVM栈桢及方法调用详解

  • JMM,Java Memory Model

7.3 Dalvik虚拟机

Java语言具有跨平台特性,就是由JVM实现的。JVM将运行时数据区分为线程私有和共享数据区两大类。其中线程私有的数据区包含程序计数器、虚拟机栈、本地方法区,所有线程共享的数据区包含 Java 堆、方法区,在方法区内有一个常量池。

Java本身有一个很好的管理内存的机制—— GC。然而,GC却经常会遇到无法回收的内存,即内存泄漏,内存抖动,结果可能是OOM。

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

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

点击这里免费领取吧!

1710701534891)]
[外链图片转存中…(img-etTVhrDM-1710701534891)]
[外链图片转存中…(img-XqAn6nAW-1710701534892)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-HZUxGflQ-1710701534892)]

[外链图片转存中…(img-IRYJprvN-1710701534892)]

[外链图片转存中…(img-QAPkgijW-1710701534893)]

点击这里免费领取吧!

  • 28
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值