Android开发基础面试题 (⭐⭐⭐)

  • 1、什么是ANR如何避免它?
  • 2、Activity和Fragment生命周期有哪些?
  • 3、横竖屏切换时候Activity的生命周期
  • 4、AsyncTask的缺陷和问题,说说他的原理。
  • 5.onSavelnstanceState(与onRestorelntanceState0
  • 6.android中进程的优先级?
  • 7、Bunder传递对象为什么需要序列化? Serialzable和Parcelable的区别?
  • 8、动画
  • 9.Context相关
  • 10、Android各版本新特性
  • 11、Json
  • 12、android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别?
  • 13、Jar和Aar的区别
  • 14、Android为每个应用程序分配的内存大小是多少
  • 15、更新UI方式
  • 16、ContentProvider使用方法。
  • 17.Thread、AsyncTask. IntentService的使用场景与特点。
  • 18、Merge.ViewStub 的作用。
  • 19、activity的startActivity和context的startActivity区别?
  • 21.Asset目录与res目录的区别?
  • 22、Android怎么加速启动Activity?
  • 23、Handler机制
  • 24、程序A能否接收到程序B的广播?
  • 25、数据加载更多涉及到分页,你是怎么实现的?
  • 26、通过google提供的Gson解析json时,定义JavaBean的规则是什么?
  • 27.json解析方式的两种区别?
  • 28、线程池的相关知识。
  • 29、内存泄露,怎样查找,怎么产生的内存泄露?
  • 30、类的初始化顺序依次是?
  • 31、JSON的结构?
  • 32、 ViewPager使用细节,如何设置成每次只初始化当前的Fragment,其他的不初始化(提示: Fragment懒加载) ?
  • 35、Android为什么引入Parcelable?
  • 36、有没有尝试简化Parcelable的使用?
  • 37、Bitmap 使用时候注意什么?
  • 38、Oom是否可以try catch ?
  • 39、多进程场景遇见过么?
  • 40、Canvas.save(0跟Canvas.restore0的调用时机
  • 41、数据库升级增加表和删除表都不涉及数据迁移,但是修改表涉及到对原有数据进行迁移。升级的方法如下所示
  • 42、编译期注解跟运行时注解
  • 43、bitmap recycler相关
  • 44、强引用置为null,会不会被回收?
  • 45、Bundle传递数据为什么需要序列化?
  • 46、广播传输的数据是否有限制,是多少,为什么要限制?
  • 47、是否了解硬件加速?
  • 48、ContentProvider的权限管理(读写分离,权限控制-精确到表级,URL控制)。
  • 49、Fragment状态保存
  • 50、直接在Activity中创建—个thread跟在service中创建一个thread之间的区别?
  • 51、如何计算—个Bitmap占用内存的大小,怎么保证加载Bitmap不产生内存溢出?
  • 52、对于应用更新这块是如何做的?(灰度,强制更新,分区域更新)
  • 53、请解释安卓为啥要加签名机制。
  • 54、为什么bindService可以跟Activity生命周期联动?
  • 55、如何通过Gradle配置多渠道包?
  • 56、activty和Fragmengt之间怎么通信,Fragmengt和Fragmengt怎么通信?
  • 57、自定义view效率高于xml定义吗?说明理由。
  • 58、广播注册一般有几种,各有什么优缺点?
  • 59、服务启动一般有几种,服务和activty之间怎么通信,服务和服务之间怎么通信
  • 60、ddms 和traceView的区别?
  • 61.ListView卡顿原因
  • 62、AndroidManifest的作用与理解
  • 63、LaunchMode应用场景
  • 64、说说Activity、Intent、Service是什么关系
  • 65、ApplicationContext和ActivityContext的区别
  • 66、Handler、Thread和HandlerThread的差别
  • 67.ThreadLocal的原理
  • 68、计算一个view的嵌套层级
  • 69、MVP,MNVM,MVC解释和实践
  • 70、SharedPrefrences的apply和commit有什么区别?
  • 71、Base64、MD5是加密方法么?
  • 72、HttpClient和HttpConnection的区别?
  • 73、ActivityA跳转ActivityB然后B按back返回A,各自的生命周期顺序,A与B均不透明。
  • 74、如何通过广播拦截和abort一条短信?
  • 75、BroadcastReceiver. LocalBroadcastReceiver区别?
  • 76、如何选择第三方,从那些方面考虑?
  • 77、简单说下接入支付的流程,是否自己接入过支付功能?
  • 78、单例实现线程的同步的要求:
  • 79、如何保证Service不被杀死?
  • 80、说说ContentProvider、ContentResolver.ContentObserver之间的关系?
  • 81、如何导入外部数据库?
  • 82、LinearLayout、FrameLayout、RelativeLayout性能对比,为什么?
  • 为什么Google给开发者默认新建了个RelativeLayout,而自己却在DecorView中用了个LinearLayout?
  • 83、scheme跳转协议
  • 84、HandlerThread
  • 85、IntentService
  • 86、如何将一个Activity设置成窗口的样式。
  • 87、Android中跨进程通讯的几种方式
  • 88、显示Intent与隐式Intent的区别
  • 89、Android Holo主题与MD主题的理念,以及你的看法
  • 90、如何让程序自动启动?
  • 91.Fragment在 ViewPager 里面的生命周期,滑动viewPager的页面时Fragment的生命周期的变化。
  • 92、如何查看模拟器中的SP与SQList文件。如何可视化查看布局嵌套层数与加载时间。
  • 93、各大平台打包上线线的流程与审核时间,常见问题(主流的应用市场说出3-4个)
  • 94、屏幕适配的处理技巧都有哪些?
  • 95、动态布局的理解
  • 96、怎么去除重复代码?
  • 97.Recycleview和ListView的区别
  • 98、动态权限适配方案,权限组的概念
  • 99、Android系统为什么会设计ContentProvider?
  • 100、下拉状态栏是不是影响activity的生命周期
  • 101、如果在onStop的时候做了网络请求,onResume的时候怎么恢复?
  • 102、Debug和Release状态的不同
  • 103、dp是什么,sp呢,有什么区别
  • 103、自定义View,ViewGroup注意那些回调?
  • 104、android中的存储类型
  • 105、Activity的生命周期,finish调用后其他生命周期还会走么?
  • 106、有遇到过哪些屏幕和资源适配问题?
  • 107、项目中遇到哪些难题,最终你是如何解决的?
  • 108、listview图片加载错乱的原理和解决方案。
  • 109、invalidate和requestLayout的区别及使用。
  • 110、如何反编译,对代码逆向分析。
  • 111、RemoteViews实现和使用场景
  • 112、对服务器众多错误码的处理(错误码有好几万个)
  • 113、adb常用命令行
  • 114、Android中如何查看一个对象的回收情况?
  • 115、Activity正常和异常情况下的生命周期
  • 116、关于< include - < merge - < stub >三者的使用场景
  • 117、Android对HashMap做了优化后推出的新的容器类是什么?
  • 118、说下你对服务的理解,如何杀死一个服务。
  • 119、断点续传实现?

答案及解析

由于篇幅原因这里没办法全部展示,需要的朋友可以【点击这里直达免费获取方式

alt