Android面试题:助还在迷茫找到面试的方向
前言
- 阐述一下 Activity 的生命周期
- 谈谈 Android 的四大组件
- Service 与 IntentService 的区别
- Android 应用中如何保存数据
- 如何在 Android 应用中执行耗时操作
- 两个 Fragment 之间如何通信
- Activity 之间如何通信,Activity 与 Service 之间如何通信
- 两个不同的 app 之间如何交互
- 什么是 Fragment
- 为什么建议只使用默认的构造方法来创建 Fragment
- 为什么 Bundle 被用来传递数据,为什么不能使用简单的 Map 数据结构
- 阐述一下 Fragment 的生命周期
- 解释下 Android 的 View
- Activity、Window、View 关系
- 你能创建自定义 View 吗?具体是如何创建的?工作原理
- 什么是 ViewGroup ,它与 View 的区别在哪里
- Fragment 和 Activity 有什么区别?它们之间又有什么关系
- 谈谈 Serializable 接口和 Parcelable 接口的区别。在 Android 中最好使用哪种接口
- Activity 的启动模式有哪些
- Activity 启动模式的应用场景
- 解释一下 Android 中的 Intent
- 什么是隐式 Intent
- 什么是显式 Intent
- 解释一下 AsyncTask
- AsyncTask 的原理
- 如何理解 Android 中的广播
- 如何理解 Android 的 LocalBroadcastManager
- 广播和 EventBus 的区别
- 什么是 JobScheduler
- 什么是 DDMS ?你可以用它来做什么
- 解释一下什么是 support libary ,以及为什么要引入 support library
- 如何理解 Android 中的 ContentProvider 。它通常用来干什么
- Android 的核心组件具体都有什么
- 什么是 ADB
- 什么是 ANR ?如何避免发生 ANR
- AndroidManifest.xml 是什么
- 解释一下 broadcast 和 intent 在 app 内传递消息的工作流程
- Bitmap 如何优化,三级缓存的思想与逻辑
- Android 应用有哪些不同的存储数据的方式
- 什么是 Dalvik 虚拟机
- Dalvik 虚拟机模式和 ART(Android Runtime)虚拟机模式的区别
- AsyncTask 的生命周期和(它所属的) Activity 的生命周期有什么关系?这种关系可能会导致什么样的问题? 如何避免这些问题发生
- Intent filter 是用来做什么的
- 什么是 Sticky Intent
- 什么是 AIDL ?列举一下通过 AIDL 创建被绑定的服务(bounded service)的步骤
- Android 的权限有多少个不同的保护等级
- 在转屏时你如何保存 Activity 的状态?
- 常用布局有几种,区别
- 如何实现 XML 命名空间
- View.GONE 和 View.INVISIBLE 之间的区别
- Bitmap 和 .9(nine-patch)图片之间有什么区别
- 谈谈位图池
- 内存泄漏是什么,如何发现,为什么引起,如何解决
- Android 桌面的小部件是什么
- 什么是 AAPT
- 你如何排查应用崩溃的原因
- 为什么你应该避免在主线程上运行非用户界面相关的代码
- 你是如何做应用适配的
- px、dp、sp、ppi、dpi 有什么区别,如何换算,给出公式
- 如何理解 Doze 模式。如何理解应用程序待机模式(App Standby)
- 在 Android 中,你可以使用什么来进行后台操作?
- 什么是 ORM ?它是如何工作的
- 什么是 Loader
- 什么是 NDK ,为什么它是有用的
- 如何理解严格模式(StrictMode)
- 什么是 Lint ?它的用途是什么
- 什么是 SurfaceView
- ListView 和 RecyclerView 有什么区别
- 什么是 ViewHolder 模式?为什么我们应该使用它
- ListView 如何优化
- 什么是 PendingIntent
- 你能手动调用垃圾回收吗
- 周期地更新页面的最好方式是什么
- 有哪些类型的广播
- 如何理解上下文(Context)。怎么使用它
- 你知道什么是视图树(View Tree)吗?怎样优化它的深度
- onTrimMemory() 方法是什么
- Android 应用可以使用多进程吗?怎样使用
- 内存溢出(OutOfMemory)是怎么发生的
- 文本样式接口(Spannable)是什么
- 什么是过度绘制(overdraw)
- FlatBuffers 和 JSON 的区别
- 阐述一下 Android 中的 HashMap , ArrayMap 和 SparseArray
- 阐述一下 Looper, Handler 和 HandlerThread
- Handler 的作用
- Handler 是什么,原理,使用方法
- Handler 和 AsyncTask 的关系
- 谈谈对 RxJava 的理解
- LayoutInflater 的 inflate 方法的几个参数分别代表什么
- Maven 和 Gradle 的区别
- OkHttp、Retrofit 的区别
- 如何做性能优化
- MVC、MVP、MVVM 区别
- 介绍 Android 的内存管理机制
- 创建线程的几种方式,优缺点?
- Layout_gravity 和 gravity 区别,paddingLeft 和 Layout_marginLeft 区别
- 动画的种类有什么,有啥区别
- 介绍下 Android 中的 IPC 机制
- 介绍下 AIDL 的原理
***********************************************************
#面试##面试题##Android##Android面试#