[干货]2017已来,最全面试总结——这些Android面试题你一定需要

  

      

    

  
 

    [干货]2017已来,最全面试总结——这些Android面试题你一定需要 - xhmj12的博客
        - 博客频道 - CSDN.NET
    
    
    
      
    
        
       
        
        
    
      
         
    

    
    
    
    
 








    
        
    

    
   
      
    

[置顶] [干货]2017已来,最全面试总结——这些Android面试题你一定需要

标签: android面试题互联网百度阿里
1331人阅读 评论(0) 收藏 举报
分类:

相关阅读:
吊炸天!74款APP完整源码!

[干货精品,值得收藏]超全的一线互联网公司内部面试题库,有了它,妈妈再也不用担心我进不了大公司了!

[干货,阅后进BAT不是梦]面试心得与总结---BAT、网易、蘑菇街

[精品干货]面试题库第二波:java面试一定会遇到的56个面试题

[面经福利]如何进入百度、阿里,一个6年Android老司机的面经

2016年百度校招小结:我做技术面试官的一些思考(想进百度的快看)


前言


来年发完年终奖。也许有不少Android程序员开始摩拳擦掌蠢蠢欲动了。结合以往自己的经历,今天给大家总结下Android面试题,希望有帮助。


01Activity生命周期?


这几乎是个老少咸宜,永远不会过时的问题,而且极有可能是第一个问题。这个问题当然没什么好讲的啦,死记硬背是没什么用的了,关键是理解。本人就曾遇到这个问题的变种问题,问onStart(),与onResume()有什么区别?如果面试官抛出这个问题,是不是有点措手不及。今天又听说有同学遭遇了更变态的问题:什么情况下Activity走了onCreat(),而不走onStart(),这简直就是脑筋急转弯嘛。


02Service生命周期?


这里要注意service有两种启动方式,startService()和bindService()




03

理解Activity,View,Window三者关系



这个问题真的很不好回答。所以这里先来个算是比较恰当的比喻来形容下它们的关系吧。Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图)LayoutInflater像剪刀,Xml配置像窗花图纸。
1:Activity构造的时候会初始化一个Window,准确的说是PhoneWindow。
2:这个PhoneWindow有一个“ViewRoot”,这个“ViewRoot”是一个View或者说ViewGroup,是最初始的根视图。
3:“ViewRoot”通过addView方法来一个个的添加View。比如TextView,Button等
4:这些View的事件监听,是由WindowManagerService来接受消息,并且回调Activity函数。比如onClickListener,onKeyDown等。


04四种LaunchMode及其使用场景


standard 模式
这是默认模式,每次激活Activity时都会创建Activity实例,并放入任务栈中。使用场景:大多数Activity。
singleTop 模式
如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent() ),否则就会创建新的实例并放入栈顶,即使栈中已经存在该Activity的实例,只要不在栈顶,都会创建新的实例。使用场景如新闻类或者阅读类App的内容页面。
singleTask 模式
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的 onNewIntent() )。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移出栈。如果栈中不存在该实例,将会创建新的实例放入栈中。使用场景如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。
singleInstance 模式
在一个新栈中创建该Activity的实例,并让多个应用共享该栈中的该Activity实例。一旦该模式的Activity实例已经存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例( 会调用实例的 onNewIntent() )。其效果相当于多个应用共享一个应用,不管谁激活该 Activity 都会进入同一个应用中。使用场景如闹铃提醒,将闹铃提醒与闹铃设置分离。singleInstance不要用于中间页面,如果用于中间页面,跳转会有问题,比如:A -> B (singleInstance) -> C,完全退出后,在此启动,首先打开的是B。



05View的绘制流程


measure过程
layout过程
draw过程
从此再有不愁自定义View——Android自定义view详解

android View绘制源码分析(上)

android View绘制源码分析(下)



06Touch事件传递机制



public boolean dispatchTouchEvent(MotionEventev);  
//用来分派event
public boolean onInterceptTouchEvent(MotionEventev);
//用来拦截event
public boolean onTouchEvent(MotionEventev);
//用来处理event

其中Activity和View控件(TextView)拥有分派和处理事件方法,View容器(LinearLayout)具有分派,拦截,处理事件方法。这里也有个比喻:领导都会把任务向下分派,一旦下面的人把事情做不好,就不会再把后续的任务交给下面的人来做了,只能自己亲自做,如果自己也做不了,就只能告诉上级不能完成任务,上级又会重复他的过程。另外,领导都有权利拦截任务,对下级隐瞒该任务,而直接自己去做,如果做不成,也只能向上级报告不能完成任务。
http://gold.xitu.io/entry/56af0ba0c24aa800547b60ea


07Android中的几种动画


