曾听过很多人说Android学习很简单,做个App就上手了,工作机会多,毕业后也比较容易找工作。这种观点可能是很多Android开发者最开始入行的原因之一。

在工作初期,工作主要是按照业务需求实现App页面的功能,按照设计师的设计稿实现页面的效果。

在实现的过程中,总是会被提如下的需求:
这个字能不能大点或者醒目点儿?
颜感觉颜色和设计稿有差别,能不能再调调?
怎么老是崩溃啊,行不行啊?
......

所以,工作过一年后你会发现,自己的工作重点就是将找各种各样的组件、框架,拖拖拽拽,改改样式。在极端情况下出现了问题后(比如部分机型上崩溃,加载图片慢),也不知道该如何解决!都不好意思说自己是搞技术的。

造成这种局面的有两种原因:

所开发的App功能要求并不复杂,在性能上呢,也不需要极致的追求;自己的意识不够,不知道如何从平凡的工作中提炼可优化的点,在向上提升方面也没有完整的规划。

从自身规划的角度讲,技术上的进阶分如下几个阶段:

做好业务需求的功能。这个是初级程序员就应该有的能力。解决极端情况下的技术问题,比如性能优化,OOM等。稍有点规模的公司,肯定都会遇到这种问题,比如上文中说的App在部分机型上崩溃、页面加载不出来等。只是大部分程序员会觉得难以复现,或者是因为小概率事件而忽略了。在忽略这些问题的过程中,也放弃了进一步提升的可能性。还有一部分程序员是看到了这些问题,但一直不知道怎么解决,因为这些问题的产生基本都是要往底层框架去找原因,而平时只关注上层的业务逻辑代码,因而没有深入研究底层的原理,导致心有余而力不足。在开发框架和效率上做文章。举个例子,很多程序员说自己的精力都在和产品的撕逼中浪费了,但有没有想过,能够通过技术手段将自己从繁杂的无技术含量的工作中解救出来?比如是否能够做到只编写一次代码,或者改个配置参数就能够做到在不同平台上运行。更高的要求是,能否将这些方案做成通用框架或产品。

上面列举的几个阶段,首先要从思考方式上去逼迫自己不断地逼迫自己,不要偷懒。其次,要想按照上述阶段发展,还需要落在实处,在具体的技术体系中不断的学习。

在体系化的学习过程中,博客、书籍、视频课程都是较好的学习手段。

那么首先,让我们先来看看学习安卓要接触到哪些体系!

  • Java语言进阶与Android相关技术内核

学习JAVA是因为Android应用是由Java语言进行开发的,SDK也是由Java语言编写,所以我们要学习java语言。另外,虽说kotlin语言得到了Android官方的热推,但是kotlin也是编译成了java语言再运行的。对于Android来说,只要SDK没有用kotlin重写,那么Java语言是都需要学习的。而且Android apk的后台服务器程序大概率是java语言构建,所以学习java也是一种必然。

  • App开发框架知识体系(app亦对象)

这块知识是现今使用者最多的,我们称之为Android 2013~2016年的技术,但是,即使是这样的技术,Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道,天天在复制这些代码;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。所以我们需要从新的角度去分析这些知识点,深入研究他们,要学习源码,模仿源码,然后再hook源码,这样才能说自己懂这块的知识。这些都是做Android开发,做高级工程师的基础。

  • 360° Android app全方位性能调优

一个app的性能好不好我们需要从两个层面努力。第一个层面:从写代码的时候就需要注意,让自己的代码是高性能高可用的代码,这个过程是书写高性能代码;第二个层面:对已经成型的代码通过工具检查代码的问题,通过检查到的问题来指导我们进行代码的删改,这个过程被称为调优。

  • Android前沿技术

现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较 666 的技术,这些技术我们称之为前沿技术。他们一般包含热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。

  • NDK 模块开发

音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以Android NDK技术已经是我们必备技能了。

  • 混合开发:Flutter

flutter现在已经逐渐变成了主流的混合开发框架,另外由于阿里系的强大存在,导致阿里 系的公司都在用Weex混合架构,这些都是一个Android工程师开拓视野,走向未来必不可少的基本技能

