一 Java类
二 Android类
1.四大组件
1)Activity的生命周期与启动模式 两个Activity跳转的生命周期,如果一个Activity跳转另一个Activity再按下Home键在回到Activity的生命周期是什么样的,热修复的实现原理与区别(因为我简历里写了)。说下Activity的横竖屏的切换的生命周期,用那个方法来保存数据,两者的区别。触发在什么时候在那个方法里可以获取数据等。
2)fragment的生命周期 activity跳转到fragment的生命周期?
3)onPause onStop的区别?
4)简单介绍四大组件 什么是多进程,进程和线程的区别,如何给四大组件指定多进程
5)说下四大组件的启动过程(从Framework层去说,不必说出每个方法的名字,大致流程即可)。四大组件的启动与销毁的方式
6)说下你对广播的理解,广播都有哪几种类型 本地广播效率比较高 为什么?
7)说下你对服务的理解,如何杀死一个服务。服务的生命周期(start与bind),前台服务和后台服务。
8)如何自己跟踪一个应用的启动时间 (注意:application 里面的attachBaseContext 和onWindowFocusChanged )
2.framework层的理解
1)说下你了解那些framework。
3.优化
1)性能优化 内存优化 实际开发中的 布局优化 内存优化,APK体积优化,代码优化,资源优化,缓存,数据库等 ListView如何优化,复用的原理,为什么会图片错位,如何解决,分页的思想是什么。
2)Bitmap如果优化,他的三级缓存的大致思想与逻辑 bitmap的三级缓存思想与如何优化bitmap
3)ListView RecycleView的区别
4)ListView的RecycleBin机制原理
4.数据结构
1)数据结构(这方面是我的弱项,于是给我一个场景让我如何去选择,为什么) 说下Android中特有的数据结构与常见的java数据结构(熟悉那个说那个),存储过程,源码与底层实现。
2)排序等算法 链表和数组
5.自定义View
1)给我说一个你项目中你用到的自定义View的实现,不用细节到代码,主要的思想与核心方法输出即可。
2)View的加载流程 如何实现一个自定义View
3)设计一个ListView左右分页排版的功能自定义View,说出主要的方法。
4)自定义控件 三个构建方法 具体啥时候回调用
6.常用的设计模式以及思想
7.线程与多线程
1)java线程,场景实现,多个线程如何同时请求,返回的结果如何等待所有线程数据完成后合成一个数据
2)线程种类
3)Android子线程与主线程交互方式,原理以及各自的优缺点。
4)有哪几种创建线程的方式,优缺点
5)线程切换与线程池的种类与作用,什么情况下使用多线程,有什么好处
6)Android中的线程有那些(我提到HandlerThread,AsyncTask又问了他们的原理与各自特点)
8. Handler
1)handler的使用与原理
9.内存泄漏
1)在实际开发中的内存泄漏产生原因,如何查看,和你所知道的内存泄漏检测工具
2)如何避免内存泄漏
10.进程间通信 AIDL
1)多进程之间的通信的方式,如何使用AIDL。他的使用场景是什么
2)说下你对多进程的理解,什么情况下要使用多进程,为什么要使用多进程,在多进程的情况下为什么要使用进程通讯。
11.数据存储
1)Android的数据存储方式有哪些,是否SQLite中要继承那个类来创建与更新数据库。SQL语句掌握怎么样。如何得到操作数据库的类等。
2)sharepreference存储是否支持进程间数据存储,为什么?
3)数据库操作中更新表结构(表字段的增加和减少)以及数据库基本的增删改查。
4)多线程进行数据库操作应该怎么做?
12 数据请求
1)如何和后台交互,post请求的数据格式定义在那里定义,手写出来。
2)http与https的理解与4层都是哪4层,在一个请求过程中都是什么时候走这些流程与各自的作用
3)http的结构有那些(请求头,请求行之类的)
4)session与cookie的区别
5)http和socket请求的区别(长连接和短连接)
6)http和https 的区别
13 动画
属性动画 补间动画 和帧动画 动画实现的基本思路 属性动画的优势
14 事件分发机制和View绘制流程(从activity开始 到decorView 到ViewGroup 到View)
15.其他
1)项目介绍,开源框架的认识如何封装,项目中的难点
2) Manifest.xml的里有什么和作用
3)如何选择第三方,从那些方面考虑
4)注解的作用与原理 说下你用过那些注解框架,他们的原理是什么。自己实现过,或是理解他的工作过程吗?
5)设计一个音乐播放界面,你会如何实现,用到那些类,如何设计,如何定义接口,如何与后台交互,如何缓存与下载,如何优化(15分钟时间)
6)你是如何实现类始于QQ表情图的,实现动图与图文并现的原理你简单说下(项目中有)
7)从哪些角度可以减少APK体积的
8)是否了SurfaceView,它是什么?他的继承方式是什么?他与View的区别(从源码角度,如加载,绘制等)。
9)如何实现进程保活
10)说下冷启动与热启动是什么,区别,如何优化,使用场景等
11)是否接触过蓝牙等开发
12)说下binder序列化与反序列化的过程,与使用过程
13)是否接触过JNI/NDK,java如何调用C语言的方法
14)如何查看模拟器中的SP与SQList文件。如何可视化查看布局嵌套层数与加载时间
15)各大平台打包上线的流程与审核时间,常见问题(主流的应用市场说出3-4)
16)支付宝与微信的支付功能接入,常见问题
17)如何在后台没有给接口的情况下如何开发应用
18)你是如何封装网络请求,数据缓存,优化,文件下载,线程池,OKHttp3源码的理解,如何提交post请求,如何处理返回数据,异常处理,实体定义等实际开发中与后台协作相关知识。