Android核心技术点详解

需积分: 9 0 下载量 140 浏览量 更新于2024-08-04 收藏 113KB MD 举报
"该文件是关于Android开发的知识点汇总,涵盖了Activity、生命周期、启动模式、Fragment、Service、BroadcastReceiver、ContentProvider、View及其相关机制、数据存储、进程管理、Parcelable接口、IPC(进程间通信)以及Binder和AIDL等核心概念。" ## Activity Activity是Android应用中的一个组件,它代表了用户界面的一个屏幕。用户可以与其交互,完成特定任务。每个Activity都有自己的生命周期,包括创建、启动、暂停、恢复和销毁等状态。 ### 生命周期 Activity的生命周期主要包括onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()等方法,开发者需要在这些方法中进行相应的操作,以确保应用行为的正确性。 ### 启动模式 Activity的启动模式有四种:标准模式(Standard)、单实例模式(SingleInstance)、单任务模式(SingleTask)和单栈顶模式(SingleTop),它们决定了Activity如何被创建和管理。 ## Fragment Fragment是Activity的一部分,可独立存在并动态添加到Activity中。它可以有自己的UI和生命周期,与Activity进行通信。 ### 特点 Fragment增加了布局的灵活性,可以在不同屏幕尺寸和配置下重用代码。 ### 生命周期 Fragment的生命周期与Activity紧密关联,但也有独立的生命周期方法,如onAttach()、onCreate()、onCreateView()、onActivityCreated()、onResume()等。 ### 与Activity通信 Fragment与Activity通过FragmentManager进行通信,可以通过onActivityResult()处理回调,或者使用接口、Bundle等方式传递数据。 ## Service Service是后台运行的组件,用于执行长时间运行的操作,不提供用户界面。 ### 启动过程 Service通过startService()启动,会调用onStartCommand()方法。 ### 绑定过程 通过bindService()方法绑定Service,调用onBind()返回IBinder接口。 ### 生命周期 Service的生命周期包括onCreate()、onStartCommand()、onBind()、onUnbind()和onDestroy()等方法。 ## 进程 Android系统中,应用可以运行在不同的进程中。进程的生命周期直接影响应用的内存占用和性能。 ### 进程生命周期 进程有五种状态:空进程、可驻留进程、前台进程、可视进程和后台进程,系统根据OOM_ADJ值决定进程的优先级和是否被杀死。 ### 多进程 应用可以使用多个进程,每个进程有自己的Dalvik虚拟机。 ### 进程存活 通过Service、前台服务或 binder 连接可以提高进程的存活率。 ## IPC(进程间通信) Android中,进程间的通信主要依赖于Binder机制。 ### Binder Binder是Android特有的轻量级通信机制,允许不同进程间的数据交换。 ### AIDL Android Interface Definition Language (AIDL) 用于定义进程间通信的接口,使得不同进程的服务之间可以调用对方的方法。 ## 数据存储 ContentProvider是Android中用于共享数据的组件,支持多种数据存储方式,如SQLite数据库、文件系统、网络等。 ## View View是UI的基础组件,负责绘制和事件处理。 ### MeasureSpec MeasureSpec用于测量View的大小,定义了父视图对子视图的约束。 ### MotionEvent MotionEvent封装了触摸事件的信息,如ACTION_DOWN、ACTION_UP等。 ### VelocityTracker VelocityTracker用于追踪手指滑动的速度和方向。 ### GestureDetector GestureDetector用于识别常见手势,如滑动、点击等。 ### Scroller Scroller帮助实现平滑的滚动效果。 ### View的滑动和事件分发 ViewGroup会处理滑动手势,并将事件分发给子View。 ## 自定义View 开发者可以创建自定义View,扩展功能或实现特殊效果。 ## Parcelable接口 Parcelable是高效的序列化接口,用于在Intent或Binder中传递对象。 ### 使用示例 实现Parcelable接口需要重写writeToParcel()和createFromParcel()方法。 ### Parcelable与Serializable对比 Parcelable比Serializable更高效,适合频繁的序列化操作。 ### 数据存储 Android提供了多种数据存储方式,如SharedPreferences、SQLite、文件、ContentProvider等。 ## 进程被杀情况 系统会在内存不足时杀掉进程,通常按照OOM_ADJ值排序。 ## 进程保活方案 通过Service、前台服务、Receiver等方法可以提高进程的保活能力,但需谨慎使用,避免影响系统性能。 ## IPC方式 Android中的IPC方式主要有Binder、AIDL、ContentProvider、Intent等。