博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 发展思路
阅读量:5323 次
发布时间:2019-06-14

本文共 1521 字,大约阅读时间需要 5 分钟。

1. 做一个有 ‘特色’ 的程序员

Android 开发,本身并不是一个可以走得多远的方向,真正有价值的地方在于与具体的业务方向结合,比如:Android 与音视频技术,Android 与智能硬件交互,Android 与前端技术的融合与探索,Android 信息安全,Android 源码深度定制等等……早日找到一个感兴趣的方向,深入探索和积累,而不仅仅局限于研究 Android API 本身,这样才能走得更远,才能有更好的前途。”  

所以,要让自己在团队里更加有 “存在感”,要想将来的发展越来越好,你就不应该只满足成为一个会写 App 界面的 Android Programmer,而是要差异化地 “积累” 自己感兴趣的技术,并且成为这个领域的专家。

2. 善于总结排查问题的工具和技能

今年我有遇到一些客户的 Android 开发者,竟然不知道如何在命令行下用 adb 打 log 或者不知道怎么过滤 log,着实让我感到惊讶,打印和分析日志也是程序员的一项基本功,而且我们还不应该仅局限于此,我们还应该在工作中不断去积累一些有用分析手段、分析工具和网站,比如: 

- 如何检测 Android 的内存泄漏、CPU 占用、Memory 占用

- 如何用 ndk-stack 分析 Android Native 库的 crash 

- 如何用 wireshark , tcpdump 抓包以及分析协议问题

- 如何用 curl, dig, mtr, telnet, netstat 等命令排查网络问题

- 如何验证 YUV 数据、PCM 数据是否正确

- 如何分析 RTMP流、HLS流的异常、卡顿、时间戳等问题

3. 做事情要设定 deadline,完成比完美更重要

身在互联网行业我们能做的,就是要有一套自己的 “优先级”,先出版本,再谈优化。

有的时候,懂得合理地细化任务,也是一种能力。一般我拿到一个大的需求,肯定会把它细化成一个个小的任务,并且按照如下标准来进行分类和排序,甚至给出每个小任务的 deadline : 

- 基础模块,其他工作需要依赖此模块

- 涉及到接口的定义或者修改的工作

- 当前必须支持的功能点

- 可以后期增加的功能点

- 可以后期优化的地方

当然,根据实际情况还可以继续细分。每当做完一个小的任务,就会先充分地测试,保证其正确性和稳定性后,保存一个版本,当必须支持的功能点完成后,至少已经有了一个可交付的版本了。 

这里还需要强调的一点是,“完成” 并不是说带着很多 Bug 的完成,而是说一个稳定但不一定功能齐全的版本,因此,千万不要用 “完成而不完美” 作为忽略交付质量的借口。 

4. 知其然也要知其所以然 

这是一个老生常谈的话题,但是确确实实很多人没有做到,特别是在面试的时候,经常遇到很多人对自己亲自做过的东西理解完全不够,这可能是一个态度问题,不愿意花时间去钻研,或许这种钻研的确是一个比较费脑细胞的过程,但对于那些对技术充满热情的人,其实是一种享受。

举个例子:对于播放器开发,不能只是做过,或者用过,尽可能知道其原理。列举最常见的3 个问题:

- 从传入 URL 到第一帧视频渲染成功的整个流程

- 播放器有几个缓冲区,如何管理的,如何设计的

- 音视频同步是如何实现的 

每个问题都可以再深挖几层,基本上可以判断其掌握程度和钻研精神,会用第三方播放器的人很多,会用 ffmpeg 的人也逐渐变多,但能改 ffmpeg 能自己解析流媒体协议,能自己编写出播放器的人,才能成为这个领域真正的大牛 。 

转载于:https://www.cnblogs.com/renhui/p/7452452.html

你可能感兴趣的文章
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
查看>>
Linux设置环境变量的方法
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>
安装Endnote X6,但Word插件显示的总是Endnote Web"解决办法
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
大数据学习
查看>>
简单工厂模式
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
Objective-C 【关于导入类(@class 和 #import的区别)】
查看>>