android开发浅谈之写在前面的话

Posted hfreeman2008

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android开发浅谈之写在前面的话相关的知识,希望对你有一定的参考价值。

自我介绍

先简单的介绍一下我的主要工作经历吧:

时间东家主要工作
2011年8月深圳大学毕业那是安卓开始崛起的前夜,自己整上午整下午的看网上的新品手机,基本上注定了自己从事手机相关的职业选择了
2011年8月----2013年8月深圳康佳通信科技android app开发 刚入行,有点怕怕。带我的领导是一位北大的美女,智商碾压绝大部分人,公司要求比较高,比较严,技术开发特别规范。本以后这会是我上班后的起点,后来无奈的发现这竟然是我以后所有公司技术顶点。后面的公司,没有一个能在技术,规范层面上超越康佳
2013年8月----2014年12月深圳鸿宇顺科技android app开发,开始发现自己有的工作是可以胜任的,开始独当一面了。
2015年1月----2018年3月深圳天珑移动app开发,gms认证,订单交付,技术上是突飞猛进,技能树点的特别多,特别散,开始有点系统工程师的影子,也开始有点漂了,想挑战一下自己,走一条最难的路 。天珑是我上班以来呆的时间最长的公司,也是我搞钱最多的公司,老家的房子就是在天珑上班挣的。在天珑无意中打开了我的写文章的封印,大概写了几十个专利吧。在天珑认识了上班以来最好的兄弟延辉,后面职场上基本上没有谁的交情能超过这段了吧。有成就,有突破,有兄弟,有伤感,有故事的三年!
2015年3月----2018年5月深圳天道日新科技软件部门负责人,那时觉得自己非常牛,想飞起来。主要是做PPT(话说哥的PPT可以碾压绝大部门的人),给领导吹水,给客户吹水,工作强度和压力非常的大,连给老婆打电话的时间都没有,我老婆老是说我是不是外面有女人了。考虑再三,辞职,走人
2018年5月----2019年9月深圳瑞高智能设备app开发,部分系统工程师的工作,重新做回工程师,发现做写代码的小弟其实轻松多了
2019年9月----2020年5月深圳小辣椒科技android app开发,负责一个叫工程模式的玩意。听说前面有一个同事负责这个,每天都被领导批评,直接跑路走人。这个工程模式,对应用,系统,驱动,kernel,都是有一定的要求,搞不定正常。但是对于我这个老鸟来说,没有问题,轻松hold,领导开会说这个工程模式终于稳定了,哈哈。无聊之下, 一不小心和一个新入职的驱动同事,一起学习入门驱动。
2020年6月----2021年6月深圳柔宇科技系统工程师的工作,公司非常好,技术有了质的进一步提升,我讨厌自己的技术提升,但是当你掌握了方法后,自己的技术会无时无刻提升的。但是一个小年青领导,非常讨厌我,对我的评价非常的低,给我打了个C,打破了我职场口碑一直不错的记录,伤心啊。在小年青和我谈绩效时,小年青先批评了我半个小时,我自己再为自己解释辩护了半个小时后,跑路走人。
2021年6月----2021年12月海信聚好看深圳研发中心系统工程师的工作,其公司国企文化鲜明,领导恶心变态,管理粗暴,以处罚批评为主,员工在他们眼里真不是人,pua人到极致,是我上班十年来最恶心的公司,噩梦般存在,真是一生黑啊。领导之变态,让我大涨见识。在青岛出差三个星期,一个星期每天加班到将近十二点,拼命的将一个功能赶出来,当月绩效考核直接扣了10分,理由是我请假没有通知领导,而事实是我和他说了,并且都安排好了我的工作,他回复说好,这操蛋的公司。再一次打破了我职场口碑不错的记录,直接n+1,含泪笑拿几W走人(人生第一次拿n+1)。在我从公司走的最后一分钟,领导还过来骗我说他不知道我被n+1,被我当着公司许多人的面恶心了他,我说你做人不行。我现在也做领导,领导对小弟,不是处处充满了欺骗,充满了pua,充满了打压,充满了否定,充满了甩锅,充满了阴谋。我现在对小弟,想的是让小弟不断的提升自己的技能,把自己的经验和心得倾囊相授,真的是希望小弟能青出于蓝而胜于蓝!
2022年2月----今深圳一个车载小公司高通系统组组长,带三个小弟,在公司攻坚克难的第一线。公司小,51个人,面试我的二位副总是以前康佳的同事,他们二个人在这个公司干了9年,当时就冲这一点,我就决定加入。公司氛围平和,节奏比较慢,不pua,老板规定晚上加班不能超过8:30,开发难度不高,平时午餐五菜一汤(免费),晚餐补15块,加班35块一小时,平时饮料免费自助,从海信来这边,有一种从地狱到天堂的感觉,爽