== (完整大纲图会同资料一起免费发送给大家

有了体系,就当然少不了与其相关的视频以及资料,小编把文章中提到的知识思维导图的技术点都有在群里分享,有录制成视频的供大家免费下载,希望能够帮助一些在,所以我在这免费分享跟体系相关资料给大家。希望在这些资料中都有你需要的内容。

2019.9.24资料全面更新

----------------------------------------------------------------------------

领取方式点击链接:https://mp.toutiao.com/profile_v3/index 私信 [资料] 即可!

Android开发学习了这些,上帝都淘汰不了你的更多相关文章

  1. Android开发学习之路-RecyclerView滑动删除和拖动排序

    Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...

  2. Android开发学习路线图

    Android开发学习方法: Android是一个比较庞大的体系,从底层的Linux内核到上层的应用层,各部分的内容跨度也比较大.因此,一个好的学习方法对我们学习Android开发很重要. 在此建议, ...

  3. Android开发学习总结(一)——搭建最新版本的Android开发环境

    Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是 ...

  4. Android开发学习之路--Android Studio cmake编译ffmpeg

      最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...

  5. Android开发学习之路--网络编程之xml、json

    一般网络数据通过http来get,post,那么其中的数据不可能杂乱无章,比如我要post一段数据,肯定是要有一定的格式,协议的.常用的就是xml和json了.在此先要搭建个简单的服务器吧,首先呢下载 ...

  6. Android开发学习之路--Activity之初体验

    环境也搭建好了,android系统也基本了解了,那么接下来就可以开始学习android开发了,相信这么学下去肯定可以把android开发学习好的,再加上时而再温故下linux下的知识,看看androi ...

  7. Android开发学习之路--Android系统架构初探

    环境搭建好了,最简单的app也运行过了,那么app到底是怎么运行在手机上的,手机又到底怎么能运行这些应用,一堆的电子元器件最后可以运行这么美妙的界面,在此还是需要好好研究研究.这里从芯片及硬件模块-& ...

  8. Android开发学习之路--MAC下Android Studio开发环境搭建

    自从毕业开始到现在还没有系统地学习android应用的开发,之前一直都是做些底层的驱动,以及linux上的c开发.虽然写过几个简单的app,也对android4.0.3的源代码做过部分的分析,也算入门 ...

  9. Android开发学习路线的七个阶段和步骤

    Android开发学习路线的七个阶段和步骤           Android学习参考路线     第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和St ...

  10. android开发学习笔记000

    使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...

随机推荐

  1. solr配置同义词,停止词,和扩展词库(IK分词器为例)

    定义 同义词:搜索结果里出现的同义词.如我们输入”还行”,得到的结果包括同义词”还可以”. 停止词:在搜索时不用出现在结果里的词.比如is .a .are .”的”,“得”,“我” 等,这些词会在句子 ...

  2. 【视频开发】【计算机视觉】相机标定(Camera calibration)《二》

    简介 摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵 P 的过程,下面相关的部分主要参考UIUC的计算机视觉的课件(网址Sprin ...

  3. cad问题小百科 持续更新

    一些浩辰的问题移步去: 浩辰问题        (浩辰可能和桌子具有相同的问题,所以这篇你可能还是要看 cad2007遇到了这种情况 安装问题安装CAD出现C++2005问题的解决方法,出现此问题,原 ...

  4. xcode添加一个真机设备

    1.首先先安装Xcode并且运行Xcode,点击左角菜单Xcode -> Preferences:点击Accounts+号弹菜单点击Add Apple ID:弹框输入账号密码普通账号行需要发者账 ...

  5. CSS3手机端字体不能小于12号的方法

    CSS3手机端字体不能小于12号的方法 <pre> .xiaoyu12fontsize{ -webkit-transform-origin: 0% 0%; -webkit-transfor ...

  6. linux ffmpeg 源码安装教程

    AMR格式是智能手机上的常用音频文件格式,比MP3格式的压缩比大.同样时长的AMR文件大概是MP3的十分之一,所以在移动互联项目中应用比较广泛.但目前AMR格式在个人电脑上应用较少,所以目前大部门播放 ...

  7. 【简记】修改Docker数据目录位置,包含镜像位置

    为啥要改? Docker安装后默认下载的位置在/var/lib/docker ,如果/var分区没有独立分出来,Linux下默认是与/根分区在一起.一般我们装Linux系统的时候,除了做邮件服务器外, ...

  8. 【题解】选数字 [51nod1354]

    [题解]选数字 [51nod1354] 传送门:选数字 \([51nod1354]\) [题目描述] 共 \(T\) 组测试点,每一组给定一个长度为 \(n\) 的序列和一个整数 \(K\),找出有多 ...

  9. 记录一次使用NPOI遇到的问题

    在.net 下一般使用NPOI操作Excel相信大家都不陌生,但是本人在操作过程中遇到一个比较奇怪的问题,特写此博客记录与大家分享. 例子是使用Winform,点击按钮时弹出打开文件对话框,然后选择文 ...

  10. Eclipse集成Git做团队开发:分支管理

    在日常开发工作中,我们通常使用版本控制软件管理团队的源代码,常用的SVN.Git.与SVN相比,Git有分支的概念,可以从主分支创建开发分支,在开发分支测试没有问题之后,再合并到主分支上去,从而避免了 ...