Android基础
- 五种布局的特点和效率对比
- Activity的生命周期和缓存
- Fragment的生命周期
- Service的两种启动方式,如何保证一个Service不被杀死
- 广播注册的两种方式的区别
- 如何安全的退出一个已经开启多个activity的APP
- Android的进程优先级
- Asset目录与res目录的区别
- ANR问题,force close问题,activity,service,broadcast各自超过多少秒报ANR
- Activity启动模式,intent匹配规则
- Android反编译
- JNI和native方法
- Android系统的有哪些安全机制
- Android新特性有哪些(5.0 6.0 7.0)
- Dalvik和ART区别
- Android屏幕适配有哪些方法
- View事件体系,滑动冲突
- View绘制原理,性能问题(view绘制间隔16ms,60fps),measure,layout,draw三大过程
- 如何避免overdraw
- 自定义View相关知识,下拉刷新的实现
- Android动画分类和各自特点
- View和SurfaceView的区别
- APK瘦身的办法
- ListView的源码和如何优化Listview
- Android如何获取Crash信息
- ANR日志分析
- Android动态加载,如何解决方法数越界
- Android怎么加速启动Activity
- Android内存泄漏问题,内存泄漏分析工具
- Android内存溢出问题,图片的三级缓存
- Android系统开机过程
- Zygote和System进程的启动过程
- Activity的启动过程
- Android的消息机制,Handler原理
- AsyncTask源码,优缺点
- HandlerThread和IntentService的原理和特点
- Android的IPC机制
- AIDL原理
- Binder机制原理
- ActivityManagerService
- Volley
- xUtils
- okHttp
- UniversalImageLoader
- RxJava
-
一个如何维持一个长连接
-
如何实现进程保活
-
项目中有没有见过内存泄漏?为什么会产生?怎么解决的?
-
Handler的原理
-
Binder的原理
-
Binder里面引用计数的原理
-
Binder底层为什么用红黑树,红黑树的原理知道吗
-
Retrofit的原理,为什么不用volley
-
为什么选用Glide,原理?
-
LruCache的原理
-
Android系统框架
-
handler和asyncTast的区别,然后让我自己设计线程池怎么做
-
Fragment好处,碰到过什么bug,怎么解决的
-
为什么选用Realm,原理是什么
-
如何设计一个网络加载框架
-
Android四大组件的理解(这个扯了十多分钟)
-
ContentProvider的启动过程
-
Activity的四种启动模式,用过哪一种,为什么要用
-
Service和InentService的区别
-
View的事件分发和绘制原理
-
如何解决滑动冲突
-
.接着问了是否用过 volley,果断没有,说用过Retrofit,毕竟现在都是MVP+Retrofit+RXJava,然后就让讲下MVP
-
多进程通信的方式(这个就比较模式化了,面试官也知道基本用不上)
-
广播的使用
-
Handler机制,以及具体的使用情况
-
讨论了一下各个框架的使用
-
AIDL,广播的种类
-
.如何解决app卡顿的问题,用到哪些工具
-
view的绘制流程
-
多线程和handler结合使用要注意什么 (我没get到他的点,他想要的答案是当activity隐藏或者销毁的时候要注意handler的任务取消之类的)
-
四大组件是在主线程运行的吗
-
sqlite的相关的
-
下载大文件要注意的事情(防止OOM)
-
Android的启动流程、四大组件、listview的运用于优化、MVP、两个activity怎么传输数据,intent是怎么实现传输数据的,闹钟怎么实现
-
fragment,该怎么用,比如实现类似微信的那种滑动,讲了一下fragment的滑动以及底部状态的切换。之后又问了怎么保存view的数据,当时以为就是回调生命周期的方法时保存数据,面试官就给我讲了一下现在常用了的将顶层的view作为变量然后传递引用,之后切换回来的时候直接在oncreateview里面进行判断即可。
-
Activity与Fragment的生命周期。
-
Acitivty的四中启动模式与特点。
-
Activity缓存方法。
-
Service的生命周期,两种启动方法,有什么区别。
-
怎么保证service不被杀死。
-
广播的两种注册方法,有什么区别。
-
Intent的使用方法,可以传递哪些数据类型。
-
ContentProvider使用方法。
-
Thread、AsycTask、IntentService的使用场景与特点。
-
五种布局:FrameLayout、LinearLayout、AbsoluteLayout、RelativeLayout、TableLayout各自特点及绘制效率对比。
-
Android的数据存储形式。
-
Sqlite的基本操作。
-
Android中的MVC模式。
-
Merge、ViewStub的作用。
-
Json有什么优劣势。
-
动画有哪两类,各有什么特点?
-
Handler、Loop消息队列模型,各部分的作用。
-
怎样退出终止App。
-
Asset目录与res目录的区别。
-
Android怎么加速启动Activity。
-
Android内存优化方法:ListView优化,及时关闭资源,图片缓存等等。
-
Android中弱引用与软引用的应用场景。
-
Bitmap的四中属性,与每种属性队形的大小。
-
View与View Group分类。自定义View过程:onMeasure()、onLayout()、onDraw()。
-
Touch事件分发机制。
-
Android长连接,怎么处理心跳机制。
-
Zygote的启动过程。
-
Android IPC:Binder原理。
-
你用过什么框架,是否看过源码,是否知道底层原理。
-
进程有哪些通信方式
-
ListView优化方案
-
service和线程的关系
-
.looper是线程级别还是进程级别
-
activity1启动activity2的过程,是否可以在新的进程里面,如果在新的进程里面流程有什么不同。启动按返回系统的调度。
-
广播的注册方式,信息是保存在哪里,发送广播是如何回调广播接收者。
-
app安装过程,每次开机是否会重新安装所有的app
-
Android系统为系统安全性做什么事情
-
zygote和systemservice的关系
-
为什么zygote死掉后会重新启动
-
界面的绘制过程
-
开机画面有几个,分别是什么时候显示和暂停
-
activity四种启动模式
-
有没有使用过Android的开源库,或者开源控件
-
启动一个应用的流程
-
打开一个activity的过程
-
设计一个Android的下载模块
-
项目点为什么要用view不用fragment?同样fragment可以解决缓存(用了view,并且设了map作为缓存,为了模拟activity栈重制了新的栈来实现相同的回退功能,需要处理连续点击和多次点击的问题,还需要解决连续点view,缓存增大而oom)
-
用了什么设计模式?为什么要这么用?(举例了观察者+工厂)
-
谈一下Collection包:hashmap底层实现,用了什么方法解决hash冲突(基于jdk版本),具体是如何实现(jdk1.5链表头插还是尾插),为什么不安全?如何变得安全(concurrent包下集合类),concurrentHashmap实现原理是?
-
Executor框架说说你的理解?
-
结束一条Thread有什么方法?interrupt底层实现有看过吗?线程的状态是怎么样的?如果给你实现会怎么样做?
-
Io和nio有没有了解?
-
现在需要在四大组件中传数据?如何传,方法有哪些(需要自己再具体说什么情况)?
-
缓存算法除了lru还认识哪种?
-
Java中有内存泄露吗?是怎么样的情景?为什么不用循环计数?
-
ANR产生原因?怎么定位?
-
ContextImpl的源码使用的设计模式?为什么你认为其中有外观?
-
在一个app中,只有在一张activity,所有功能业务逻辑在里面实现,现在报ANR,你会怎么做?(代码层面:耗时操作(UI、网络、数据库),工具层面:trace和crashHandle)
-
Android中ClassLoader和java中有什么关系和区别
-
用过什么开源,举一个例子?(volley)
-
Activity生命周期?情景:现在在一张act1点了新的act2,周期如何?
-
Act的launchMode,有没有结合项目用过(自己的程序锁和微信的PC端登陆对比,不过我现在又发现,应该大约估计可能是动态加载的一个缺陷,如果有找到相关信息,请务必跟我说。具体问题就是,当在PC端登录时,Android终端的微信会跳出,即使wechat的task不是在fore,当按下确认,返回的是wechat,而不是自己先前的app)
-
View的绘制原理,有没有用canvas自己画过ui?
-
动态加载主要问题
-
插件化
-
Assetmanager获取资源原理和资源获取原理
-
项目Oom异常解决方案+用户体验优化方案
-
Touch传递机制+listview滑动冲突
-
Volley底层实现
-
为什么不能用volley请求大数据
-
Volley底层实现+设计模式理解
-
Imageloader缓存策略
-
项目如何解决oom?响应速度是怎么优化?电量消耗如何优化?
-
描述一下Aidl和android ipc?(binder机制没跟他讲得很深)
-
屏幕适配使用的方案?有没有辅助的工具帮助?(hyviewer)
-
如何分析内存泄露?(代码+工具traceview+mat)
-
那ANR呢?(我忘记了trace)
-
View树绘制?如何优化布局?
-
事件传递原理?
-
uil的框架如何设计?有没有用过glide?(结合了fresco的分析)
-
Volley和okhttp底层实现(也讲了okio),为什么说okhttp高效?
-
Listview的优化(同一布局,左为bm,右为text)?
-
Apk瘦身可以关注什么点?(这里忘记了说so库,然而他也不会)
-
讲一下动态加载技术点?
-
适配优化屏幕适配接触到什么方法?
-
Binder机制(只深入到framework)
-
View树绘制+事件分发
-
Contextimpl源码,几种context的区别
-
如何实现通讯?Binder机制
-
屏幕适配接触到什么方法?
-
java内存泄露是怎么样的?(本质+handler例子)
-
Handler机制?
-
情景题,把handler设static,里面需要对一个view更新,会不会内存泄露?(可达性分析)
-
UI接触得多吗?有没有用过canvas画过图?
-
在项目中为什么要用动态加载?最大的问题是什么?怎么解决资源管理问题
-
Volley底层实现?(okhttp没问)
-
自己写的图片加载工具类谈一下?(结合uil谈了一下)
-
描述下Aidl?觉得aidl有什么缺陷
-
JNI的使用。
-
Activity启动模式
-
两个应用能使用同一个任务栈么?
-
Binder机制
-
Volley源码的实现
-
大图加载
-
Http && Https
-
常用的加密算法,对称加密和非对称加密
-
Android里的序列化
-
Android里的内存泄漏
-
Android里的设计模式
-
两个应用间Binder通信的原理
-
OkHttp如何对链接进行复用
-
如何设计锁
-
内存泄漏如何发现(用什么工具)
-
Handler+Thread机制、
-
View绘制过程、
-
Activity的启动过程
-
什么时候会发生SOF问题
-
有用过什么框架,看过他们的源码没?
-
平时有用过什么开源项目?
-
AnsycTask的原理?(我的简历里提到过AnsycTask)
-
在纸上写了个Activity,然后在类里面定义了一个Handler,问我这个会有警告,怎么解决?--static、软引用
-
Service的保活
-
Handler机制,Handler除了线程通信还有什么作用,这个我说通知吧,因为Android是消息驱动的,不是特别明白面试官要问哪点,难道是延时?
-
Activity的启动模式,每种启动模式的使用场景,singletop中回调onNewIntent和finish掉之后onCreate()有什么不同?,这个4种的使用场景中,我singletop回答不是特别好,应该是那种频繁接受消息的activity需要使用
-
Fragment的生命周期,栈管理,和commit()类似的方法还有哪个,commit类似的那个之前真没注意,应该是commitAllowingStateLoss(),区别是是否能在activity保存之后调用
-
实现一个文件夹列表,面试官要求5000个文件的时候才从ViewGroup转到ListView
-
ART和Dalvik的区别
-
批量插入50条联系人,比较高效的方法,ContentProvider是否了解原理
-
启动一个APP的流程
-
android学了多久?广播分为几种?实现原理,工作原理,广播接收器有几种?
-
ipc的方式
-
AIDL怎么用?
-
android四大组件
-
broadcast机制
-
thread.wait()与thread.sleep()区别
-
okhttp原理
-
线程池机制
-
androird进程间通信方式
-
事件分发机制
-
view的绘制流程
-
MVP的介绍
-
说了下Android事件的分发机制
-
onSaveInstanceState和onRestoreInstanceState调用的过程和时机,onNewIntent方法
-
fragment的生命周期,和Activity如何进行通信
-
Android的事件分发机制,ACTION_DOWN和后续事件如何消耗
-
Activity的启动方式
-
View的绘制流程,MeasureSpec如何工作,父的MeasureSpec和自己的LayoutParams
-
广播的两种注册方式
-
数据库如何升级(懵逼)
-
Handler Looper的使用方式,实现机制,设计的原因
-
HandlerThread有没有了解(很神奇的我完全忘了当时是怎么答的了)
-
ThreadLocal是干嘛的,使用的地方
-
Sqlite的一些问题
-
Activity A调用Activity B时,A调用什么函数(onPause)
-
onSaveInstanceState和onRestoreInstanceState又问了一次
-
JNI的参数ENV参数。。。
-
JNI工作时,java 层的类如何找到C/C++层的类(懵)
-
AIDL的工作流程
-
Service与Thread区别,这个问题应该是必问的了,一定要知道清楚。
-
SQLite能否并发读取或者写入,自己只记得不能并发写,可以并发读,但是原因不清楚。
-
Activity与Service的通信问题,这里要对Binder机制和AIDL比较了解,因为自己没在项目中用过,所以回答的不是很好。这个还可以通Broadcast进行通信。
-
画出Activity与Fragment生命周期
-
activity生命周期,启动模式,service在哪个线程,service防杀死
-
ViewPager如何判断左滑右滑
-
activity的启动模式及在你项目里的应用
-
View事件分发机制
-
view事件冲突的处理
-
android7.0的虚拟机的优化(什么即时编译)
-
启动一个应用的流程(从点击桌面的icon开始)
-
sqlite如何批量插入大量数据,如何提高效率(放到一个事务里)
-
fragment 和activity之间如何选择(说出自己的理解)
-
android6.0 的动态权限(聊项目时扯上去的)
-
View的绘制过程
-
当时谈到使用到了开源框架xtuil中的dbxutil和httptuil,然后让分析这俩个模块源码;其中详细问了httputil实现原理(主要是线程池,封装的是httpclient) 使用到了slidingmenu_library开源控件,让分析这个开源框架的源码;
-
说说你做过最复杂的控件
-
animation 和animator的区别
-
说说推送 ,扯到长连接,心跳包,直接被面试官打断,这个我们都知道,说说保持一个长连接很简单,为什么长连接会带来很多麻烦,还提示从耗电量,微信分析
-
项目使用开源框架的源码分析讨论 ,主要还是集中在httputil源码实现、讨论了线程池设计,阻塞队列; 由于httputil封装了httpclient,然后让比较 httpclient和httpurlclient区别; 扯到了http协议,问了http与https区别,(当时我在分析直接被打断,“这个我们都知道,简介概括”,然后我我直接说https=http+ssl+加密算法); 加密算法是对称还是非对称的,,商量秘钥的过程是对称还是非对称
-
android消息处理机制 ,handler+loop分析; loop线程与普通线程区别; asynctask源码分析(这里有个线程池几个关键参数5,128,使用的阻塞队列,补充讲了asynctask缺陷) ;如何改进asynctask造成的内存泄露的问题,从而延伸到 jvm虚拟机四种引用
-
说说androi 使用卡顿是什么造成的,给出优化 ,主要回答了ui overdraw避免,<include>标签,<viewstub>标签,<merge>标签使用,hierarchy viewer工具的使用; 面试官追问:再从底层分析;(其实就是 16ms和60fps的追求了) ;再结合GPU操作分析一下UI过程; 然后说到了大图加载问题,提到UIL框架,让分析内部源码(我主要从uil的缓存策略和线程池机制分析)
-
忽然扯到并发,让分析concurrenthashmap,答了分段锁仍不满意,要求再分析一下size操作是如何做的
-
从listview优化谈到recyclerview,深入分析一下recyclerview特点 ,然后引申到瀑布流如何实现,不使用recyclerview如何实现瀑布流。
-
属性动画
-
touch事件分发机制
-
android开机过程(主要讨论了zygote)
-
让你设计一个游戏人物,如何设计 ,主要讲了抽象类+接口+mvc和mvp模式
-
Android中的几种Context什么区别?这个问题我回答的不好,简单说了一下生命周期和Context的继承关系,以及注意事项弹对话框不能使用applicatuion的上下文
-
Android中的内存泄露遇到过没?我讲了Handler持有Activity泄露以及google建议的嵌套类、弱引用的解决方案、Drawable的setCallback,耗时的线程可能会持有Activity,Bitmap调用recycle,因为以前bitmap在native分配,所以要调用recycle释放,现在不用了因为在堆分配,由GC回收,他问我是几点几版本开始的,我说是3.0版本。
-
接着问我bitmap能否复用?这个我没弄懂意思,就回答不知道,最后查了一下,也是3.0以后的有个Option的inbitmap字段可以复用
-
平时遇到过OOM没?遇到过,主要是图片加载很常见,我讲了BitmapFactory的解析Options的in...bound参数先读取图片信息进行必要的缩放,还有缓存,讲了DiskLruCache、LruCache缓存策略,以及可以加入软引用,讲了底层的LinkedHashMap实现。
-
用过外观模式?(表示没听过)这是Android中的知识吗?面试官告诉我,是一种设计模式,我说,哦,没有,我知道的有单例模式、工厂模式、代理模式、观察者模式、装饰者模式、迭代器模式。然后让我讲一下代理模式,我就大概说了一下,然后说在Android中使用AIDL产生的的代码中当查不到本地的Binder时asInterface返回的就是一个代理对象,然后面试官说,那就是你使用过bindService调用过Service了?恩。
-
FrameWork层看过那些源码?Java源码呢?讲了一下看过的框架层源码和java集合,没有具体讲。
-
自定义控件做过哪些,需要注意什么?处理wrap_content的情况,ondraw不能耗时,刷新率16ms等,然后让我讲了一下圆角矩形的图片控件怎么做,降到了画笔的xferm...方法进行图面交叠。
-
还问到我Android动态加载了解不?我没用过,但之前看到过通过DexClassLoader使用接口实现的一种插件形式
-
draw和onDraw方法区别。
-
view和viewGroup区别。
-
内存溢出处理。
-
Activity能运行在别的进程中吗?
-
内存泄漏。
-
Bitmap的recycle方法执行后会立即回收内存吗?
-
进程间通信的方法。
-
Activity中如何调用另一个进程Service里的方法?
-
AIDL的方式能访问另一个进程Service里静态变量吗?
-
Activity的四种启动模式。
-
有用过什么框架?
-
知道Picasso的缓存机制吗?
-
ListView的优化。
-
有木有在项目中用到什么设计模式?
-
更新UI用的什么机制?(最后一个问题没听懂问的是什么,追问了面试官,面试官说了什么上层调用底层,底层再调用上层......还是没听懂,就说网络请求用的框架,在回调接口中更新UI)
-
在项目中有没有用到图片加载库?网络加载库?
-
问我JAVA哪些先进的东西给你在Android开发带来方便?我说JSON库。知道几种JSON库,有什么区别?
-
跨线程通信 主要涉及LooperMessageHandler以及MessageQueue
-
说一下自定义View需要注意哪些细节 主要说了一下View绘制的三大过程onDraw()不要做耗时操作 不要创建新对象 以及 怎么处理View的触摸事件
-
View的事件冲突的解决办法 ps:重写dispatchEvent()或者touch()方法
-
讲一下listView的优化方法
-
讲一下RecycleView与listview的区别
-
view的绘制过程
-
Activity的启动模式
-
跨线程通信
-
夸进程通信 主要是Android的AIDL
-
如何解析json数据和xml
-
自定义view的几个步骤 怎么刷新view ps:onLayout(); onMeasrue();onDraw();
-
RecycleView的优化
-
几种context的区别
-
看过什么源码没有
-
讲一下binder类
-
Runnable运行在哪个线程里面 ps:开启一个子线程的唯一方法就是new Thread().start();
-
HashMap和HashTable的区别
-
raw和assets文件夹的区别
-
activity关闭后尚未运行完毕的thread会怎么样 ps:会变成空进程线程,优先级最低 很容易被终止回收
-
mainfest文件的合并规则
-
跨线程通信
-
讲了其中一个项目是怎么实现的 问jsoup怎么拼 = =
-
用过哪些开源库 讲一下他的架构是怎样的
-
图片三级缓存 内存缓存满了怎么办 ps:优先级队列 满了后根据优先级主动删除一部分图片 根据LRU算法确定优先级
-
讲一下JNI开发的过程 java怎么找到c函数 ps:JNINativeMethod保存函数对应关系
-
activity的四中启动模式
-
service的生命周期
-
项目中用JNI做什么 为什么要用他呢
-
什么是OAuth协议 做什么的
-
四大组件,详细说
-
handler机制(深入源码)
-
CotentProvider的权限问题,就是怎么样使得数据对外有选择性的提供和使用
-
Android的存储方式
-
Handler、Looper、MessageQueue
-
AsyncTask 为什么java已经有线程池的实现了,还要继续使用AsyncTask,AsyncTask相对于java自带的线程池的好处
-
onTouch事件的处理机制
-
说一下MVC以及其在Android中的应用
-
说一下OOM以及你怎么解决的
-
了解Android的Framework么
-
说一下一个Android APP从点击打开开始,是怎样展示在用户面前的(Zygote、Ams、Wms等)
-
viewpager里面只能嵌套view吗 可不可以嵌套Activity
-
假如viewpager里面的每一页都有有很大数据量的内容,那么在快速的左右滑动时,如果出现了内存被回收的情况,如何处理 假如出现了OOM,怎么处理
-
同上情况,使用Fragment,又当如何?与viewpager有什么区别
-
ExpandableListView的Adapter怎么写
-
在ListView的每个item中如果可能出现的view都不一样,如何处理?动态获取view种类数量的话是不是就不能使用viewHolder进行优化?固定显示view如果不存在该种view就不显示的方法是否太耗内存
-
ListView的Adapter的getView具体是什么机制?
-
Activity之间传递大量的数据用什么方法 Binder Bundle不够大 Socket 在同一应用中没必要使用 共享内存 static变量——同一应用中static变量如何控制,会不会并发出问题,如果Activity由于内存不足被kill掉,再重启的时候static变量的值还可靠吗:设置专门的访问类,进行读写控制,以及Activity重启后的初始化工作。
-
SQLite在使用时 假如ActivityA是用于修改SQLite,ActivityBCDEF。。。是用来展示SQLite的内容,如何在修改SQLite的同时使得BCDEF...都立刻获得最新的数据?SQLite有没有类似于ContentObserver的这么一种监视类可以监听到SQLite内容的改变?如果广播通知所有类,那么广播可以携带多大的数据?
-
假设把一个ActivityB向右滑动可以回到上一个ActivityA,B渐渐透明,A渐渐清晰,要怎么编写页面?说说你对android:theme的理解,说说你对alpha值的理解
-
ListView在数据量很大图片很多的情况下怎么优化?假如一个图片,轻轻的向上滑动一丢丢,那么需要重绘吗?(什么鬼。。。)
-
详细展开说一下所有LaunchMode的应用场景
-
假如A-》B-》C,想让C后退直接到A,使用什么样的intentflag?
-
假如A-》B-》C,C使用singleTask,C后退,后退到什么地方呢?
-
在全屏显示高清大图的时候,网速慢的情况下如何显示?渐进式显示是怎么做到的?如果想显示下载进度圈圈,该如何实现?
-
AsyncTask在4.x以后有什么改变?怎样改回并发执行好多个?如果一个AsyncTask结束取得结果之前Activity就因为内存原因被Destroy掉了,那会有什么情况发生?会内存泄露吗?会空指针吗?需要在Activity彻底死掉之前把AsyncTaskcancel掉吗?如果没有cancel掉,然后Activity重启了,那这个Asynctask又当如何呢?
-
AsyncTask内部实现机理 与Thread+Handler有什么不同
-
说一下HandlerThread
-
你的APP里,是每个Activity都有一个Handler呢还是所有Activity共享一个Handler
-
基于事件监听、基于事件回调 假如一个touch事件发生,那是监听器先收到还是onTouch函数先收到
-
假如你要记录ListView滚动到的位置,要记录什么信息,view怎样获得坐标信息
-
说一下canvas
-
dialog和popupwindow的应用场景 如果popupwindow在没有dismiss的时候Activity finish了,会出现什么情况?
-
了解过什么三方库?为什么不用三方库?
-
Service和推送通知,通知有没有可能出现有推送但是通知栏收不到通知?service被kill掉会如何?如何保证service不被kill掉
-
了不了解Scrollview scrollview和ListView有什么相似点 有什么不同 那如果这两个是继承关系 那应该是谁继承谁?
-
dp sp px各自的应用场景是什么 换算关系是什么 使用sp的时候如果调整系统字体,显示字体会跟着调整吗?
-
gallery为什么被废弃?为什么Google推荐使用viewpager代替gallery呢?有什么改进?
-
handler.postAtTime不是延时post么 那handler怎么延时处理Message
-
ListView的优化 ;Lru如何实现的 ;OOM的处理 ;GC原理 ;循环引用的问题 引用计数与可达性算法 ;LaunchMode
-
网络框架实现,volley原理
-
线程池原理,java提供了哪些线程池
-
一个activity只能有一个进程么【对进程的理解】
-
activity任务栈,启动模式相关,四种启动模式
-
夜间主题的实现方式
-
动态加载原理,classloader理解
-
listview实现item左滑需要考虑的问题
-
view的事件分发与渲染流程
-
LruCache的理解,原理,以及还有哪些方式实现缓存调度
-
GC原理,实现方式,能否手动去控制GC回收
-
OOM,内存泄漏的问题有没有遇到过,如何处理
-
mvp与mvc的区别,实现,原理
-
volley原理,发送五个请求(相同以及不同)时,内部所做处理?如何根据发送请求结束后,剔除相同的等待请求?
-
图片缓存技术的实现,如何结合volley实现,volley自带缓存管理还是需要自己去实现,缓存的底层实现
-
listview原理,adapter与view是如何绑定的,如何自己设计一个类似listview的自定义view,子item复用,管理以及getView的实现
-
android线程模型,looper,messageQueue一套机制
-
线程实现方式,thread+asynctask+handlerThread+intentService,彼此的应用场景以及原理
-
asynctask底层实现原理,为何不能在非主线程中实例化,其实还是跟onPre and onPost在当前线程实现有关
-
手机唯一标识方式
-
手机app耗电量跟什么有关,耗电优化
-
推送服务原理,心跳机制
-
service使用注意事项以及原理
-
服务应用唤醒实现,aidl 的service更新后如何让旧的客户端兼容
-
多线程实现,通信原理
-
进程通信原理,使用订阅者模式时,服务端拿到的binder对象为何是新的实例,如何获取到真正客户端实例(RemoteCallbackList)
-
ssl协议,握手交换密钥过程,加密算法,对称非对称加密原理
-
lrucache原理实现,linkedhashmap底层,手写代码实现lrucache,对相关的bitmap进行管理
-
线程池构造函数传参意义,手写代码实现线程池,继承方式,不能用现成的
-
异步接口实现,实现跨线程通信,不能用handler,looper那一套机制
-
socket编程实现http请求,手写代码实现
-
volley原理实现
-
Android事件分发
-
scrollview特点
-
处理listview图片错位方式
-
Mvp与mvc区别,实现,架构表示
-
android缓存实现
-
Java线程 run与start区别,原理实现
-
打包混淆原理
-
volley原理,实现
-
jar封装的private方法能否在外部调用
-
反编译方式工具及其原理
-
网络请求方面如何处理
-
jni使用及其原理
-
对称加密与非对称加密
-
使用图片缓存但是服务器改了实际的图片,但url一样,如何在客户端区别
-
线程间通信,进程间通信,binder原理
-
sharepreference原理
-
事件分发原理
-
设计模式,延迟加载实现单例模式,内部类来解决,加锁也不稳
-
mvp与mvc
-
线程池调度实现,不能用executor(当时居然以为blockingqueue存线程呢=_=)
-
动态加载,dex分包,热修复
-
缓存原理实现,内存如何分配
-
如何减小apk体积
-
性能优化从哪几方面考虑(内存,cpu,fps,ddms灵活dump)
-
looper,handler等原理
-
activity的启动模式
-
listview与recycleView的区别与优缺点
-
A向B发送消息,A能实时看到B的阅读时间,问A实现方式
-
volley层次结构,原理,为什么选用volley,不用其他开源框架,对开源框架的看法
-
MVC与MVP的区别,activity,fragment扮演的角色,presentor之间的通信问题。
-
进程间的通信,binder的原理,intent与aidl的应用场景及相关比较
-
图片如何缓存处理,如何处理oom
-
自定义view实现,注意事项
-
加载图片请求的超时时间设置,多少秒合适,原因,大图如何加载。
-
线程间的通信,并发问题解决方案。
-
快速排序为什么叫做快排,其算法复杂度,及其实现原理
-
应用签名是为了什么,签名原理是什么
-
root之后有什么重大的变化,开发者可以操作什么
-
给出九游android客户端程序,解释下相应的布局,listView做大面积的嵌套,下拉刷新的实现
-
渠道提示不合法的问题,为何系统能识别渠道非法
-
说一下Binder机制的底层实现。
-
Android中进程之间通信,除了Binder还有什么?说一下底层实现原理
-
说一下Android中的事件处理流程,结合源码解释,不要直接说规律结论。
-
系统调用的方式?系统调用发生的场景?系统调用常用函数?系统调用的具体过程?
-
Binder的一次拷贝发生在哪里。
-
AMS的作用?
-
一个Activity启动另一个Activity时函数调用流程。
-
Android中Handler机制?
-
什么是ThreadLocal,一个线程可以获取到另一个线程的Looper吗?怎么获得?
-
序列化怎么实现?答安卓端有Serializable和Parcelable。然后问这两个有什么区别,分别怎么实现。
-
问fragmentPagerAdapter和fragmentStateAdapter的区别。
-
fragment和fragment怎么通信?
-
listview怎么优化?
-
网络通信怎么做的?volley的实现?
-
http和https的区别?
-
有看过开源第三方库吗?
-
登陆注册这块的逻辑一般怎么做?
-
canvas画了个线,怎么撤销?
-
性能优化怎么做?
-
写了多少代码?有开源项目吗?有参与开源项目吗?
-
bitmap的本质?答到了cpp层。
-
activity的异常退出和启动调用的方法
-
activity和service的区别
-
service启动方式以及区别,以及service的作用
-
activity的launchmode
-
过滤规则在manifest和代码中注册有啥区别
-
布局中优化常用方法,以及分析工具,我答的时候基本围绕层级优化答得,考官建议我从过度绘制等加强学习
-
屏幕适配问题,老生常谈啦
-
bitmap加载一个100张图片的优化处理
-
lrucache和disklrucache,其中还问到软引用和弱引用的使用
-
listview的优化
-
自己用过什么开源框架,还有看过源码吗
-
react-native的通信机制
-
react-native和phonegap的区别
-
自己在项目中开发遇到的坑关于react-native
-
有没有看过react-native的源码,能否讲讲最熟悉的源码
-
线程和进程的区别,线程自己有没有自己的内存
-
多线程带来的影响
-
binder的机制
-
android为什么使用binder进行跨进程通信
-
Andorid四大组件
-
anroid生命周期,opause,onStop区别
-
Fragment,是否看过源码,如何启动
-
Service有哪几种
-
隐式启动和显示启动
-
Service两种启动方式
-
启动线程方式有哪几种
-
handle消息队列相关
-
几种常用布局,布局到group树过程。。。。
-
weight属性
-
布局优化相关
-
Arraylist LinkList
-
线程进程区别
-
一个app能否是多进程?(大概)
-
converview一些知识点
-
oom如何发现
-
handler出现oom如何解决
-
如何开启多个网络异步请求
-
线程池内线程的数量如何确定
-
说说OKHTTP的实现
-
UIM的实现
-
讲一下mvp,mvp和mvc区别,讲一下用过的开源项目,说一下如何实现
-
asynctask实现
-
线程池如何使用
-
如何实现多进程,进程间如何通信,具体讲一下socket
-
surfaceView
-
如何进行界面优化
-
如何实现缓存
-
IOC的思想?
-
AOP的思想?
-
为什么android要推出handler啊?handlder能不能用在线程中创建啊?
-
AysnTask的源码分析,能不能在其他线程中创建的?
-
一个关于android进程的问题,哪些android进程不能被杀死的?
-
断点续传的基本原理(问的很细很细)
-
图片压缩方式
-
数据结构对一个基本有序的数组应该采用什么方式进行排序,对一个乱序的数组应该采用什么方式排序能快速找到前n个数?为什么?
-
Java和JavaScript的区别
-
介绍一下restful框架
-
多线程安全实现方式,synchronized和lock,信号量的区别
-
http的理解,http中无状态的含义是
-
cookie和session的区别
-
虚拟机相关知识
-
四大组件生命周期
-
对我项目中用到一个开源框架中算法了解吗?(IK Analyzer)
-
数据缓存处理
-
断点续传原理
-
Hashmap和hashtable之间的区别
-
四大组件相关知识
-
lrucache的基本原理
-
三级缓存的理解
-
Volley的原理及使用
-
对Restful了解
-
事件分发机制(问的很细很细)
-
自定义view的绘制方式
-
Listview的优化(问的很细很细)
-
Xml解析方式,原理优缺点
-
自定义控件如何绘制,然后现场画出了一个控件,问我具体应该怎么绘制(如何计算子view的宽高度等等)问的超级细
-
算法题题目忘了,只记得写的时候时间复杂度过高。
-
Activity的生命周期及其他相关知识
-
安卓动画相关知识
-
service中启动方式有哪些区别是?
-
线程安全实现方式,线程池具体原理
-
Linux和安卓中跨进程间通信间的区别,以及安卓中binder基本原理
-
四大组件的相关知识
-
java内存模型
-
GC算法具体内容
-
接口和抽象类的区别
-
四大组件的生命周期
-
Hsahmap的底层原理
-
断点续传的原理