Android面试必备:核心知识点解析

4星 · 超过85%的资源 需积分: 10 8 下载量 168 浏览量 更新于2024-07-23 3 收藏 76KB DOC 举报
"Android面试试题及答案,涵盖了Android开发中的核心知识点,包括Activity生命周期、数据存储、Service管理、BroadcastReceiver、权限系统、多线程通信、AIDL等,旨在帮助面试者准备Android移动开发岗位的面试。" 1. **Activity的生命周期**: Activity的生命周期主要包括创建(onCreate())、启动(onStart())、可见(onResume())、暂停(onPause())、停止(onStop())、销毁(onDestroy())这几个关键状态。在不同场景下,如屏幕旋转、新Activity启动或系统资源紧张时,Activity会经历不同的状态转换。 2. **保存Activity状态**: 在系统回收Activity之前,可以通过onSaveInstanceState(Bundle outState)方法来保存当前状态。当Activity重建时,可以通过onCreate(Bundle savedInstanceState)或onRestoreInstanceState(Bundle savedInstanceState)恢复这些状态。 3. **Activity窗口样式**: 使用主题(Theme)和样式(Style)可以改变Activity的窗口样式。在AndroidManifest.xml中通过`<activity>`标签的`android:theme`属性指定主题,或者在资源文件中定义自定义主题。 4. **退出Activity与Application**: 结束Activity通常使用finish()方法,但要安全退出整个Application,需要正确管理Activity栈,确保所有Activity都被关闭,避免内存泄漏。 5. **五种布局**: Android中的五种基本布局包括LinearLayout(线性布局),RelativeLayout(相对布局),FrameLayout(帧布局),TableLayout(表格布局),以及GridLayout(网格布局)。 6. **数据存储方式**: Android提供了多种数据存储方式,包括SharedPreferences(键值对存储),SQLite(关系数据库),内部存储(文件系统),外部存储(公共文件系统),以及ContentProvider(用于应用间数据共享)。 7. **ContentProvider**: ContentProvider是Android中实现跨应用数据共享的机制。通过实现ContentProvider类,其他应用可以使用Uri查询、插入、更新或删除数据。 8. **Service管理**: 启动Service使用startService(),而停止Service使用stopService()或stopSelf()。服务在后台运行,不受用户界面影响,但需注意资源管理以避免影响性能。 9. **广播注册**: 广播有两种注册方式:静态(在AndroidManifest.xml中声明)和动态(在代码中注册)。静态注册在应用启动时自动接收广播,而动态注册需在运行时进行,更灵活但需要手动管理。广播机制用于系统事件通知和应用间通信。 10. **Message、Handler、Message Queue和Looper**: 在单线程模型中,Message对象携带数据,Handler负责处理消息,Message Queue负责存储消息,Looper则负责从队列中取出消息并交给Handler处理,形成一个消息循环。 11. **AIDL(Android Interface Definition Language)**: AIDL用于进程间通信(IPC)。它定义接口,使得两个不同进程间的Service可以交互数据。AIDL支持基本数据类型和Parcelable对象。 12. **运行时权限与文件系统权限**: Android运行时权限针对特定功能,用户可以在应用运行时授予或拒绝,而文件系统权限主要控制对文件和目录的读写访问,通常在安装时确定。 13. **指定浏览器访问页面**: 可以通过Intent指定浏览器并打开URL,系统会根据用户的默认设置或可用的浏览器来决定使用哪个应用。 14. **调整图片透明度**: 遍历整型数组,检查像素值是否为白色(0xffffffff),如果是,则将ARGB的透明通道(alpha)设为半透明(0x80000000)。 15. **Android系统评价**: 优点:开放源码、设备多样化、丰富的API库、强大的开发者社区。缺点:版本碎片化、性能优化挑战、安全性问题、内存管理复杂。 以上是Android面试中常见的技术点,理解并掌握这些知识对于Android开发者来说至关重要。