Android基础知识

Android基础

  1. 五种布局的特点和效率对比
  2. Activity的生命周期和缓存
  3. Fragment的生命周期
  4. Service的两种启动方式,如何保证一个Service不被杀死
  5. 广播注册的两种方式的区别
  6. 如何安全的退出一个已经开启多个activity的APP
  7. Android的进程优先级
  8. Asset目录与res目录的区别
  9. ANR问题,force close问题,activity,service,broadcast各自超过多少秒报ANR
  10. Activity启动模式,intent匹配规则
  11. Android反编译
  12. JNI和native方法
  13. Android系统的有哪些安全机制
  14. Android新特性有哪些(5.0 6.0 7.0)
  15. Dalvik和ART区别
  16. Android屏幕适配有哪些方法
  17. View事件体系,滑动冲突
  18. View绘制原理,性能问题(view绘制间隔16ms,60fps),measure,layout,draw三大过程
  19. 如何避免overdraw
  20. 自定义View相关知识,下拉刷新的实现
  21. Android动画分类和各自特点
  22. View和SurfaceView的区别
  23. APK瘦身的办法
  24. ListView的源码和如何优化Listview
  25. Android如何获取Crash信息
  26. ANR日志分析
  27. Android动态加载,如何解决方法数越界
  28. Android怎么加速启动Activity
  29. Android内存泄漏问题,内存泄漏分析工具
  30. Android内存溢出问题,图片的三级缓存
  31. Android系统开机过程
  32. Zygote和System进程的启动过程
  33. Activity的启动过程
  34. Android的消息机制,Handler原理
  35. AsyncTask源码,优缺点
  36. HandlerThread和IntentService的原理和特点
  37. Android的IPC机制
  38. AIDL原理
  39. Binder机制原理
  40. ActivityManagerService
  41. Volley
  42. xUtils
  43. okHttp
  44. UniversalImageLoader
  45. RxJava
  46. 一个如何维持一个长连接

  47. 如何实现进程保活

  48. 项目中有没有见过内存泄漏?为什么会产生?怎么解决的?

  49. Handler的原理

  50. Binder的原理

  51. Binder里面引用计数的原理

  52. Binder底层为什么用红黑树,红黑树的原理知道吗

  53. Retrofit的原理,为什么不用volley

  54. 为什么选用Glide,原理?

  55. LruCache的原理

  56. Android系统框架

  57. handler和asyncTast的区别,然后让我自己设计线程池怎么做

  58. Fragment好处,碰到过什么bug,怎么解决的

  59. 为什么选用Realm,原理是什么

  60. 如何设计一个网络加载框架

  61. Android四大组件的理解(这个扯了十多分钟)

  62. ContentProvider的启动过程

  63. Activity的四种启动模式,用过哪一种,为什么要用

  64. Service和InentService的区别

  65. View的事件分发和绘制原理

  66. 如何解决滑动冲突

  67. .接着问了是否用过 volley,果断没有,说用过Retrofit,毕竟现在都是MVP+Retrofit+RXJava,然后就让讲下MVP

  68. 多进程通信的方式(这个就比较模式化了,面试官也知道基本用不上)

  69. 广播的使用

  70. Handler机制,以及具体的使用情况

  71. 讨论了一下各个框架的使用

  72. AIDL,广播的种类

  73. .如何解决app卡顿的问题,用到哪些工具

  74. view的绘制流程

  75. 多线程和handler结合使用要注意什么 (我没get到他的点,他想要的答案是当activity隐藏或者销毁的时候要注意handler的任务取消之类的) 

  76. 四大组件是在主线程运行的吗

  77. sqlite的相关的

  78. 下载大文件要注意的事情(防止OOM)

  79. Android的启动流程、四大组件、listview的运用于优化、MVP、两个activity怎么传输数据,intent是怎么实现传输数据的,闹钟怎么实现

  80. fragment,该怎么用,比如实现类似微信的那种滑动,讲了一下fragment的滑动以及底部状态的切换。之后又问了怎么保存view的数据,当时以为就是回调生命周期的方法时保存数据,面试官就给我讲了一下现在常用了的将顶层的view作为变量然后传递引用,之后切换回来的时候直接在oncreateview里面进行判断即可。

  81. Activity与Fragment的生命周期。

  82. Acitivty的四中启动模式与特点。

  83. Activity缓存方法。

  84. Service的生命周期,两种启动方法,有什么区别。

  85. 怎么保证service不被杀死。

  86. 广播的两种注册方法,有什么区别。

  87. Intent的使用方法,可以传递哪些数据类型。

  88. ContentProvider使用方法。

  89. Thread、AsycTask、IntentService的使用场景与特点。

  90. 五种布局:FrameLayout、LinearLayout、AbsoluteLayout、RelativeLayout、TableLayout各自特点及绘制效率对比。

  91. Android的数据存储形式。

  92. Sqlite的基本操作。

  93. Android中的MVC模式。

  94. Merge、ViewStub的作用。

  95. Json有什么优劣势。

  96. 动画有哪两类,各有什么特点?

  97. Handler、Loop消息队列模型,各部分的作用。

  98. 怎样退出终止App。

  99. Asset目录与res目录的区别。

  100. Android怎么加速启动Activity。

  101. Android内存优化方法:ListView优化,及时关闭资源,图片缓存等等。

  102. Android中弱引用与软引用的应用场景。

  103. Bitmap的四中属性,与每种属性队形的大小。

  104. View与View Group分类。自定义View过程:onMeasure()、onLayout()、onDraw()。

  105. Touch事件分发机制。

  106. Android长连接,怎么处理心跳机制。

  107. Zygote的启动过程。

  108. Android IPC:Binder原理。

  109. 你用过什么框架,是否看过源码,是否知道底层原理。

  110. 进程有哪些通信方式

  111. ListView优化方案

  112. service和线程的关系

  113. .looper是线程级别还是进程级别

  114. activity1启动activity2的过程,是否可以在新的进程里面,如果在新的进程里面流程有什么不同。启动按返回系统的调度。

  115. 广播的注册方式,信息是保存在哪里,发送广播是如何回调广播接收者。

  116. app安装过程,每次开机是否会重新安装所有的app

  117. Android系统为系统安全性做什么事情

  118. zygote和systemservice的关系

  119. 为什么zygote死掉后会重新启动

  120. 界面的绘制过程

  121. 开机画面有几个,分别是什么时候显示和暂停

  122. activity四种启动模式

  123. 有没有使用过Android的开源库,或者开源控件

  124. 启动一个应用的流程

  125. 打开一个activity的过程

  126. 设计一个Android的下载模块

  127. 项目点为什么要用view不用fragment?同样fragment可以解决缓存(用了view,并且设了map作为缓存,为了模拟activity栈重制了新的栈来实现相同的回退功能,需要处理连续点击和多次点击的问题,还需要解决连续点view,缓存增大而oom)

  128. 用了什么设计模式?为什么要这么用?(举例了观察者+工厂)

  129. 谈一下Collection包:hashmap底层实现,用了什么方法解决hash冲突(基于jdk版本),具体是如何实现(jdk1.5链表头插还是尾插),为什么不安全?如何变得安全(concurrent包下集合类),concurrentHashmap实现原理是?

  130. Executor框架说说你的理解?

  131. 结束一条Thread有什么方法?interrupt底层实现有看过吗?线程的状态是怎么样的?如果给你实现会怎么样做?

  132. Io和nio有没有了解?

  133. 现在需要在四大组件中传数据?如何传,方法有哪些(需要自己再具体说什么情况)?

  134.  缓存算法除了lru还认识哪种?

  135. Java中有内存泄露吗?是怎么样的情景?为什么不用循环计数?

  136. ANR产生原因?怎么定位?

  137. ContextImpl的源码使用的设计模式?为什么你认为其中有外观?

  138. 在一个app中,只有在一张activity,所有功能业务逻辑在里面实现,现在报ANR,你会怎么做?(代码层面:耗时操作(UI、网络、数据库),工具层面:trace和crashHandle)

  139.  Android中ClassLoader和java中有什么关系和区别

  140. 用过什么开源,举一个例子?(volley)

  141. Activity生命周期?情景:现在在一张act1点了新的act2,周期如何?

  142. Act的launchMode,有没有结合项目用过(自己的程序锁和微信的PC端登陆对比,不过我现在又发现,应该大约估计可能是动态加载的一个缺陷,如果有找到相关信息,请务必跟我说。具体问题就是,当在PC端登录时,Android终端的微信会跳出,即使wechat的task不是在fore,当按下确认,返回的是wechat,而不是自己先前的app)

  143. View的绘制原理,有没有用canvas自己画过ui?

  144. 动态加载主要问题

  145. 插件化

  146. Assetmanager获取资源原理和资源获取原理

  147. 项目Oom异常解决方案+用户体验优化方案

  148. Touch传递机制+listview滑动冲突

  149. Volley底层实现

  150. 为什么不能用volley请求大数据

  151. Volley底层实现+设计模式理解

  152. Imageloader缓存策略

  153. 项目如何解决oom?响应速度是怎么优化?电量消耗如何优化?

  154. 描述一下Aidl和android ipc?(binder机制没跟他讲得很深)

  155. 屏幕适配使用的方案?有没有辅助的工具帮助?(hyviewer)

  156. 如何分析内存泄露?(代码+工具traceview+mat)

  157. 那ANR呢?(我忘记了trace)

  158. View树绘制?如何优化布局?

  159. 事件传递原理?

  160. uil的框架如何设计?有没有用过glide?(结合了fresco的分析)

  161. Volley和okhttp底层实现(也讲了okio),为什么说okhttp高效?

  162. Listview的优化(同一布局,左为bm,右为text)?

  163. Apk瘦身可以关注什么点?(这里忘记了说so库,然而他也不会)

  164. 讲一下动态加载技术点?

  165. 适配优化屏幕适配接触到什么方法?

  166. Binder机制(只深入到framework)

  167. View树绘制+事件分发

  168. Contextimpl源码,几种context的区别

  169. 如何实现通讯?Binder机制

  170. 屏幕适配接触到什么方法?

  171. java内存泄露是怎么样的?(本质+handler例子)

  172. Handler机制?

  173. 情景题,把handler设static,里面需要对一个view更新,会不会内存泄露?(可达性分析)

  174. UI接触得多吗?有没有用过canvas画过图?

  175. 在项目中为什么要用动态加载?最大的问题是什么?怎么解决资源管理问题

  176. Volley底层实现?(okhttp没问)

  177. 自己写的图片加载工具类谈一下?(结合uil谈了一下)

  178.  描述下Aidl?觉得aidl有什么缺陷

  179. JNI的使用。

  180. Activity启动模式

  181. 两个应用能使用同一个任务栈么?

  182. Binder机制

  183. Volley源码的实现

  184. 大图加载

  185. Http && Https

  186. 常用的加密算法,对称加密和非对称加密

  187. Android里的序列化

  188. Android里的内存泄漏

  189. Android里的设计模式

  190. 两个应用间Binder通信的原理

  191. OkHttp如何对链接进行复用

  192. 如何设计锁

  193. 内存泄漏如何发现(用什么工具)

  194. Handler+Thread机制、

  195. View绘制过程、

  196. Activity的启动过程

  197. 什么时候会发生SOF问题

  198. 有用过什么框架,看过他们的源码没?

  199. 平时有用过什么开源项目?

  200. AnsycTask的原理?(我的简历里提到过AnsycTask)

  201. 在纸上写了个Activity,然后在类里面定义了一个Handler,问我这个会有警告,怎么解决?--static、软引用

  202. Service的保活

  203. Handler机制,Handler除了线程通信还有什么作用,这个我说通知吧,因为Android是消息驱动的,不是特别明白面试官要问哪点,难道是延时?

  204. Activity的启动模式,每种启动模式的使用场景,singletop中回调onNewIntent和finish掉之后onCreate()有什么不同?,这个4种的使用场景中,我singletop回答不是特别好,应该是那种频繁接受消息的activity需要使用

  205. Fragment的生命周期,栈管理,和commit()类似的方法还有哪个,commit类似的那个之前真没注意,应该是commitAllowingStateLoss(),区别是是否能在activity保存之后调用

  206. 实现一个文件夹列表,面试官要求5000个文件的时候才从ViewGroup转到ListView

  207. ART和Dalvik的区别

  208. 批量插入50条联系人,比较高效的方法,ContentProvider是否了解原理

  209. 启动一个APP的流程

  210. android学了多久?广播分为几种?实现原理,工作原理,广播接收器有几种?

  211. ipc的方式

  212. AIDL怎么用?

  213. android四大组件

  214. broadcast机制

  215. thread.wait()与thread.sleep()区别

  216. okhttp原理

  217. 线程池机制

  218. androird进程间通信方式

  219. 事件分发机制

  220. view的绘制流程

  221. MVP的介绍

  222. 说了下Android事件的分发机制

  223. onSaveInstanceState和onRestoreInstanceState调用的过程和时机,onNewIntent方法

  224. fragment的生命周期,和Activity如何进行通信

  225. Android的事件分发机制,ACTION_DOWN和后续事件如何消耗

  226. Activity的启动方式

  227. View的绘制流程,MeasureSpec如何工作,父的MeasureSpec和自己的LayoutParams

  228. 广播的两种注册方式

  229. 数据库如何升级(懵逼)

  230. Handler Looper的使用方式,实现机制,设计的原因

  231. HandlerThread有没有了解(很神奇的我完全忘了当时是怎么答的了)

  232. ThreadLocal是干嘛的,使用的地方

  233. Sqlite的一些问题

  234. Activity A调用Activity B时,A调用什么函数(onPause)

  235. onSaveInstanceState和onRestoreInstanceState又问了一次

  236. JNI的参数ENV参数。。。

  237. JNI工作时,java 层的类如何找到C/C++层的类(懵)

  238. AIDL的工作流程

  239. Service与Thread区别,这个问题应该是必问的了,一定要知道清楚。

  240. SQLite能否并发读取或者写入,自己只记得不能并发写,可以并发读,但是原因不清楚。

  241. Activity与Service的通信问题,这里要对Binder机制和AIDL比较了解,因为自己没在项目中用过,所以回答的不是很好。这个还可以通Broadcast进行通信。

  242. 画出Activity与Fragment生命周期

  243. activity生命周期,启动模式,service在哪个线程,service防杀死

  244. ViewPager如何判断左滑右滑

  245. activity的启动模式及在你项目里的应用

  246. View事件分发机制

  247. view事件冲突的处理

  248. android7.0的虚拟机的优化(什么即时编译)

  249. 启动一个应用的流程(从点击桌面的icon开始)

  250. sqlite如何批量插入大量数据,如何提高效率(放到一个事务里)

  251. fragment 和activity之间如何选择(说出自己的理解)

  252. android6.0 的动态权限(聊项目时扯上去的)

  253. View的绘制过程

  254. 当时谈到使用到了开源框架xtuil中的dbxutil和httptuil,然后让分析这俩个模块源码;其中详细问了httputil实现原理(主要是线程池,封装的是httpclient) 使用到了slidingmenu_library开源控件,让分析这个开源框架的源码;

  255. 说说你做过最复杂的控件

  256. animation 和animator的区别

  257. 说说推送 ,扯到长连接,心跳包,直接被面试官打断,这个我们都知道,说说保持一个长连接很简单,为什么长连接会带来很多麻烦,还提示从耗电量,微信分析

  258. 项目使用开源框架的源码分析讨论 ,主要还是集中在httputil源码实现、讨论了线程池设计,阻塞队列; 由于httputil封装了httpclient,然后让比较 httpclient和httpurlclient区别; 扯到了http协议,问了http与https区别,(当时我在分析直接被打断,“这个我们都知道,简介概括”,然后我我直接说https=http+ssl+加密算法); 加密算法是对称还是非对称的,,商量秘钥的过程是对称还是非对称

  259. android消息处理机制 ,handler+loop分析; loop线程与普通线程区别; asynctask源码分析(这里有个线程池几个关键参数5,128,使用的阻塞队列,补充讲了asynctask缺陷) ;如何改进asynctask造成的内存泄露的问题,从而延伸到 jvm虚拟机四种引用

  260. 说说androi 使用卡顿是什么造成的,给出优化 ,主要回答了ui overdraw避免,<include>标签,<viewstub>标签,<merge>标签使用,hierarchy viewer工具的使用; 面试官追问:再从底层分析;(其实就是 16ms和60fps的追求了) ;再结合GPU操作分析一下UI过程; 然后说到了大图加载问题,提到UIL框架,让分析内部源码(我主要从uil的缓存策略和线程池机制分析)

  261. 忽然扯到并发,让分析concurrenthashmap,答了分段锁仍不满意,要求再分析一下size操作是如何做的

  262. 从listview优化谈到recyclerview,深入分析一下recyclerview特点 ,然后引申到瀑布流如何实现,不使用recyclerview如何实现瀑布流。

  263. 属性动画

  264. touch事件分发机制

  265. android开机过程(主要讨论了zygote)

  266. 让你设计一个游戏人物,如何设计 ,主要讲了抽象类+接口+mvc和mvp模式

  267. Android中的几种Context什么区别?这个问题我回答的不好,简单说了一下生命周期和Context的继承关系,以及注意事项弹对话框不能使用applicatuion的上下文

  268. Android中的内存泄露遇到过没?我讲了Handler持有Activity泄露以及google建议的嵌套类、弱引用的解决方案、Drawable的setCallback,耗时的线程可能会持有Activity,Bitmap调用recycle,因为以前bitmap在native分配,所以要调用recycle释放,现在不用了因为在堆分配,由GC回收,他问我是几点几版本开始的,我说是3.0版本。

  269. 接着问我bitmap能否复用?这个我没弄懂意思,就回答不知道,最后查了一下,也是3.0以后的有个Option的inbitmap字段可以复用

  270. 平时遇到过OOM没?遇到过,主要是图片加载很常见,我讲了BitmapFactory的解析Options的in...bound参数先读取图片信息进行必要的缩放,还有缓存,讲了DiskLruCache、LruCache缓存策略,以及可以加入软引用,讲了底层的LinkedHashMap实现。

  271. 用过外观模式?(表示没听过)这是Android中的知识吗?面试官告诉我,是一种设计模式,我说,哦,没有,我知道的有单例模式、工厂模式、代理模式、观察者模式、装饰者模式、迭代器模式。然后让我讲一下代理模式,我就大概说了一下,然后说在Android中使用AIDL产生的的代码中当查不到本地的Binder时asInterface返回的就是一个代理对象,然后面试官说,那就是你使用过bindService调用过Service了?恩。

  272. FrameWork层看过那些源码?Java源码呢?讲了一下看过的框架层源码和java集合,没有具体讲。

  273. 自定义控件做过哪些,需要注意什么?处理wrap_content的情况,ondraw不能耗时,刷新率16ms等,然后让我讲了一下圆角矩形的图片控件怎么做,降到了画笔的xferm...方法进行图面交叠。

  274. 还问到我Android动态加载了解不?我没用过,但之前看到过通过DexClassLoader使用接口实现的一种插件形式

  275. draw和onDraw方法区别。

  276. view和viewGroup区别。

  277. 内存溢出处理。

  278. Activity能运行在别的进程中吗?

  279. 内存泄漏。

  280. Bitmap的recycle方法执行后会立即回收内存吗?

  281. 进程间通信的方法。

  282. Activity中如何调用另一个进程Service里的方法?

  283. AIDL的方式能访问另一个进程Service里静态变量吗?

  284. Activity的四种启动模式。

  285. 有用过什么框架?

  286. 知道Picasso的缓存机制吗?

  287. ListView的优化。

  288. 有木有在项目中用到什么设计模式?

  289. 更新UI用的什么机制?(最后一个问题没听懂问的是什么,追问了面试官,面试官说了什么上层调用底层,底层再调用上层......还是没听懂,就说网络请求用的框架,在回调接口中更新UI)

  290. 在项目中有没有用到图片加载库?网络加载库?

  291. 问我JAVA哪些先进的东西给你在Android开发带来方便?我说JSON库。知道几种JSON库,有什么区别?

  292. 跨线程通信 主要涉及LooperMessageHandler以及MessageQueue

  293. 说一下自定义View需要注意哪些细节 主要说了一下View绘制的三大过程onDraw()不要做耗时操作 不要创建新对象 以及 怎么处理View的触摸事件

  294. View的事件冲突的解决办法 ps:重写dispatchEvent()或者touch()方法

  295. 讲一下listView的优化方法

  296. 讲一下RecycleView与listview的区别

  297. view的绘制过程

  298. Activity的启动模式

  299. 跨线程通信

  300. 夸进程通信 主要是Android的AIDL

  301. 如何解析json数据和xml

  302. 自定义view的几个步骤 怎么刷新view ps:onLayout(); onMeasrue();onDraw();

  303. RecycleView的优化

  304. 几种context的区别

  305. 看过什么源码没有

  306. 讲一下binder类

  307. Runnable运行在哪个线程里面 ps:开启一个子线程的唯一方法就是new Thread().start();

  308. HashMap和HashTable的区别

  309. raw和assets文件夹的区别

  310. activity关闭后尚未运行完毕的thread会怎么样 ps:会变成空进程线程,优先级最低 很容易被终止回收

  311. mainfest文件的合并规则

  312. 跨线程通信

  313. 讲了其中一个项目是怎么实现的 问jsoup怎么拼 = =

  314. 用过哪些开源库 讲一下他的架构是怎样的

  315. 图片三级缓存 内存缓存满了怎么办 ps:优先级队列 满了后根据优先级主动删除一部分图片 根据LRU算法确定优先级

  316. 讲一下JNI开发的过程 java怎么找到c函数 ps:JNINativeMethod保存函数对应关系

  317. activity的四中启动模式

  318. service的生命周期

  319. 项目中用JNI做什么 为什么要用他呢

  320. 什么是OAuth协议 做什么的

  321. 四大组件,详细说

  322. handler机制(深入源码)

  323. CotentProvider的权限问题,就是怎么样使得数据对外有选择性的提供和使用

  324. Android的存储方式

  325. Handler、Looper、MessageQueue

  326. AsyncTask 为什么java已经有线程池的实现了,还要继续使用AsyncTask,AsyncTask相对于java自带的线程池的好处

  327. onTouch事件的处理机制

  328. 说一下MVC以及其在Android中的应用

  329. 说一下OOM以及你怎么解决的

  330. 了解Android的Framework么

  331. 说一下一个Android APP从点击打开开始,是怎样展示在用户面前的(Zygote、Ams、Wms等)

  332. viewpager里面只能嵌套view吗 可不可以嵌套Activity

  333. 假如viewpager里面的每一页都有有很大数据量的内容,那么在快速的左右滑动时,如果出现了内存被回收的情况,如何处理 假如出现了OOM,怎么处理

  334. 同上情况,使用Fragment,又当如何?与viewpager有什么区别

  335. ExpandableListView的Adapter怎么写

  336. 在ListView的每个item中如果可能出现的view都不一样,如何处理?动态获取view种类数量的话是不是就不能使用viewHolder进行优化?固定显示view如果不存在该种view就不显示的方法是否太耗内存

  337. ListView的Adapter的getView具体是什么机制?

  338. Activity之间传递大量的数据用什么方法                 Binder            Bundle不够大          Socket 在同一应用中没必要使用     共享内存      static变量——同一应用中static变量如何控制,会不会并发出问题,如果Activity由于内存不足被kill掉,再重启的时候static变量的值还可靠吗:设置专门的访问类,进行读写控制,以及Activity重启后的初始化工作。

  339. SQLite在使用时 假如ActivityA是用于修改SQLite,ActivityBCDEF。。。是用来展示SQLite的内容,如何在修改SQLite的同时使得BCDEF...都立刻获得最新的数据?SQLite有没有类似于ContentObserver的这么一种监视类可以监听到SQLite内容的改变?如果广播通知所有类,那么广播可以携带多大的数据?

  340. 假设把一个ActivityB向右滑动可以回到上一个ActivityA,B渐渐透明,A渐渐清晰,要怎么编写页面?说说你对android:theme的理解,说说你对alpha值的理解

  341. ListView在数据量很大图片很多的情况下怎么优化?假如一个图片,轻轻的向上滑动一丢丢,那么需要重绘吗?(什么鬼。。。)

  342. 详细展开说一下所有LaunchMode的应用场景

  343. 假如A-》B-》C,想让C后退直接到A,使用什么样的intentflag?

  344. 假如A-》B-》C,C使用singleTask,C后退,后退到什么地方呢?

  345. 在全屏显示高清大图的时候,网速慢的情况下如何显示?渐进式显示是怎么做到的?如果想显示下载进度圈圈,该如何实现?

  346. AsyncTask在4.x以后有什么改变?怎样改回并发执行好多个?如果一个AsyncTask结束取得结果之前Activity就因为内存原因被Destroy掉了,那会有什么情况发生?会内存泄露吗?会空指针吗?需要在Activity彻底死掉之前把AsyncTaskcancel掉吗?如果没有cancel掉,然后Activity重启了,那这个Asynctask又当如何呢?

  347. AsyncTask内部实现机理 与Thread+Handler有什么不同

  348. 说一下HandlerThread

  349. 你的APP里,是每个Activity都有一个Handler呢还是所有Activity共享一个Handler

  350. 基于事件监听、基于事件回调 假如一个touch事件发生,那是监听器先收到还是onTouch函数先收到

  351. 假如你要记录ListView滚动到的位置,要记录什么信息,view怎样获得坐标信息

  352. 说一下canvas

  353. dialog和popupwindow的应用场景 如果popupwindow在没有dismiss的时候Activity finish了,会出现什么情况?

  354. 了解过什么三方库?为什么不用三方库?

  355. Service和推送通知,通知有没有可能出现有推送但是通知栏收不到通知?service被kill掉会如何?如何保证service不被kill掉

  356. 了不了解Scrollview scrollview和ListView有什么相似点 有什么不同 那如果这两个是继承关系 那应该是谁继承谁?

  357. dp sp px各自的应用场景是什么 换算关系是什么 使用sp的时候如果调整系统字体,显示字体会跟着调整吗?

  358. gallery为什么被废弃?为什么Google推荐使用viewpager代替gallery呢?有什么改进?

  359. handler.postAtTime不是延时post么 那handler怎么延时处理Message

  360. ListView的优化 ;Lru如何实现的 ;OOM的处理 ;GC原理 ;循环引用的问题 引用计数与可达性算法 ;LaunchMode 

  361. 网络框架实现,volley原理

  362. 线程池原理,java提供了哪些线程池

  363. 一个activity只能有一个进程么【对进程的理解】

  364. activity任务栈,启动模式相关,四种启动模式

  365. 夜间主题的实现方式

  366. 动态加载原理,classloader理解

  367. listview实现item左滑需要考虑的问题

  368. view的事件分发与渲染流程

  369. LruCache的理解,原理,以及还有哪些方式实现缓存调度

  370. GC原理,实现方式,能否手动去控制GC回收

  371. OOM,内存泄漏的问题有没有遇到过,如何处理

  372. mvp与mvc的区别,实现,原理

  373. volley原理,发送五个请求(相同以及不同)时,内部所做处理?如何根据发送请求结束后,剔除相同的等待请求?

  374. 图片缓存技术的实现,如何结合volley实现,volley自带缓存管理还是需要自己去实现,缓存的底层实现

  375. listview原理,adapter与view是如何绑定的,如何自己设计一个类似listview的自定义view,子item复用,管理以及getView的实现

  376. android线程模型,looper,messageQueue一套机制

  377. 线程实现方式,thread+asynctask+handlerThread+intentService,彼此的应用场景以及原理

  378. asynctask底层实现原理,为何不能在非主线程中实例化,其实还是跟onPre and onPost在当前线程实现有关

  379. 手机唯一标识方式

  380. 手机app耗电量跟什么有关,耗电优化

  381. 推送服务原理,心跳机制

  382. service使用注意事项以及原理

  383. 服务应用唤醒实现,aidl 的service更新后如何让旧的客户端兼容

  384. 多线程实现,通信原理

  385. 进程通信原理,使用订阅者模式时,服务端拿到的binder对象为何是新的实例,如何获取到真正客户端实例(RemoteCallbackList)

  386. ssl协议,握手交换密钥过程,加密算法,对称非对称加密原理

  387. lrucache原理实现,linkedhashmap底层,手写代码实现lrucache,对相关的bitmap进行管理 

  388. 线程池构造函数传参意义,手写代码实现线程池,继承方式,不能用现成的

  389. 异步接口实现,实现跨线程通信,不能用handler,looper那一套机制

  390. socket编程实现http请求,手写代码实现

  391. volley原理实现

  392. Android事件分发

  393. scrollview特点

  394. 处理listview图片错位方式

  395. Mvp与mvc区别,实现,架构表示

  396. android缓存实现 

  397. Java线程 run与start区别,原理实现

  398. 打包混淆原理

  399. volley原理,实现

  400. jar封装的private方法能否在外部调用

  401. 反编译方式工具及其原理

  402. 网络请求方面如何处理

  403. jni使用及其原理

  404. 对称加密与非对称加密 

  405. 使用图片缓存但是服务器改了实际的图片,但url一样,如何在客户端区别

  406. 线程间通信,进程间通信,binder原理

  407. sharepreference原理

  408. 事件分发原理

  409. 设计模式,延迟加载实现单例模式,内部类来解决,加锁也不稳

  410. mvp与mvc

  411. 线程池调度实现,不能用executor(当时居然以为blockingqueue存线程呢=_=)

  412. 动态加载,dex分包,热修复

  413. 缓存原理实现,内存如何分配

  414. 如何减小apk体积

  415. 性能优化从哪几方面考虑(内存,cpu,fps,ddms灵活dump)

  416. looper,handler等原理

  417. activity的启动模式

  418. listview与recycleView的区别与优缺点 

  419. A向B发送消息,A能实时看到B的阅读时间,问A实现方式

  420. volley层次结构,原理,为什么选用volley,不用其他开源框架,对开源框架的看法

  421. MVC与MVP的区别,activity,fragment扮演的角色,presentor之间的通信问题。

  422. 进程间的通信,binder的原理,intent与aidl的应用场景及相关比较

  423. 图片如何缓存处理,如何处理oom

  424. 自定义view实现,注意事项

  425. 加载图片请求的超时时间设置,多少秒合适,原因,大图如何加载。

  426. 线程间的通信,并发问题解决方案。

  427. 快速排序为什么叫做快排,其算法复杂度,及其实现原理

  428. 应用签名是为了什么,签名原理是什么

  429. root之后有什么重大的变化,开发者可以操作什么

  430. 给出九游android客户端程序,解释下相应的布局,listView做大面积的嵌套,下拉刷新的实现

  431. 渠道提示不合法的问题,为何系统能识别渠道非法

  432. 说一下Binder机制的底层实现。

  433. Android中进程之间通信,除了Binder还有什么?说一下底层实现原理

  434. 说一下Android中的事件处理流程,结合源码解释,不要直接说规律结论。

  435. 系统调用的方式?系统调用发生的场景?系统调用常用函数?系统调用的具体过程?

  436. Binder的一次拷贝发生在哪里。

  437. AMS的作用?

  438. 一个Activity启动另一个Activity时函数调用流程。

  439. Android中Handler机制?

  440. 什么是ThreadLocal,一个线程可以获取到另一个线程的Looper吗?怎么获得?

  441. 序列化怎么实现?答安卓端有Serializable和Parcelable。然后问这两个有什么区别,分别怎么实现。

  442. 问fragmentPagerAdapter和fragmentStateAdapter的区别。

  443. fragment和fragment怎么通信?

  444. listview怎么优化?

  445. 网络通信怎么做的?volley的实现?

  446. http和https的区别?

  447. 有看过开源第三方库吗?

  448. 登陆注册这块的逻辑一般怎么做?

  449. canvas画了个线,怎么撤销?

  450. 性能优化怎么做?

  451. 写了多少代码?有开源项目吗?有参与开源项目吗?

  452. bitmap的本质?答到了cpp层。

  453. activity的异常退出和启动调用的方法

  454. activity和service的区别

  455. service启动方式以及区别,以及service的作用

  456. activity的launchmode

  457. 过滤规则在manifest和代码中注册有啥区别

  458. 布局中优化常用方法,以及分析工具,我答的时候基本围绕层级优化答得,考官建议我从过度绘制等加强学习

  459. 屏幕适配问题,老生常谈啦

  460. bitmap加载一个100张图片的优化处理

  461. lrucache和disklrucache,其中还问到软引用和弱引用的使用

  462. listview的优化

  463. 自己用过什么开源框架,还有看过源码吗

  464. react-native的通信机制

  465. react-native和phonegap的区别

  466. 自己在项目中开发遇到的坑关于react-native

  467. 有没有看过react-native的源码,能否讲讲最熟悉的源码

  468. 线程和进程的区别,线程自己有没有自己的内存

  469. 多线程带来的影响

  470. binder的机制

  471. android为什么使用binder进行跨进程通信

  472. Andorid四大组件

  473. anroid生命周期,opause,onStop区别

  474. Fragment,是否看过源码,如何启动

  475. Service有哪几种

  476. 隐式启动和显示启动

  477. Service两种启动方式

  478. 启动线程方式有哪几种

  479. handle消息队列相关

  480. 几种常用布局,布局到group树过程。。。。

  481. weight属性

  482. 布局优化相关

  483. Arraylist LinkList

  484. 线程进程区别

  485. 一个app能否是多进程?(大概)

  486. converview一些知识点

  487. oom如何发现

  488. handler出现oom如何解决

  489. 如何开启多个网络异步请求

  490. 线程池内线程的数量如何确定

  491. 说说OKHTTP的实现

  492. UIM的实现

  493. 讲一下mvp,mvp和mvc区别,讲一下用过的开源项目,说一下如何实现

  494. asynctask实现

  495. 线程池如何使用

  496. 如何实现多进程,进程间如何通信,具体讲一下socket

  497. surfaceView

  498. 如何进行界面优化

  499. 如何实现缓存

  500. IOC的思想?

  501. AOP的思想?

  502. 为什么android要推出handler啊?handlder能不能用在线程中创建啊?

  503. AysnTask的源码分析,能不能在其他线程中创建的?

  504. 一个关于android进程的问题,哪些android进程不能被杀死的?

  505. 断点续传的基本原理(问的很细很细)

  506. 图片压缩方式

  507. 数据结构对一个基本有序的数组应该采用什么方式进行排序,对一个乱序的数组应该采用什么方式排序能快速找到前n个数?为什么?

  508. JavaJavaScript的区别

  509. 介绍一下restful框架

  510. 多线程安全实现方式,synchronizedlock,信号量的区别

  511. http的理解,http中无状态的含义是

  512. cookiesession的区别

  513. 虚拟机相关知识

  514. 四大组件生命周期

  515. 对我项目中用到一个开源框架中算法了解吗?(IK Analyzer

  516. 数据缓存处理

  517. 断点续传原理

  518. Hashmaphashtable之间的区别

  519. 四大组件相关知识

  520. lrucache的基本原理

  521. 三级缓存的理解

  522. Volley的原理及使用

  523. Restful了解

  524. 事件分发机制(问的很细很细)

  525. 自定义view的绘制方式

  526. Listview的优化(问的很细很细)

  527. Xml解析方式,原理优缺点

  528. 自定义控件如何绘制,然后现场画出了一个控件,问我具体应该怎么绘制(如何计算子view的宽高度等等)问的超级细

  529. 算法题题目忘了,只记得写的时候时间复杂度过高。

  530. Activity的生命周期及其他相关知识

  531. 安卓动画相关知识

  532. service中启动方式有哪些区别是?

  533. 线程安全实现方式,线程池具体原理

  534. Linux和安卓中跨进程间通信间的区别,以及安卓中binder基本原理

  535. 四大组件的相关知识

  536. java内存模型

  537. GC算法具体内容

  538. 接口和抽象类的区别

  539. 四大组件的生命周期

  540. Hsahmap的底层原理

  541. 断点续传的原理

    



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值