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

2023-10-28 13:11

本文主要是介绍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米高的二楼,我们这种渣渣做不到,请接受我们的膝盖吧。

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

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

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

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

这篇关于android开发浅谈之写在前面的话的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/293437

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。