Android面试知识分类

昨天写了JAVA的,今天来写写Android的。当然和昨天一样,这里不会出现什么面试题,面试题百度上一搜一大把。

其实关于Android的面试知识,问的最多的可能还是项目经验,这个只能靠自己了,像我这样没有什么项目经验的大三狗真是吃尽苦头。。 面阿里的时候几个面试官都有问做过哪些项目,我只能硬着头皮说自己没什么项目经验。

言归正传,关于面试知识的分类,我这里不会整理一些特别简单的,比如什么Activity和Service的区别啊,Android有几种常用布局啊之类的,这种说实话真的没意思,我不知道为什么网上这么多的面试题会出现这样类似的题目,至少我在面试的时候都不会被问到这么简单的问题。。

整理之前我想说大家应该多了解一点新的东西。

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0710/3167.html  这篇文章总结了Android最近出现的新技术,不用深入研究,知道就好。其实像里面的MVVM啊RxJava啊这种还是非常值得学习的。这种多提一个就是hotpatch,热修复,具体原理我也还在探究中,希望能探究出个所以然来。

再多说一句,大家可以多看看老罗的博文,framework层他讲的非常 非常 非常清晰。http://blog.csdn.net/luoshengyang

(一)关于Activity启动过程的分析 

http://blog.csdn.net/luoshengyang/article/details/6703247

http://blog.csdn.net/luoshengyang/article/details/6689748 这两篇文章讲的非常清楚了

其实关于Activity的启动,大家最主要要了解的就是Ams和ActivityThread这两个(其实还有Pms,在intent匹配的时候比较重要)

(二) 关于Android的Surface机制

http://blog.csdn.net/luoshengyang/article/details/7846923

http://blog.csdn.net/luoshengyang/article/details/8010977

http://blog.csdn.net/luoshengyang/article/details/8661317

http://blog.csdn.net/luoshengyang/article/details/8636153 

关于这方面的知识首先就是要了解Android中的IPC机制不仅只有binder,像上面所说的view和surfaceFlinger的通信就是用的共享内存(其实还有就是Android的消息传递,触摸消息和键盘消息,是通过管道的方式传递到上层的)。还要了解一个View是怎么画到屏幕上的,SurfaceView和普通的View有什么区别(不仅仅是表上Application层的区别),还有就是Z-order。另外就是这里会牵扯到另外一个framework层的重要知识-----Wms。

(三)关于Broadcast的启动和匹配

http://blog.csdn.net/luoshengyang/article/details/6730748

http://blog.csdn.net/luoshengyang/article/details/6737352

http://blog.csdn.net/luoshengyang/article/details/6744448

(四)关于Service的启动

http://blog.csdn.net/luoshengyang/article/details/6677029

http://blog.csdn.net/luoshengyang/article/details/6745181

(五)关于Android的资源访问机制

http://blog.csdn.net/luoshengyang/article/details/8791064

http://blog.csdn.net/luoshengyang/article/details/8806798

关于这方面最重要的是了解AssetManager和Resource这两个类。还有就是要了解Android的APK打包过程,一个APK里包含哪些内容,AAPT是什么,resources.arsc是什么等等,这方面还可以拓展一下就是了解代码混淆和资源混淆。

(六)关于Android的屏幕显示机制

这个标题我取得不是太好。。概括来说这里大家要了解的就是Wms,关于Wms我没有找特别好的文章,我是用过看《Android源码剖析》这本书了解这方面的知识的,大家可以去看这本书,或者自行百度谷歌。像ViewRoot,ViewRoot.W,phoneWindow,按键消息和触摸消息的分发机制等等,都还是要掌握的。另外大家还可以去看看invalidate,requestLayout这样的函数的源码,知道performTranversal这个函数是干嘛的,还有就是selectedDrawable的原理,drawable.callback和activity之间的关系等等。

http://blog.csdn.net/lmj623565791/article/details/41894125 这篇文章讲的是setContentView的源码

http://blog.csdn.net/lmj623565791/article/details/38171465 这篇文章分析了LayoutInflater

(七)关于Android的Context

http://www.cnblogs.com/android100/p/Android-Context.html

http://blog.csdn.net/qinjuning/article/details/7310620 

这两篇文章讲的比较清楚了。关于Context大家要了解ContextWrapper,ContextThemeWrapper和ContextImpl这三个类的关系,知道activity,service和context的关系等等。

(八)关于Android的binder机制

http://blog.csdn.net/lmj623565791/article/details/38461079 

其实关于binder是Android里比较复杂的一块内容了,上面那篇文章写的很清晰了。

(九)关于Android的多进程

这一块其实我也没找到特别好的文章,具体就是要了解Android的几种进程间通信的方式,像aidl,messenger等等,特别注意sharedUserId。

(十)关于Android的异步消息处理机制

http://blog.csdn.net/lmj623565791/article/details/38377229

注意threadlocal的用法。


上面是我能想到的比较重要的知识了,大家还是要多看看源码,像ListView,知道什么是recycleBin机制,还有AsyncTask,知道AysncTask的运行原理和几个版本的报错原因。另外还有一块比较重要的就是Android中的优化,像避免内存泄漏啊,布局层次等等。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值