曾被问到Android中有几种动画,这个问题也好难回答。Android3.0之前有2种,3.0后有3种。
FrameAnimation(逐帧动画):将多张图片组合起来进行播放,类似于早期电影的工作原理,很多App的loading是采用这种方式。
TweenAnimation(补间动画):是对某个View进行一系列的动画的操作,包括淡入淡出(Alpha),缩放(Scale),平移(Translate),旋转(Rotate)四种模式。
PropertyAnimation(属性动画):属性动画不再仅仅是一种视觉效果了,而是一种不断地对值进行操作的机制,并将值赋到指定对象的指定属性上,可以是任意对象的任意属性。

Android 动画,看完这些就够了(上)

Android 动画,看完这些就够了(下)

http://blog.csdn.NET/yanbober/article/details/46481171



08Android中跨进程通讯的几种方式


1:访问其他应用程序的Activity
如调用系统通话应用

Intent callIntent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:12345678");
startActivity(callIntent);

2:Content Provider
如访问系统相册

3:广播(Broadcast)
如显示系统时间

4:AIDL服务



09AIDL理解


http://bbs.51cto.com/thread-1086040-1.html



10Handler的原理

IntentService——Handler与Service的结合

Android 开发中利用异步来优化运行速度和性能

深入理解ThreadLocal(一)

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


11Binder机制原理

为什么 Android 要采用 Binder 作为 IPC 机制?

http://blog.csdn.net/boyupeng/article/details/47011383



12热修复的原理


1:JavaSisst
2:AspectJ
3:Xposef
阿里Android热修复技术选型——三大流派解析

Android 热修复方案分析

Android热更新:美团大众点评Android热更新方案Robust

Android插件化之使用AndFix进行Hot fix



13设计一套图片异步加载缓存方案


http://www.cnblogs.com/zyw-205520/p/4997863.html
http://blog.csdn.net/boyupeng/article/details/47127605



14Android内存泄露及管理

Android内存泄漏研究

Android 内存泄漏总结(下)

Android内存性能优化(内部资料总结)

Android性能优化-内存泄露的检查与处理

5个Android开发中比较常见的内存泄漏问题及解决办法

Android内存泄漏问题定位与解决实际案例

【干货】Android内存泄漏分析实战和心得-面试常考点

再谈android内存泄漏—常见的八种导致 APP 内存泄漏的问题

最全最系统的 Android 界面性能调优资料

http://gold.xitu.io/entry/56d64b9e816dfa005943a55c



15Activity和Fragment通信

[干货]让你彻底搞懂Context到底是什么,如果没弄明白,还怎么做Android开发?

http://gold.xitu.io/entry/56a87b2b2e958a0051906227



16Fragment的那些坑


http://www.jianshu.com/p/d9143a92ad94
http://www.jianshu.com/p/fd71d65f0ec6
http://www.jianshu.com/p/38f7994faa6b



17Android UI适配

Android UI布局问题总结

拥抱SVG:苦恼于图片适配 in Android?万能图片适配

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



18布局优化

Anroid性能优化系列——Improving Layout Performance(一)

Anroid性能优化系列——Improving Layout Performance(二)

Anroid性能优化系列——Improving Layout Performance(三)

性能优化之布局优化

Android布局优化之实用技巧

Android 高效布局的几点建议

Google I/O 2016 上发布的 ConstraintLayout是什么东东?Android Layout新世界

Android UI布局问题总结

Android中RelativeLayout和LinearLayout性能分析

Android布局优化之过度绘制

http://www.jianshu.com/p/145fc61011cd



19Http https

常见通信协议HTTP、TCP、UDP的简单介绍

从日常开发说起,浅谈HTTP协议是做什么的

最详细的 HTTPS 介绍

详解https是如何确保安全的?

http://www.jianshu.com/p/93fdebe5fef1



20

网络请求优化


携程App的网络性能优化实践

Android推送技术研究

http://www.jianshu.com/p/3141d4e46240



21

数据库优化


Android上SQLite的性能优化问题

浅析SQLite的锁机制和WAL技术

http://www.jianshu.com/p/3b4452fc1bbd



22

图片优化


 Android 三大图片缓存原理、特性对比

史上最全最详细的Facebook的强大Android图片加载的框架Fresco讲解

初识Facebook的强大Android图片加载的框架:Fresco

拥抱SVG:苦恼于图片适配 in Android?万能图片适配

http://www.jianshu.com/p/5bb8c01e2bc7



23HybridJAVA和JS交互

好好和h5沟通!几种常见的hybrid通信方式

从Ionic粗窥混合模式的手机APP开发

豆瓣混合开发实践

http://droidyue.com/blog/2014/09/20/interaction-between-Java-and-JavaScript-in-android/



24

单例设计模式


设计模式之单例详解



25JAVA GC原理

Android内存泄漏研究

