《Android开发艺术探索》

《Android群英传》

《深入理解Java虚拟机》

《剑指offer》

刷题,主要是LeetCode

牛课网

Android客户端面试题集锦

Android阿里面试题锦集

Android一些优化方案
什么是过渡绘制,如何防止过渡绘制
事件分发机制
ListView的优化
Binder机制
在多进程中,Application会启动几次
单例模式,双锁原理,volatile原理,静态内部类实现单例的原理。
Java多线程,synchronized
聊项目,都具体做了什么。
Binder机制
问了关于数据库的一些问题,SQLite的相关操作,没办法,我在华为唯一一个做的和java相关的项目,但是不太擅长数据库。
网络相关的问题,网络的五层模型,又问了TCP和UDP,还有Android相关的长连接,这里问的比较深。
开始Android先关的知识,Handler机制,Acticity的生命周期以及四种启动模式,各自特点,Service的两种启动模式生命周期,如果同时使用两种启动

volley的源代码,在图片缓存部分讨论了挺长时间,http中缓存机制,Last-Modify的作用等。
fragment的生命周期
service一些知识
事件分发机制
Binder实现机制,Stub类中asInterface函数作用,BnBinder和BpBinder区别。
gradle中buildToolsVersion和TargetSdkVersion的区别是什么
手机适配一些方案
hashmap的实现原理
静态方法是否能被重写

3次握手和4次挥手的原因,以及为什么需要这样做。
数据结构,搜索二叉树的一些特性,平衡二叉树。
hashmap是如何解决hash冲突的
进程与线程区别
写了一个二分查找和单例模式
http中的同步和异步
聊了一些项目上做的东西,问了问职业规划

Android是如何进行资源管理的。
java比较重要的几个特性
网络五层结构,每一层协议,由于我网络不是很好,还问了一些其他的问题(例如MAC地址和ip地址的区别等)。

OpenGL、GLSurfaceView和Shader,主要聊了OpenGL绘制方法,还有一些Binder相关知识,

单例,快排,回型打印二维数组
写一个死锁,死锁是怎样产生的,怎样防止死锁
Acticity启动模式有几种,分别代表什么意思
聊项目都做了些什么

字符串反转,讨论复杂度。

给定一个int型 n,输出1~n的字符串例如 n = 4 输出“1 2 3 4”
输出所有的笛卡尔积组合
单例模式
最长上升子序列

对刚才做的题,一些错的地方做了讨论,主要是类的加载和内部类方面的知识,尤其一些深入到JVM层的知识的确自己有一些不足,不过大部分都还是能答出来。
双亲委托机制,类的五个加载过程。
java类加载器的加载流程。
Binder机制,从java到framework再到kenral层,面试官问的都很详细,遇到不会的也都会跟我解释。
Serializable和Parcelable的区别。
View的绘制流程,详细到framework代码,讨论到不确定的地方,立马打开电脑和我一起看源码。
事件分发机制。
常用设计模式,使用静态内部类实现单例的原理是什么。
线程同步,CopyOnWriteArrayList怎样实现。
Volley源码,EventBus源码。

GLSufaceView,OpengGL,Shader相关一些知识,在项目中做的优化
gc是根据什么来回收一个对象的,引用计数和gc root分别怎么实现。
怎样会产生内存泄露,举一个具体的例子,使用什么检查内存泄露
自定义View的绘制流程
给出二叉树和一个值,找出所有和为这个值的路径;{1,3}{3,6}{3,4}{6,8}区间去重,最少去掉几个集 合,可以让这个集合没有交集。

什么是ANR,Activity、BroadcastReceiver、Service对ANR时间限制分别是多少,怎么处理ANR,除了系统生成trace.txt文件,怎么在程序中检测ANR。写出伪代码。
编解码一些知识,I帧,B帧,P帧区别。
Android一些优化方案。
算法 n/m,怎么判断得数是无限循环小数。

事件分发机制。
算法,将一个字符串转换成int型数字,考虑 错误输入,溢出,正负值等一些条件,考细心。
给出一个搜索二叉树,输出一个排序好的双向链表。

类的加载过程,Person person = new Person();为例进行说明。
JVM相关知识,GC机制。
类的加载器,双亲机制,Android的类加载器。
Android中进程的级别,以及各自的区别。
插件化原理。
集合框架,list,map,set都有哪些具体的实现类,区别都是什么。
concurrentHashmap原理,原子类。
volatile原理。
Binder机制。
View的绘制流程,事件传递机制,Handler异步消息机制。
Interger中的128(-128~127),这里考的是常量池的概念,这个没回答上来。
线程池的相关知识。
Handler机制,HandlerThread实现等等。
LRUCache算法是怎样实现的。

说了说项目中相关的知识。
聊了聊之前做过的项目。
内存泄露,怎样查找,怎么产生的内存泄露。
怎样计算一张图片的大小,加载bitmap过程(怎样保证不产生内存溢出),二级缓存,LRUCache算法。
简单介绍一下java中的泛型,泛型擦除以及相关的概念。
Android优化相关的只是,布局优化、内存优化等等。
SQL相关的知识优化的方案,这里我直接说不太了解,就过了。
算法题,m * n的矩阵,能形成几个正方形(2 * 2能形成1个正方形,2 * 3 2个,3 * 3 6个)

项目相关。
Android优化.。
插件化相关技术,热修补技术是怎样实现的,和插件化有什么区别。

询问了我博客上写的一些东西,从项目立意谈起,到设计,再到详细的技术实现,可谓是面面俱到,由于自己写的博客还是比较熟悉,回答的还不错。
GLSurfaceView的相关知识,OpenGL,Shader,绘制流程。
询问当前做的项目,以及到具体的实现和优化。
多进程间的通讯,Binder机制。
询问看过哪些框架源码,EventBus,Volley讲了一下。

广度:比较新的技术(Rxjava,插件化等),JVM,GC,网络,数据库,Android(一般不会询问之前面试官问过的问题)。
深度:一般会通过1或2个问题来考察,例如:map接口下都有什么子类->hashmap和hashtable区别->hashmap实现原理->怎么解决hash冲突->是否了解concurrentHashmap->concurrentHashmap实现原理->volatile实现原理(concurrentHashmap读是不加锁的,使用到了volatile)。

更多相关文章

  1. 【Android】Android Studio中gradle scripts的配置,如何运行别人
  2. Android Studio v1.0 项目无法运行
  3. android listview 右滑删除(android 项目心得五)
  4. android 事件处理机制
  5. Android BLE Gatt实现原理解析(未完)
  6. 安卓Android大量项目源码实例
  7. Android应用程序键盘(Keyboard)消息处理机制分析(26)
  8. 基于Android的音乐播放器项目

随机推荐

  1. android仿网易云音乐引导页、仿书旗小说F
  2. 范例解析:学习Android的IPC主板模式
  3. Android(安卓)2.3系统令人为之兴奋的十大
  4. 【Android(安卓)内存优化】Bitmap 内存缓
  5. 波音787 Dreamliner娱乐系统将选择Androi
  6. android 字节数据的转换与处理
  7. 是时候让 Android(安卓)Tools 属性拯救你
  8. pc 应用 通过 usb adb 与 android客户端
  9. ArcGIS for Android(安卓)Runtime100 基
  10. 使用jni接口完成android本地程序的运行--