ndk 开发前景,某大厂开发者对于 Android 多线程的总结,系列篇
程序员、网络工程师、数据库管理员这类人构成了 IT 共和国的主体,这个阶层是十九世纪的产业大军在二十一世纪的再现,只不过劳作的部分由肢体变成大脑,繁重程度却有增无减。在渺如烟海的程序代码和迷宫般的网络软硬件中,他们如二百多年前的码头搬运工般背起重负,如妓女般彻夜赶工。信息技术的发展一日千里,除了部分爬到管理层的幸运儿,其他人的知识和技能很快过时,新的 IT 专业毕业生如饥饿的白蚁般成群涌来,老的人(其实不老,大多三十出头)被挤到一边,被代替和抛弃,但新来者没有丝毫得意,这也是他们中大多数人不算遥远的前景…… 这个阶层被称做技术无产阶级。
你们感觉写的真实吗?其实,回过头去想想,随着时代的发展,从互联网到移动互联网再到所谓的人工智能智能时代,大数据,云计算,世界可能确实也越来越需要程序员,程序员也越来越多,然后再想想我们自身的工作,每天重复的复制,粘贴,确实像码头的搬运工,每天干着苦力,而这个苦是脑子的苦,而不是身体的苦。
而我们 Android 程序员面临的悲哀不光是中年危机、而是信息技术的更新迭代。突然发现行业已经缩减 Android 开发岗位了,我们快失业了!
一面:
应该是个参加工作不久的研究僧师兄,出了一道算法题,主要考字符转 int,然后分析了时间复杂度和空间复杂度,之后聊了 android listView 的性能优化,还问我 recycalView 的特点,进程通信的方式,我主要说了 aidl 和共享文件,广播,本来还想用 java 装 B,还在精通 java,然而师兄并没有问,说叫等一下
二面:
二面明显难度提升,而且面试管应该是组长吧,比较喜欢听吹架构,正好之前自己从 web 后台,客户端,硬件等方面做了一个智能家居项目,就吹了下硬件那边的逻辑,包括蓝牙,wifi 的 HTTP/IP 协议,透传等,红外等传感器,然后 web 后台我说我用 sevlet,因为本身客户端主要需要接口,数据库用 mysql,也没问 rollback(嘿嘿),然后把客户端展示给他看看,实在太丑没有美工(这不是重点),由于我的项目中有一个很重要的 point 就是在硬件触发时唤醒服务器后台推送,首先硬件识别后,串口读写数据到单片机,单片机写入 wifi 缓冲区,wifi 通过 HTTP 透传数据到我服务器(可以用 TCP 和 IP),服务器获取 mac 标识,推送至 TAG(家庭 ID)或者用户(Alias)说到推送,好好吹吹实现原理。1:pull 方式,http 长连接或是 socket,轮询间隔设好即可,缺点及时性差 2:push 方式,实时性好,方法 1,google 自带推送平台(网太差),方法二,xmpp 协议(基于 XML)。其实封装的比较好了,有个开源包叫 asmark,其中有 XmppConnection 这个推送库,话说好多公司都是用它自己封装库,不过开源的 demo 只管推,没有延时推送,消息暂存功能,方式 3,用三方的算法:是 2 个有序数组合并问题,用 2 个指针每次比较能够 O(n)解决问题,算法 passLruCache:先装装 B,说一下我写的和 google V4 包有什么不同,主要是没有 trimToSize 方法,没有 sizeof()计算内存耗费大小,我主要是重写 LinkedHashMap,讲了下 LinkHashMap 源码,其实我也是看别人写的源码解析,(嘿嘿,毕竟年轻,多向别人学习)
写在最后
由于本文罗列的知识点是根据我自身总结出来的,并且由于本人水平有限,无法全部提及,欢迎大神们能补充~
将来我会对上面的知识点一个一个深入学习,也希望有童鞋跟我一起学习,一起进阶。
提升架构认知不是一蹴而就的,它离不开刻意学习和思考。
**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近 1 个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
领取方式:点击这里获取免费架构视频资料
最近还在整理并复习一些 Android 基础知识点,有问题希望大家够指出,谢谢。
希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!
转发+点赞+关注,第一时间获取最新知识点
Android 架构师之路很漫长,一起共勉吧!
评论