系统架构部分的总结和展望
来源:互联网 发布:apache cxf 3.1.8下载 编辑:程序博客网 时间:2024/06/05 06:13
快到年底了想想也是比较激动,因为眼看一年就要过去了。最近也是利用闲暇时间一直在补文章,因为明年有新的学习计划,年后可能也不会再分享 Android 方面的知识,在这之前希望能把视频同步的一些文章补上。记得刚开始有人跟我说:你写的这些东西我都会 。。。(具体记不清了,大致的意思就没必要写这些东西,不要误人子弟)
从未想过要去扰乱他人的心志,去动摇自己的决心。我只是想用一种方式记录一下而已,这些内容可能是比较适合中小型企业,1~3 的工作经验。但当很多人一起学习一起探讨的时候,对于技术的提升还是比较快的,至少现在我感觉我的技术没有去年那么菜了。
明年可能会分享一些关于 NDK 和智能识别方面的知识,但目前我们应该先把 Android 应用层方面的基础知识打牢。很多人会认为 NDK 很难,可能是因为 C 和 C++ 不太会的缘故;也有很多哥们有错觉,觉得会 NDK 的人一定是高级程序员,什么是低级什么又是高级?我其实不知道。我知道的就是会 NDK 还蛮简单的,但是要精通就不知道了。
NDK 和智能识别这一块我也不熟,只是把他作为我明年的主要学习方向。我们都喜欢追求上层心法,浮躁的情况下很难静下心来,如果我们是从事 Android 应用层开发,建议还是应该把 Java 基础和 Android 基础先学好,这里罗列一下从事 Android 应用开发需要知道的一些基础知识点,当然仅代表个人的观点,有不同意见你可以评论评论:
1.知识方面
1.1 基本的数据结构和算法: 线性表,栈和队列,数,二叉数,图,比较简单的数据结构,会一些常用 Java 集合的实现原理,像 HashMap 和 ArrayList 这些要会自己手敲,因为相对于 BAT 这些企业我们有时需要理解其细节,比如上次给大家讲解的阿里面试题 HashMap 的容量大小为什么是 2 的幂次?这些都涉及到细节。要会一些基础的算法,像归并,递归,穷举,贪心,回溯,时不时的去刷一些算法题。
1.2 Android 的自定义 View 特效方面: 这一部分相对来说是初学者比较感兴趣的内容,我记得刚自学 Android 那会,花了大概半年多的时间才勉强上手,个人觉得两个地方比较难,第一是事件分发,第二方面是像三角函数,波形,矩阵,微积分等等跟数学相关的一些特效。
1.3 Android FramWorker层源码: 这一部分的知识,严格意义上来讲当我们点击 AS 上面那个绿色运行的按钮后,就该明确的知道后面的内容,比如 AS 是怎么打包的,打包后像 META-INF 、resource.arsc 等等这些文件的作用。知道应用是怎么安装上去的,怎么 Zygote 进程的,怎么启动的,Activity是怎么启动的,怎么压栈弹栈的,怎么绘制界面的,资源怎么加载的等等,有一本书可以推荐 《Android系统源代码情景分析》,每天啃一啃,啃个大半年。
1.4 设计模式和第三方开源库源码: 设计模式也有一本书可以推荐《Android源码设计模式解析》,我在视频讲解中带大家看的是 pdf 版本,希望大家支持作者购买正版实体书籍。看过之后可能还是一知半解,也可能会忘记,这个就需要去实战,自己去分析主流的一些第三方的来源库,这里再推荐一本书 《JakeWharton 开源库》
1.5 性能优化和重构: 经验不是很多。
这些东西你会吗?会一点皮毛吧,还在不断学习中,严格意义上来讲不会。那请问要学多久呢?我记得我之前在 CSDN 潜伏写文章写了四年多(那时没人看)。如今依旧从未停止过,还没想好什么时候停止,也不知道什么时候才能停止。关键我们是否选择开始,至于终点是何方早已不重要。
2.其他方面
记得大四有个老板请我吃饭,很荣幸有大佬请我吃饭,是酒鬼酒长沙的总代理,而我是个写程序的。不知道怎么就搞到一块去了,可能是因为我们都喜欢研读《圣经》。当时他有一句大概是这么说的,一个好的销售员或许每年能够为我创造 10 万的纯利润,但我更喜欢一个能够带团队的人…… 学习知识只是一个部分,团队协作,别人不想做的我去做,别人不能解决的我能解决,不去抱怨,学会积极乐观还是比较重要。
最好我们还能有一个比较突出的方面,比如我们自定义View玩得贼溜,又或者在对音视频特别感兴趣,又或者对 Android 源码特别感兴趣,或对热修复插件化,智能识别或者其他,就可以每天朝一个点只研究这些。很多人跟我说太累了,学了很多都用不上,但当我们开黑的时候就不累吗?活着本来就很累。自从我看到我大学室友快乐并痛着,我不想成为那样。
怎么检验我们到底学得怎么样?我们可以找一些大型企业像 BAT 或者说薪资相对比较高的一些岗位面试题做一做,如果我们能够做出个 7、8 成以上,面试笔试都能答上来,我觉得可能差不太多了,当然具体我也不知道,没去过,没经验。我知道的是我们自己搭的代码,随着版本的不断迭代,需要依然能够保持灵活。在写新项目的时候,对未来的发展要有预判,可以提前挖个坑在那里等着。
周六有一个哥们从京东赶回来请我吃了个饭,第二天大早上又匆匆赶过去,想想也是挺幸福和开心的。在我正在写文章的时候,又在不断的给我发信息给我推荐岗位,也是无以回报。还是之前的那些话,第一怕有钱,第二怕有名。但想想这一年都已经熬过来了,再熬一年吧。
简书最近出了点事,有哥们问我为啥不搬去掘金,还是一样:不扰乱他人的心志,不动摇自己的决心。即将启程去外面看看,后面文章更新会稍慢。
所有分享大纲:Android进阶之旅 - 系统架构篇
视频讲解地址:2018-01-07 晚八点
- 系统架构部分的总结和展望
- 小小的总结和展望
- 云数据中心架构介绍和展望讲座总结
- 关于电子地图项目的总结和展望
- 大一我的学期总结和展望。
- 总结和展望
- 总结和展望
- 近期总结和展望
- 2016总结和展望
- Java的各种架构优缺点分析和展望
- 过去一年的总结和新的一年的展望
- 迟来的2016总结和2017的展望
- 关于保研的总结和近期的展望
- 总结和展望-----开题后
- 辞旧迎新,总结和目标展望
- 2015总结和2016展望
- 2016年中总结和展望
- 对列式数据库的一点总结和展望
- 编写一个通用程序,将二维数组含有最大元素的列与第0列元素对调
- Adobe Illustrator CC 2017 mac (AI mac 2017) V21.0.0 中文破解版
- 补充HTML
- 很容易混淆的URL和URI
- 一步一步制作yaffs/yaffs2根文件系统(三)---使用glibc库构造 /lib
- 系统架构部分的总结和展望
- token
- GPS NMEA-0183标准详解(常用的精度以及经纬度坐标)
- 平台架构
- ValueError: Input contains NaN, infinity or a value too large for dtype('float64')问题解决
- IO多路复用之select、poll、epoll详解
- Webbench源码分析之多进程(三)
- Android studio 安装3.0遇到的坑
- Recycleview的adapter封装