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

App开发中为什么import android.app.Activity;

在 Android 开发中,使用 import android.app.*原因如下:

1.标准 SDK 包路径:

android.app.* 是 Android 官方 SDK 中定义的标准包名。
开发者通过 Android Studio 或其他 IDE 编写应用时,引用的是 SDK 提供的类和接口。

2.系统源码路径与开发者的区别:

frameworks/base/core/java/android/app/ 是App使用的 import android.app.* 对应 Android 系统源码中的实际文件路径。
这个路径是构建 Android 系统(AOSP)时使用的源代码目录结构,不是开发者在应用程序开发中直接使用的路径。

3.编译环境隔离:

应用开发者不需要关心底层实现的具体路径,只需要通过标准 API 来进行开发。
使用标准包名可以保证代码在不同设备和环境中的一致性。

4.模块化与封装:

Android SDK 将底层实现细节进行了封装,并提供统一的 API 接口。
这种设计使得开发者无需了解或依赖具体的源码路径,提升了开发效率和兼容性。
因此,在编写 Android 应用时,应该使用标准的包名 import android.app.*。



android.app.* 中的类会被打包进 Android 官方 SDK(Software Development Kit)中,供开发者在构建应用时使用。

以下是SDK详细的说明:

SDK 的组成:

android.app.* 是 Android 框架层的一部分,包含了如 Activity、Service、Application 等核心组件。
这些类最终会被编译成一个或多个库文件(如 framework.jar 或 android.jar),并作为 Android SDK 的一部分提供给开发者。

android.jar 的作用:

在 Android 项目中,开发环境会引用 android.jar 文件,它包含了所有标准 API 的类定义。
这个 jar 包中就包括了 android.app.、android.content.、android.view.* 等包中的类。
实际运行时,设备上的系统框架(如 /system/framework/framework.jar)会替代这个 jar 包来执行代码。
与系统源码的区别:
开发者使用的 SDK 是从 AOSP(Android Open Source Project)源码中提取和编译出来的,但隐藏了部分底层实现细节。
frameworks/base/core/java/android/app/ 是源码中的路径,而 android.app.* 是这些类在 SDK 中的公开接口形式。

版本控制与兼容性:

不同版本的 Android SDK(如 Android 10、11、12)会包含不同版本的 android.app.* 类。
Google 通过维护这些 SDK 来确保开发者可以编写跨设备兼容的应用程序。
总结: android.app.* 是被编译进 Android SDK 的标准 API 部分,以 android.jar 等形式存在。

http://www.xdnf.cn/news/8102.html

相关文章:

  • VisionPro_连接相机
  • 戴尔电脑怎么开启vt_戴尔电脑新旧bios开启vt虚拟化图文教程
  • Idea出现 100% classes 等
  • crud方法命名示例
  • wireshark: Display Filter Reference
  • `Release`模式下 编译器优化对 gRPC 远程调用的影响 导致堆栈非法访问
  • 防震基座在半导体晶圆制造设备抛光机详细应用案例-江苏泊苏系统集成有限公司
  • 《黄帝内经》数学建模与形式化表征方式的重构
  • 电脑中了勒索病毒如何自救
  • CyberSecAsia专访CertiK首席安全官:区块链行业亟需“安全优先”开发范式
  • Autodl训练Faster-RCNN网络(自己的数据集)
  • 自由开发者计划 002:创建一个贷款计算器的微信小程序
  • 鸿蒙Flutter实战:22-混合开发详解-2-Har包模式引入
  • VUE 文件下载,流形式的文件下载,判断返回的是流还是JSON;获取下载名称
  • 【Linux笔记】——网络基础
  • 【Java面试】从Spring Boot到Kafka:技术栈与业务场景全面剖析
  • 5G 网络切片深度解析
  • Python----循环神经网络(Word2Vec的优化)
  • 《JVM G1 源码分析和调优》笔记
  • C++23 容器推导指引中对于分配器的非推导语境(P1518R2)
  • 用 Deepseek 写的 html+js 密码生成器
  • 【软件使用】RSS(Really Simple Syndication)
  • WebSocket 从入门到进阶实战
  • LeetCode 76题「最小覆盖子串」
  • 嵌入式学习的第二十六天-系统编程-文件IO+目录
  • Axure安装与基础
  • 计算机网络 第三章:运输层(二)
  • day1 大模型学习 Qwen系列学习
  • Java求职面经分享:Spring Boot到微服务,从理论到实践
  • RISC-V 开发板 MUSE Pi Pro Gstreamer 编码UVC及MIPI CSI摄像头视频流