好吧,说实话是自己面试被问到的和自己整理的别人的一些问题,很多问题的回答可能根据水平不同层次和深度不同,如果经常忘的话可能是还没明白原理,学习就是对对抗遗忘,现在开始复习吧:

每个面试的问题都极大的贴近他们自己的项目,所以问题角度的差别肯定有的,有的可能是直接的知识点,大部分需要自己总结后才能有条理的回答。平时记得多总结相似场景的问题。

其中Q是问题,A是我总结的一些博客和相关知识,算是比较中庸的回答吧。最难问题就是你对***技术了解么,会***么?没有具体场景,直接抛给你一个回答层次可上天可入地的问题,这些对于牛人来说就是侃侃而谈的机会对现在的我就是个无言以对的大陷阱啊。分寸太TM难掌握了。

Scene01:

1. Q:网络编程?
    Q:html5和Reactive了解多少?
    Q:app的安全策略。
    A:这个问题更像是安全测试的内容,原谅我把我们安全测试的checklist直接搬过来:APP安全测评checklist
    Q:内存泄露的原因和解决
    A: 这篇不错,救了我:Android性能优化之常见的内存泄漏
    Q:app架构熟悉么?MVP和MVVM简介
    A:这个还好以前我总结过:20151226-App架构以及MVP和MVVM了解
2. Activity的启动流程,AMS等是怎么作用的,Fw层的源码了解多少?
3. 自定义控件,View的各个绘制方法的作用和区别。
A:这两篇简单清晰:教你搞定Android自定义View
           教你搞定Android自定义ViewGroup
4. 做J2EE的java和的app的区别,数据库基本的命令?
5. 你目前和以后的职业规划是什么?
 
Scene02:
1. Looper的机制,主线程和子线程之间发消息是怎么用,如果自己实现的话怎样?
2. ListView的不流畅可能什么造成的,里面ImageView如果异步的话怎么保证不乱(用什么设置tag?eg,用hashcode去检查,是不是有点像UIL中检查是否被下载过),ListView中如果有ViewPager的怎么处理滑动冲突,阻断父类listview滑动只处理viewpager本身的。
Q:事件传递机制怎么解释清楚。
    我就是爱收藏blog怎么了?一张图看清Android事件传递机制
Q:gallery为什么被废弃
A: API官网是这么说Gallery的:
This class was deprecated in API level 16.
This widget is no longer supported. Other horizontally scrolling widgets include HorizontalScrollView and ViewPager from the support library.
废弃了,因为不重用视图导致每次切换都视图重建浪费资源吧:你要真想用,这里有个https://github.com/falnatsheh/EcoGallery/
不放心的话只有抽时间读读源码了-TODO
3. AOP(Aspect Orient Programming),面向切面的编程体现在代码中到底是怎样的,和嵌入式那种的区别? 比如网络请求这块,如果添加一些请求拦截?
4. 对java基础和设计模式的掌握和感想,解耦的模式?(接口编程的)
5. 自定义控件中精确点击和手势操作图片。类似瀑布流自定义GridImageView的VIewGroup,手势操作图片
6. 滤镜应用?保证图片高保真压缩的方法?JNI编程?
Q:Canvas抗锯齿选项的原理
A:先说方法:
方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。
paint.setAntiAlias(true); 
方法二:给Canvas加上抗锯齿标志。有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
至于原因,上面的小帖中说是滤波的效果,滤波是会对图像进行平滑,直接看代码的话,setAntiAlias会调用native的方法,这个底层的算法尚不得知。
 
7. 线程池,ThreadLocal,多线程利用吗?怎么协调异步请求。
8. Q:Volley中处理请求的机制是怎样的
Q:印象深刻的攻关项目
9. 这里面的被问到了,回答肯定很有技术层次感:https://www.zhihu.com/question/40909636/answer/88775539
 
最后,知识确实也是,不看就忘,常看常新~