上面列的这些,其实只是我的主要工作经历,还有一些有意思的但是极其短暂的工作,以后有机会和大家分享。

不简单啊不简单,工作9年,能换这么多家公司,不容易。

我们的字典里有一个字可以完美的概括上面的这9年,那就是------“浪”。

那以我的工作经历,换了这么多公司,有得有失吧。

好处的话:

  • 第一个是涨工资快;
  • 第二个是每换一个公司,都会在意想不到的方向和领域(如技术,吹水等)得到提升;
  • 第三个是会成为一个技术的杂家;
  • 第四个是人生阅历更丰富,人生经历更精彩。每次换公司,都觉得自己明显比别人眼界和格局要更高一个层次,可能是自己见过更多的人,经历过更多的事,更成熟更滑了吧。

同样,不好的影响也是非常的大:

  • 第一个是在技术层面没有在特定的垂直方向积累;
  • 第二个是在职业层面没有在一个公司有持续的发展进步,这个非常的致命;

导致每换一个公司,所有的工作,人脉,资源都得重新从0开始,去任何一家公司都得喊别人哥,包括技术比你菜,年龄比你小,性格比你偏,人品比你恶心的所有人。

  • 第三个是自己的简历会显的特别的不稳定,大公司基本上无缘了,因为HR那关过不了;

这个让我更心痛,工作这么久,还没有去过top大厂上班,这是我的一个痛啊。本来前一阵子更新简历,oppo二轮技术面试都过了,在第三轮HR面,直接拒了,让我心痛啊。

写android开发浅谈系列文章的目标

上面写了这么多我的简历,就可以看出,我是先从app开发,一步一步进阶到framework开发的。

而事实上,此android开发浅谈系列的文章,一开始就是我自己在开发时,看到别人的博客觉得有用有意思的文章自己对比来学习做笔记的,到后面我总结自己负责的模块的开发笔记,这样一点一点发了一年时间积累下来的。

此android开发浅谈系列的文章的目地就只有一个:
指导app开发如何进阶到framework 核心服务开发

借用袁辉辉的android分层图,图中粉红方框中,从app开发进阶到framework的System Server的服务(如ams,wms,pms,imms等),就是此文章带你进阶的点。

写android开发浅谈系列文章的初衷

你们是不是从app开发进阶到framework开发时是不是会有下面当年我面临的的困惑:

  • 1.源码太多,如何下手呢?

您看网上说ams,wms,pms特别重要,也想学习ams,wms,pms。当你打开源码后,

源码文件名代码行数
ActivityManagerService.java19647行
WindowManagerService.java8820行
PackageManagerService.java26354行

好吧,当你恶心自己强行看完一个1W,2W行的源码后,是不是感觉到深深的绝望,感觉自己是个废物,自己的智商看来是不行,应该是驾驭不了系统framework开发的源码,冲破不了这一层技术,还不如回去打王者,吃个鸡,其实游戏比这个要香多了。

所以这个android开发浅谈系列文章的会给你如何在这个海量代码中如何定位到自己需要关注的逻辑,从而不迷路,不迷茫提供一些思路。

  • 2.为什么会只有极少量的系统日志?

我们在app开发时,经常会打印出自己需要的日志信息,这样就可以明白代码的运行,定位到问题。但是我们在正常看日志时,会发现只有极少量的日志。缺少日志,我们就缺少了了解系统的钥匙。

