Android面试深度解析:核心技术与面试问答

版权申诉
0 下载量 75 浏览量 更新于2024-06-13 收藏 332KB PDF 举报
"Android面试问题总结" 1. 动画类型:Android中的动画分为两种类型,属性动画(Property Animation)和补间动画(Tween Animation)。属性动画可以改变对象的任何属性,不仅限于位置、大小等,它允许在任意时间点改变对象的状态。补间动画则是基于帧的动画,主要用于改变对象的位置、大小、透明度等,适用于简单的移动或淡入淡出效果。 2. StringBuffer和StringBuilder区别:两者都是用于构建和操作字符串,但线程安全性不同。StringBuffer是线程安全的,适合多线程环境下的字符串拼接;StringBuilder则非线程安全,但在单线程环境中性能优于StringBuffer。 3. JVM内存模型:Java虚拟机(JVM)内存模型包括堆内存、栈内存、方法区(在Java 8后改为元空间Metaspace)、程序计数器、本地方法栈。其中,堆内存存储所有对象实例,栈内存存储方法调用时的局部变量,方法区存储类信息、常量、静态变量等,程序计数器记录当前线程执行的指令地址,本地方法栈服务于JNI调用的本地方法。 4. 线程池7大核心参数:corePoolSize(核心线程数)、maximumPoolSize(最大线程数)、keepAliveTime(空闲线程存活时间)、unit(存活时间单位)、workQueue(任务队列)、threadFactory(线程工厂)、handler(拒绝策略)。理解这些参数能帮助我们合理配置线程池,提高系统效率。 5. Android多进程方式:主进程、服务进程、内容提供者进程、广播接收者进程。多进程可以提高App的稳定性,但会增加内存消耗和通信复杂性。 6. Binder机制原理:Binder是Android系统中的进程间通信(IPC)机制,通过Binder,应用程序可以跨越进程边界调用另一进程中的方法。Binder基于Client-Server架构,涉及到Binder对象、Binder代理、Service Manager等组件。 7. App启动流程:主要包括Zygote fork、System Server初始化、Process创建、ActivityThread启动、加载资源、创建Application对象、启动第一个Activity。 8. Handler机制原理:Handler、Looper、Message三者结合实现消息传递和处理。Looper在主线程中不断循环读取消息队列,Handler负责发送和处理消息,Message是数据载体。 9. 子线程更新UI:子线程不能直接更新UI,必须通过Handler或者AsyncTask等机制将操作回调到主线程进行。 10. Activity生命周期:从onCreate()、onStart()、onResume()到onPause()、onStop()、onDestroy(),以及配置变更时的onSaveInstanceState()、onRestoreInstanceState()等。 11. 屏幕旋转生命周期:旋转会导致Activity重建,调用onSaveInstanceState()保存状态,然后依次执行onDestroy()、onCreate()、onStart()、onResume()。 12. Activity启动模式:标准模式(SingleTop)、栈顶复用模式(SingleTask)、单例模式(Singleton)、启动到栈底(SingleInstance),不同的启动模式影响Activity在任务栈中的行为。 13. extends和super:extends用于类继承,super用于访问父类成员。 14. Strings1=newString("abc"):创建了两个对象,一个是常量池中的"abc",另一个是堆内存中的Strings1引用的对象。 15. 自定义View流程:测量(onMeasure())、布局(onLayout())、绘制(onDraw())。 16. onMeasure()调用时机:当View需要被显示时,由ViewGroup在测量阶段调用。 17. OkHttpClient核心线程数为0:OkHttp的调度器默认不创建工作线程,而是依赖于宿主应用的线程池,以减少资源消耗。 18. OkHttp拦截器原理:拦截器链允许在请求发送前和响应返回后添加自定义逻辑,分为应用程序拦截器和网络拦截器。 19. OkHttp拦截器区别:应用层拦截器在用户空间运行,可以修改请求和响应;网络层拦截器在OkHttp内部运行,可直接操作网络请求。 20. synchronized使用场景:用于同步方法或同步代码块,保证多线程环境下的数据一致性。 21. 至29.省略的部分包含了更多面试问题,如垃圾回收机制、内存优化、设计模式等,这些内容涉及广泛,每个话题都值得深入探讨。 以上是对部分Android面试问题的概述,涵盖了许多Android开发的核心知识点,理解和掌握这些内容对于成为一名优秀的Android开发者至关重要。