Android 面试要点

本文不算是个投稿,是作者08,目前作为某创业公司Android负责人,在群里自己整理面试题装逼的时候被我发现,私下找他要了一份,当然他也非常愿意分享~

整个面试题分为三个部分:Java、Android和项目经验。

Java技术

Java基础:

  1. 对抽象、继承、多态的理解

  2. 泛型的作用及使用场景

  3. 枚举的特点及使用场景

  4. 线程sleep和wait的区别

  5. JAVA反射机制

  6. weak/soft/strong引用的区别

  7. Object的hashCode()与equals()的区别和作用

集合类:

  1. JAVA常用集合类功能、区别和性能  

  2. 并发相关的集合类  

  3. 部分常用集合类的内部实现方式


多线程相关:
  1. Thread、Runnable、Callable、Futrue类关系与区别

  2. JDK中默认提供了哪些线程池,有何区别

  3. 线程同步有几种方式,分别阐述在项目中的用法

  4. 在理解默认线程池的前提下,自己实现线程池

字符:

1.String的不可变性

2.StringBuilder和StringBuffer的区别

3.字符集的理解:Unicode、UTF-8、GB2312等 

4.正则表达式相关问题

注解:

  1. 注解的使用 

  2. 注解的级别及意义  

  3. 如何自定义注解


Android技术


Android基础:

  1. 四大组件的意义及使用,生命周期回调及意义

  2. AsyncTask、Handler的使用

  3. Android系统层次框架结构

  4. AsyncTask的实现方式

  5. AsyncTask使用的时候应该注意什么

  6. Android常见的存储方式

  7. Looper、Handler和MessageQueue的关系  

  8. Activity的启动流程(考察对Framwork的熟悉程度)

  9. 多进程开发的注意事项(Application类区分进程,进程间内存不可见、进程间通讯方式)

Resource相关:

  1. .9图片的意义

  2. style和theme的作用及用法

  3. dpi、sp、px的区别以及转换关系

  4. raw和assets文件夹的作用,二者有何区别

  5. Android系统如何在多个资源文件夹下查找匹配最合适的资源

虚拟机:

  1. Java内存模型 

  2. Android虚拟机的特点

  3. Dalvik和Art的区别

  4. 熟悉垃圾回收的实现机制,了解虚拟机的GC类型

View相关:

  1. 常用组件的使用:ListView、RecyclerView及Adapter的使用

  2. View之间的继承关系

  3. Invalidate与postInvalidate的区别

  4. 自定义View的实现方式(根据项目经验询问相关组件)。

  5. onMeasure/onLayout/onDraw的作用

  6. Paint、Matrix、Shader等绘制相关类的方法作用

  7. 详细描述事件分发机制

动画:

  1. Android有哪些动画的实现方式 

  2. Interpolator类的意义和常用的Interpolator

  3. ViewAnimation与属性动画有什么区别

  4. 如何自定义ViewAnimation

  5. 属性动画的实现原理

图片处理:

  1. 一般项目中如何加载大图

  2. 图片压缩的方式

  3. 如何不压缩图片加载高清图

  4. 图片加载过程中,一般会使用缓存,这个缓存的主要作用是什么

  5. 谈谈自己熟悉的图片加载框架



项目经验

开发工具:

  1. 代码管理工具:SVN、Git

  2. 常用的调试工具:Hierarchy Viewer、DDMS等

  3. CI工具:Lint检查,FindBugs、Jenkins

  4. 内存分析工具:dumpsys、memoinfo、MAT

项目工程:

  1. APP更新策略:推送或者拉取?

  2. 如何统一处理错误崩溃

  3. 如何进行用户行为收集

  4. 日志管理有哪些要点?(Debug包开放,release包关闭,错误日志反馈)

  5. 打包方式Ant、Maven、Gradle

  6. 机型适配情况

开放平台:

  1. 是否使用过第三方平台  

  2. 常用开放平台的熟悉度(微信、QQ、微博、支付宝等常用的支付和分享)  

  3. 是否进行过对第三方平台的统一封装?

  4. 是否自己开发过SDK?

设计相关:

  1. 有哪些常用的设计模式、设计原则

  2. 设计模式在Android源码中的应用

  3. 设计模式在项目中的应用

  4. 项目中的分包方式

  5. MVC在android中的应用,利弊

  6. android项目中的常见层次结构,包划分

  7. 有没有设计过项目中的层级结构、包划分


好了,大概就这么多,大家可以考察下自己对于知识点的掌握情况。

对于答案,我觉得只要你真的会了,用自己的语言去描述就是最好的答案~


转载自:http://blog.csdn.net/lmj623565791?viewmode=contents

Android基础


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值