所以这个android开发浅谈系列文章的会给提示你,framework的服务中默认日志信息是关闭的,你是需要主动打开日志开关,从而来了解系统是如何工作的。

  • 3.有没有其他查看系统信息的手段?

当你打开系统的对应服务的日志开关后,你还是会发现,现有的日志信息多而杂,有没有其他的查看系统信息的手段呢?

所以这个android开发浅谈系列文章的会从系统的dump信息的角度,来和你一起窥测系统的信息,从而来了解系统,定位问题。并且系统的dump信息还不需要编译源码,实时的得到,实在是查看系统的一个利器。

  • 4.如何查看接口的调用逻辑?

framework的服务一般都是代码量特别多,方法特别多,那我们如何知道这些接口的调用逻辑呢?当然了,你可以简单粗暴的全部加上日志信息,但是这个方法肯定不是最优的。

所以这个android开发浅谈系列文章的会有一些查看接口调用逻辑的手段,你可以自己慢慢去发现。

  • 5.跨进程应用的日志信息,如果关联贯通呢?

framework的服务一般都是system server使用Binder的方式,跨进程与上层应用进行通信。那我们如何通过日志信息关联贯通framework的system server与上层应用之间的通信逻辑呢?

所以这个android开发浅谈系列文章的会有一些我的经验,希望你也可以体会到。

  • 5.不同android软件版本,接口调整和变换了,我们如何重新梳理系统的流程呢?

对于framework的学习,我们一般都是在网上查看对应的博客资料。但是经常会发现,对应博客资料的android版本是A版本,而我们手上的开发代码版本是B版本,博客资料中的接口我们在我们的代码中找不到,这时会不会有一种game over的感觉,因为你会对不上相应的接口逻辑,导致学习和梳理无法进行下去。

所以这个android开发浅谈系列文章的会告诉读者,我是如何在哪里,如何定位代码逻辑的方式,从而可以让读者不管在android什么版本上,无论接口如何变化,都可以自己定位代码逻辑,希望你也可以get到。

分享一个小故事

最后,分享一个兄弟我读研时一个老师讲的一个小故事,让我记到现在。

故事是这样的:
有一个小哥,我们就喊他张三吧。张三这哥们,他有一个二层的小楼,小楼从一层到二层只有一个出入口,高度大概有个8米吧,正常人肯定是不能从一层跳上8米的二层的,人们只有借用一个8米的木梯子,才可以从小楼的一层爬到二层。
一天,这个小哥张三他使用那个8米的木梯子从一楼爬到二楼,他让另外一个人把这个8米的木梯子收起来,然后对别人说,兄弟们,我直接从一楼跳到这8米高的二楼,你们说我是不是能为所不能,厉不厉害,牛不牛,是不是江湖中传说的大神。然后围观的不明真相的白痴群众都拍手叫牛,技术大神,你真厉害,竟然可以从一楼直接跳到这8米高的二楼,我们这种渣渣做不到,请接受我们的膝盖吧。

哈哈,这就是一个张三小哥的封神之路,搞笑但是又非常的真实。

许多你看起来非常牛的人,所谓的大神,我们感觉他们好像神仙一样,高来高往,怎么这都可以,其实原因非常的简单,他们把他们如何实现的过程隐藏了,我们直接看到结果,才会误导我们,如果我们看到他爬木梯子时的那个肥肥的并不灵活的向上爬的身体,奶奶的拿了一小段后还要休息一下,8米的样子还大汗淋漓,气喘吁吁的狼狈样子,我们相信我们会爬的比他好,比他快,我们其实也是可以成为他这样的大神的。

日光下没有什么新鲜事,关键是我们要找到那个被人隐藏了木梯子,仅此而已。

希望这个android开发浅谈系列文章,会让你找到进阶framework开发的那个被人隐藏了木梯子。

以上是关于android开发浅谈之写在前面的话的主要内容,如果未能解决你的问题,请参考以下文章

android开发浅谈之写在前面的话

android开发浅谈之写在前面的话

提纲挈领webrtc音频处理算法之写在前面的话

android开发浅谈之InputMethodManagerService

android开发浅谈之PackageManagerService(pkms)

android开发浅谈之InputMethodManagerService