理解Android虚拟机体系结构

JVM内幕:Java虚拟机详解

http://www.jianshu.com/p/d75a32ac5bed?



26ANR

Android性能优化系列---避免ANR

http://www.jianshu.com/p/124f3b75e164



27

Volley


基于MVP架构、MD风格的Dribbble客户端

http://www.jianshu.com/p/9e17727f31a1



28JAVA注解反射原理

http://www.jianshu.com/p/3968ffabdf9d



29

算法


程序员必须知道的10大基础实用算法及其讲解

算法趣谈—漫画:判断 2 的乘方-算法学习不再枯燥

【趣谈算法系列】:无序数组排序后的最大相邻差值

http://www.jianshu.com/p/ae97c3ceea8d



30

设计模式


设计模式之Adapter

观察者模式学习小结

设计模式之单例详解

“备忘录模式”就这么简单

Android App的设计架构:MVC,MVP,MVVM与架构经验谈

http://gold.xitu.io/entry/56ebb4ad5bbb50004c440972



31

RxJava


使用RxJava构造Android清晰框架

Airbnb:我们的安卓客户端是如何使用 RxJava 的

一个很棒的 Android APP框架

http://gank.io/post/560e15be2dca930e00da1083?from=timeline&isappinstalled=0#toc_1



32

MVP,MVC,MVVM


Android官方MVP架构示例项目解析

Android官方MVP架构示例项目解读

Android App的设计架构:MVC,MVP,MVVM与架构经验谈

浅谈 Android 编程思想和架构

APP重构:Android实践从MVC架构到MVP架构

Android开源实战:使用MVP+Retrofit开发一款文字阅读APP

http://blog.csdn.net/pkxiuluo01/article/details/49383783



33

React Native跨平台技术


科普React Native-目前最火的前端技术

React Native for Android 接入实践

https://mp.weixin.qq.com/s/i0DWHR2eQmNijXTQv3YGmQ



35

Android 5.0

 MD风格


基于MVP架构、MD风格的Dribbble客户端

基于Retrotfit2.1+Material Design+ijkplayer开发的一个APP(新闻,gif 动图,视频播放)

http://www.androidchina.net/1381.html



36Android6.0运行时权限

Android6.0权限适配,比你想的还要简单(实践篇)

Android 6.0(API级别23)包括各种系统变化和API的行为变化

Android6.0触摸事件分发机制解读

https://mp.weixin.qq.com/s/R2sAthMB2yW3ytTesnT-Jw



37

Android7.0新特性


Android 7.0新特性总结,快看Google又有什么出人意料的东西?

Android7.0适配教程与心得

Android N最令人期待的10大新功能

http://blog.csdn.net/wds1181977/article/details/52292445



38

Android插件化和组合化开发


Android插件化之使用AndFix进行Hot fix

Android分包原理

Android插件化的一种实现

插件化的基石之apk动态加载

途牛原创|途牛Android App的插件实现

http://www.cnblogs.com/android-blogs/p/5703355.html


关于Java和Android大牛频道

Java和Android大牛频道是一个数万人关注的探讨Java和Android开发的公众号,分享和原创最有价值的干货文章,让你成为这方面的大牛!

我们探讨android和Java开发最前沿的技术:android性能优化 ,插件化,跨平台,动态化,加固和反破解等,也讨论设计模式/软件架构等。由群来自BAT的工程师组成的团队

关注即送红包,回复:“百度” 、“阿里”、“腾讯” 有惊喜!!!关注后可用入微信群。群里都是来自百度阿里腾讯的大牛。

欢迎关注我们,一起讨论技术,扫描和长按下方的二维码可快速关注我们。搜索微信公众号:JANiubility。


公众号:JANiubility

3
0

我的同类文章

参考知识库

img

JavaScript知识库

img

Android知识库

img

.NET知识库

img

React知识库

img

Java SE知识库

img

微信开发知识库

img

MySQL知识库

img

Java EE知识库

img

Java 知识库

img

jQuery知识库

img

算法与数据结构知识库

img

大型网站架构知识库

img

AngularJS知识库

猜你在找
查看评论

  暂无评论

发表评论
  • 用 户 名:
  • bazhongren
      
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:37643次
    • 积分:1286
    • 等级:
    • 排名:千里之外
    • 原创:84篇
    • 转载:14篇
    • 译文:8篇
    • 评论:16条
您有1条新通知

提问

您的问题将会被发布在“技术问答”频道×
该问题已存在,请勿重复提问
||||||
  
 
 
000:0
推荐标签:
我要悬赏
取消发布
可能存在类似的问题:

保存代码片

整理和分享保存的代码片,请访问代码笔记
  • *标题
  • *描述
  •  标签
    androidx面试题x互联网x百度x阿里x

你可能感兴趣的:(Android)