您的位置:首页 > 移动开发 > Android开发

Android基础知识

2016-10-20 07:49 176 查看

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的底层原理

断点续传的原理

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: