Android面试题解析:基础概念与实战

需积分: 9 29 下载量 195 浏览量 更新于2024-07-31 收藏 80KB DOC 举报
"Android面试题总结,包括Intent的启动方式,Activity和Task的启动模式,通过Intent传递二进制数据的方法,Android应用的入口点,以及Java基础问题关于HashSet和HashTable的区别,广度优先搜索的实现。" Android面试题是评估应聘者Android技能的重要手段,以下是对这些知识点的详细解释: 1. Intent的启动方式: Intent是用来在Android组件之间传递消息的桥梁,FLAG_ACTIVITY_BROUGHT_TO_FRONT表示将Activity带回到前台;FLAG_ACTIVITY_CLEAR_TOP如果在栈顶的Activity是目标Activity,则清空栈顶到目标Activity的所有Activity;FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET当任务被重置时,清除Activity;FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS不包含在最近的应用列表中;FLAG_ACTIVITY_MULTIPLE_TASK用于创建新的任务栈;FLAG_ACTIVITY_NEW_TASK用于在新的任务中启动Activity。 2. Activity和Task的启动模式: - standard:默认模式,每次启动都会创建新的实例。 - singleTop:如果栈顶已有该Activity的实例,不会创建新的,而是调用onNewIntent()。 - singleTask:在栈中只有一个实例,启动时如果栈中存在该Activity,则清空栈顶到此Activity的所有Activity。 - singleInstance:单例模式,Activity在单独的任务栈中,且栈中仅有一个实例。 3. 通过Intent传递二进制数据: - Serializable:对象序列化,简单易用,但效率较低。 - Parcelable:性能更好,需要手动实现接口,常用于Bitmap和AIDL数据交换。 4. Android应用的入口点: 应用的入口点通常是主Activity的onCreate()方法,但真正的程序入口点是AndroidManifest.xml中定义的Application类的attachBaseContext()方法。Application类的实例在程序启动时创建,全局唯一。 5. HashSet和HashTable的区别: - HashSet基于HashMap,不保证元素顺序,允许null元素,无同步控制,适合于快速查找。 - HashTable线程安全,不允许null键值,执行速度相对较慢,适合多线程环境。 6. 广度优先搜索(BFS): BFS是通过队列实现的一种搜索算法,从起点开始,逐层遍历所有节点。首先添加起点到队列,然后每次取出队首节点,访问其未被访问的邻居并入队,直至找到目标或遍历完所有节点。 以上内容是Android程序员面试中可能遇到的基础问题,理解和掌握这些知识点对于面试和实际开发都至关重要。在准备面试时,除了这些基础知识,还需要深入理解Android系统架构,UI设计,性能优化,网络编程,多线程,数据库操作等方面的知识。