Android面试必备的更多相关文章

  1. Android 面试必备 - 系统、App、Activity 启动过程“一锅端”

    Android 系统启动过程 从系统层看: linux 系统层 Android系统服务层 Zygote 从开机启动到Home Launcher: 启动bootloader (小程序:初始化硬件) 加载 ...

  2. 面试必备:ArrayList源码解析(JDK8)

    面试必备:ArrayList源码解析(JDK8) https://blog.csdn.net/zxt0601/article/details/77281231 概述很久没有写博客了,准确的说17年以来 ...

  3. Android面试大揭秘!从技术面被“虐”到征服CTO,全凭这份强到离谱的pdf

    在笔者面试这一个月,看了不少文章,也刷了不少面试题,但真正有深度,适合4年及以上Android高工的内容少之又少 在面试准备阶段,笔者准备了三个月左右的时间,结合相关资料及源码,完成了一系列的深度学习 ...

  4. Android面试一天一题(1Day)

    写在前面 该博客思路源于在简书看到goeasyway博主写的Android面试一天一题系列,无copy之意,仅为让自己总结知识点,成长一点点.先感谢各位大神的无私分享~! 关于题目,大部分则出自And ...

  5. 李洪强iOS经典面试题156 - Runtime详解(面试必备)

    李洪强iOS经典面试题156 - Runtime详解(面试必备)   一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...

  6. 李洪强iOS经典面试题155 - const,static,extern详解(面试必备)

    李洪强iOS经典面试题155 - const,static,extern详解(面试必备) 一.const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽 ...

  7. Android面试总结 (转)

    1. 下列哪些语句关于内存回收的说明是正确的? (b) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在指 ...

  8. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的

    ===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦]下载地址 http://www.eoeand ...

  9. Android开发者必备的42个链接

    http://mobile.51cto.com/ahot-426035.htm Android开发者必备的42个链接 下面收集了42个帮助大家学习Android的内容链接,部分内容是面向初学者的,帮助 ...

随机推荐

  1. 搭建高可用mongodb集群—— 分片

    从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出 ...

  2. NET基础课--JIT编译器如何工作1

    1..Net运行时调用JIT编译器,用来把由C#编译器生成的IL指令编译成机器代码.这一任务在应用程序的运行期间是分步进行的.JIT并不是在程序一开始就编译整个应用程序,取而代之的是,CLR是一个函数 ...

  3. 判断Table表中是否含有某一列

    if (row.Table.Columns.Contains("DealRecord_GiftCost")) {     if (row["DealRecord_Gift ...

  4. 关于JavaScript 原型的理解

    原型的含义是指:如果构造器有个原型对象A,则由该构造器创建的实例(Object Instance)都必然复制于A.““在JavaScript中,对象实例(Object Instance)并没有原型,而 ...

  5. 【TFS】增加组员,以及用户权限分配

    一.创建windows用户. 二.TFS ->组成员资格->双击 项目集合管理员->添加创建的Windows用户(最高权限) 三.设置权限: TFS权限的复杂,其实也不是很复杂,它只 ...

  6. JavaScript关闭浏览器

    (*^__^*) 嘻嘻……,以前我找关闭浏览器选项卡的代码找不到,我还以为要用后台代码关呢?今天发现只要简单2句JavaScipt代码就可以了.看来很多东西还是在于平时的积累啊的说! 模仿延儿的口气了 ...

  7. 使用SqlBulkCopy批量插入数据

    static void Main(string[] args) { //定义与目标表结构相同的DataTable DataTable dataTable = new DataTable(); data ...

  8. wamp安装

    下载之后双击文件进行安装选择:I accept the agreement ,点击Next. 一直单击NEXT 安装完成后运行wamp,在桌面右下角即会出现wamp的图标,图标最初是红色的,然后变为橙 ...

  9. 【常用小命令】解决windows下有些文件文件名识别不了导致删除不了的问题

    在百度上找的解决方案哈,只为自己存档一份. 因为发现现在从csdn上下载的文件都是“.pdf_”格式,下载2个文件,将一个文件格式改成 “.pdf”,另一个文件就扔回不了回收站了, 所以没有办法就找各 ...

  10. HDU 5740 - Glorious Brilliance

    题意: 给出已0 1染色的无向图(不一定联通),一次操作为一对相邻点颜色互换. 问使任意相邻点颜色不同,最少需要多少次操作 分析: 交换两点的代价即为两点间最短路. 故用BFS找出所有点到任意点的最短 ...