当前位置: 首页 > news >正文

android的 framework 有哪些知识点和应用场景

Android Framework 知识点

1. 四大组件
  • Activity(活动)
    • 是 Android 应用中最基本的组件,用于实现用户界面。一个 Activity 通常对应一个屏幕的内容。
    • 有自己的生命周期,包括 onCreateonStartonResumeonPauseonStoponDestroy 等方法,开发者需要了解这些方法的调用时机,以便正确管理 Activity 的状态。
    • 可以通过 Intent 进行启动和切换,Intent 可分为显式 Intent 和隐式 Intent,分别用于明确指定启动的组件和根据 Intent 过滤器匹配合适的组件。
  • Service(服务)
    • 用于在后台执行长时间运行的操作,不提供用户界面。例如,音乐播放服务、文件下载服务等。
    • 有两种启动方式:startServicebindServicestartService 启动的服务会在后台一直运行,直到调用 stopService 或自身调用 stopSelfbindService 启动的服务与调用者绑定,调用者销毁时服务也会销毁。
    • 可以使用 IntentService,它是 Service 的子类,内部使用 HandlerThread 处理异步任务,任务完成后会自动停止。
  • Broadcast Receiver(广播接收器)
    • 用于接收系统或应用发出的广播消息。广播可以是系统广播(如开机广播、电池电量变化广播等),也可以是应用自定义广播。
    • 注册方式有静态注册和动态注册。静态注册在 AndroidManifest.xml 中声明,应用未启动时也能接收广播;动态注册在代码中通过 registerReceiver 方法注册,需要在合适的时机调用 unregisterReceiver 方法取消注册。
  • Content Provider(内容提供者)
    • 用于在不同的应用之间共享数据。例如,联系人数据、短信数据等都是通过内容提供者来共享的。
    • 可以通过 ContentResolver 来访问内容提供者提供的数据,ContentResolver 提供了 queryinsertupdatedelete 等方法来操作数据。
2. 系统服务
  • Activity Manager Service(活动管理服务)
    • 负责管理应用的 Activity 生命周期、任务栈和进程。它决定了哪个 Activity 应该显示在前台,如何处理 Activity 的启动、暂停、恢复和销毁等操作。
  • Window Manager Service(窗口管理服务)
    • 管理应用的窗口,包括窗口的创建、显示、隐藏、大小调整和层级关系等。它还处理触摸事件和键盘事件的分发。
  • Package Manager Service(包管理服务)
    • 负责应用的安装、卸载、更新和查询等操作。它维护了系统中所有应用的信息,包括应用的包名、版本号、权限等。
3. 资源管理
  • 字符串资源:用于存储应用中的文本信息,方便实现多语言支持。可以在 strings.xml 文件中定义字符串资源,然后在代码或布局文件中通过 @string/resource_name 引用。
  • 布局资源:用于定义应用的界面布局。常见的布局文件有 LinearLayoutRelativeLayoutFrameLayout 等。可以在 layout 目录下创建布局文件,然后在 Activity 中通过 setContentView(R.layout.layout_name) 方法设置布局。
  • 图片资源:用于存储应用中的图片文件,如图标、背景图等。可以根据不同的屏幕密度将图片放在不同的 drawable 目录下,系统会自动选择合适的图片显示。
4. 图形与动画
  • View 体系:是 Android 中所有界面元素的基类,包括 TextViewButtonImageView 等。开发者可以自定义 View 来实现特殊的界面效果,需要重写 onDraw 方法进行绘制。
  • 动画框架:提供了补间动画(Tween Animation)、帧动画(Frame Animation)和属性动画(Property Animation)三种动画类型。补间动画通过对 View 的平移、旋转、缩放和透明度等属性进行变换来实现动画效果;帧动画通过依次显示一系列图片来实现动画效果;属性动画可以对任何对象的属性进行动画操作。
5. 网络通信
  • HttpURLConnection:是 Java 提供的一个简单的 HTTP 通信类,在 Android 中也可以使用。可以通过它发送 HTTP 请求并获取响应数据。
  • OkHttp:是一个高效的 HTTP 客户端库,在 Android 开发中被广泛使用。它支持 HTTP/2 和 SPDY 协议,提供了异步请求、拦截器、缓存等功能。
  • Retrofit:是一个基于 OkHttp 的 RESTful API 客户端库,它可以将 HTTP 请求抽象成 Java 接口,通过注解的方式定义请求的方法和参数,大大简化了网络请求的代码。

Android Framework 应用场景

1. 开发常规 Android 应用
  • 无论是简单的工具类应用,还是复杂的社交、电商应用,都需要使用 Android Framework 提供的四大组件来构建界面和实现功能。例如,社交应用中的聊天界面可以使用 Activity 实现,消息推送功能可以使用 Service 和 Broadcast Receiver 实现,用户信息的存储和共享可以使用 Content Provider 实现。
2. 系统定制与开发
  • 设备厂商在定制 Android 系统时,需要深入了解 Android Framework。例如,定制系统的桌面 launcher、通知栏、设置菜单等,需要对 Framework 中的窗口管理、资源管理等模块进行修改和扩展。
3. 开发系统级应用
  • 如文件管理器、任务管理器、安全卫士等系统级应用,需要直接与 Android Framework 中的系统服务进行交互。例如,文件管理器需要使用存储管理服务来访问和操作文件系统,任务管理器需要使用 Activity Manager Service 来管理应用的进程和任务。
4. 跨应用数据共享与交互
  • 当多个应用需要共享数据或进行交互时,就需要使用 Content Provider 和 Broadcast Receiver。例如,一个音乐播放器应用可以通过 Content Provider 共享音乐文件信息,其他应用可以通过 ContentResolver 访问这些信息;同时,音乐播放器应用可以通过 Broadcast Receiver 接收其他应用发送的播放控制指令。

相关文章:

  • 一键部署k8s之EFK日志收集系统
  • 在 Android 中实现通话录音
  • Flask API 项目 Swagger 版本打架不兼容
  • 02_Flask是什么?
  • Hadoop+Spark 笔记 2025/4/21
  • 【python实用小脚本系列】用Python让鼠标“动起来”:光标自动移动、自动点击、自动图象识别的小技巧
  • CSS 中实现 div 居中有以下几种常用方法
  • ADB -> pull指令推送电脑文件到手机上
  • 大数据学习(109)-Impala 和 Hive 之间的 SQL 差异
  • 机器学习 Day13 Boosting集成学习方法: Adaboosting和GBDT
  • Spark-SQL连接Hive总结及实验
  • 使用SystemWeaver生成SOME/IP ETS ARXML的完整实战指南
  • 23种设计模式-结构型模式之外观模式(Java版本)
  • C++std::map
  • 批量替换多个 Word 文档中的指定图片
  • Spark SQL核心解析:大数据时代的结构化处理利器
  • 奇怪的问题
  • 【大数据分析】Apache Doris高性能实时分析数据库:MPP架构下的多场景应用与优势分析以及部署应用
  • 第十四届蓝桥杯 2023 C/C++组 飞机降落
  • 外网如何连接内网中的mysql数据库服务器
  • 关税战推高成本,美澳“奥库斯”核潜艇协议或将生变
  • 女子“伸腿阻拦高铁关门”被行拘,事件追踪:当时发生了什么?
  • 错失两局领先浪费赛点,王楚钦不敌雨果无缘世界杯男单决赛
  • 人民日报和音:开启中马关系新的“黄金五十年”
  • 中马签署互免签证协定,飞往马来西亚的机票搜索量日环比增长超1倍
  • TP-LINK4.36亿元竞得上海青浦徐泾办公地块,需引入全球领先的总部型企业