本篇是结合我之前面试别人的经验,以及跟一些在BAT上班的朋友,讨论总结出的一份很深的大公司需要用到的一些高端Android技术。这里也专门整理了一个文档,重点和难点都有详细解析。这些题目有点技术含量,需要好点时间去研究一下的。

在文末有领取,收集整理了更多关于Android面试专题,包括初级,中级,高级不同水平以及不同专题所涉及到的常问范围,及面试专题和答案和系统学习视频资料,免费分享给大家,省去网上到处搜索资料的麻烦,文末有领取!





目录

一.专题讲解——Activity组件


二.专题讲解——Service组件


三.专题讲解——BoradcastReceiver组件


四.专题讲解——ContentProvider(内容提供者)组件


五.专题讲解——Fragment


六. 专题讲解——ViewPager


七. 专题讲解——Android的事件传递(分发)机制


八.专题讲解—— Bitmap的使用及内存优化 


九.专题讲解——使用View绘制视图 


十.专题讲解——Android内存泄漏及管理 


十一.专题讲解——Android设计模式之MVC


十二.专题讲解——JVM运行原理详解


十三.专题讲解——Android平台的虚拟机Dalvik


十四.专题讲解——Java的内存分配


十五.专题讲解——Android中的Binder机制


十六.专题讲解——Android中的缓存机制


十七.专题讲解——Android中的缓存机制


面试题

一.Activity组件


1、在Activity的生命周期中,可以将Activity表现为3种状态:


2、Activity生命周期中的7个方法:


3、Activity的四种启动模式:


4、Activity任务栈:


5、默认Acctivity启动方式的缺点:


二.Service组件


1、Service组件常被用于实现以下两种功能(分别对应两种启动模式):


2、Service中常用的方法:


3、Service组件的生命周期:


4、Service的启动模式详解


三、BoradcastReceiver组件


1、广播分为有序广播和无序广播


2、注册广播接收器的方式:


3、配置文件中静态注册:


4、使用代码动态注册:


5、配置文件静态注册和在代码中动态注册两种方式的区别


四、ContentProvider(内容提供者)组件


1、URI(统一资源标识符):


2、ContentProvider实现对外部程序数据操作的思路:


五、Fragment


1、Fragment的生命周期的方法:


2、Fragment中传递数据:


3、事务


4、管理Fragment:


六、ViewPager


1、ViewPager


2、FragmentPageAdapter和FragmentStatePagerAdapter的区别


3、综合使用ViewPager、Fragment和FragmentPagerAdapter:


4、关于Fragment中的控件的事件的监听:


5、当实现一个PagerAdapter时,需要重写相关方法:


七、Android的事件传递(分发)机制


1、基础概念:


2、事件的类型:


3、事件列:


4、事件分发的本质:


5、事件在哪些对象之间传递:


6、事件分发过程中协作完成的方法:


7、传递过程中的协作方法:


八、Bitmap的使用及内存优化


1、BitmapFactory


2、缩略图:


3、将大尺寸图片解析为控件所指的尺寸的思路:


4、获取控件宽高属性的方法:


5、Bitmap的内存优化:


6、捕获异常:


7、压缩图片:


九、使用View绘制视图


1、View绘制的流程:


2、Canvas类:


3、Android中页面的横屏与竖屏操作:


4、获取手机中屏幕的宽和高的方法:


十、Android内存泄漏及管理


1、内存溢出(out of memory)


2、内存泄漏(Memory Leak):


3、常发性内存泄漏:


4、偶发性内存泄漏:


5、一次性内存泄漏:


6、隐式内存泄漏:


7、常见造成内存泄漏的原因:


8、线程造成内存泄漏:


9、资源对象未关闭造成的内存泄漏:


10、内存泄漏的检测工具:


十一.专题讲解——Android设计模式之MVC


1、MVC


2、Model(模型):


3、View(视图):


4、Controller(控制器):


十二.专题讲解——JVM运行原理详解


1、JVM简析:


2、JVM基本概念


3、JVM的体系结构


4、JVM数据运行区详解(栈管运行,堆管存储):


十三.专题讲解——Android平台的虚拟机Dalvik


1、Dalvik概述:


2、Dalvik虚拟机(DVM)和Java 虚拟机(JVM)首要差别:


3、寄存器的概念:


4、栈的概念:


5、DVM进程的设计规则:


6、Android 应用程序的编译:


7、Android ART模式简介:


十四.专题讲解——Java的内存分配


1、Java内存分配主要包括以下几个区域:


2、Java内存分配中的栈:


3、Java内存分配中的堆:


4、Java内存分配中的常量池 (constant pool):


5、堆与栈:


十五.专题讲解——Android中的Binder机制


1、Binder


2、Binder机制的目的


十六.专题讲解——Android中的缓存机制


1、移动开发


2、实现原理:


3、Bitmap的缓存:


4、使用内存缓存:


5、使用磁盘缓存:


6、使用SQLite进行缓存:


7、文件缓存:


十七.专题讲解——Android中的缓存机制


1、三级缓存:


2、三级缓存策略


3、三级缓存的原理:


4、具体的缓存策略


最后

从事五年的Android开发工程师了,不少人私下问我,2019年Android该怎么学,现在的面试方向以及更多技巧方法等。关于这些面试题的详解,以及更多不同水平阶段,不同专题的面试题加答案,我这里都有整理分类的文档。并且还有系统的进阶学习视频资料,免费分享给大家。希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。