Android项目架构深度解析

如何创建一个项目

第一次构建需要蛮久时间的,可以耐心等待~

项目总体结构概览

manifests/ --- 清单文件(AndroidManifest.xml)

这是 Android 应用最核心的配置文件。

功能:

  • 声明 包名

  • 注册 四大组件(Activity、Service、BroadcastReceiver、ContentProvider)

  • 设置应用图标、名称、入口页面

  • 申请权限(如网络、定位、相机等)

  • 设置最小/目标 SDK 版本(可由 Gradle 控制)

简单来说,它是一个"配置清单",告诉 Android 系统:这个应用包含什么功能。

kotlin/ 或 java/ --- 应用的核心逻辑代码

你的业务逻辑、事件响应、网络操作等都在这里完成。

bash 复制代码
com.example.myapplication/
├── MainActivity.kt    ← 启动页代码
├── api/               ← 网络接口
├── ui/                ← 界面逻辑
└── model/             ← 数据模型

这里是真正"写代码"的地方,比如你点击按钮、请求数据、播放音乐等都写在这。

res/ --- 资源文件目录(Resource)

这个文件夹下存放所有与 界面相关的资源。

子目录 功能说明
layout/ 布局文件,UI 的结构定义,如 activity_main.xml
drawable/ 图片资源,如按钮背景、图标等
mipmap/ 应用启动图标(不同分辨率)
values/ 常量值,如颜色、字符串、样式等
xml/ 其他 XML 配置,如网络策略、安全配置

界面长什么样、用什么文字、什么颜色都在这控制。

build.gradle.kts(模块级)

在 app/ 下的 build.gradle.kts 是模块的构建脚本,配置了:

  • 使用的插件(如 com.android.application)

  • 编译 SDK 版本

  • 应用 ID、版本号

  • 依赖的第三方库(如 Retrofit、Glide 等)

如果说代码是"造房子",这里就是"买材料"和"告诉工人怎么造"。


build.gradle.kts(项目级)

项目根目录下的 build.gradle.kts 用于配置整个项目的通用设置,如:

  • 所有模块用的仓库(如 MavenCentral、Google)

  • 版本统一管理入口(配合 libs.versions.toml)


settings.gradle.kts

用于指定当前项目包含(编译)哪些模块(如 include(":app")表示只编译app模块),以及设置项目名称。


gradle.properties

配置一些全局的构建参数,比如是否启用 Kotlin 的某些功能,或者 Java 编译参数。


gradle-wrapper.properties

指定使用的 Gradle 版本,保证不同开发者之间构建环境一致。


local.properties

指定本地的 Android SDK 路径,不会上传到 Git,用于本地构建。


libs.versions.toml

这个是 版本控制中心(使用 Version Catalog 特性),可以统一管理所有依赖的版本号。


proguard-rules.pro --- ProGuard 混淆规则文件

这是 Android 应用发布时用于 代码混淆和压缩优化 的配置文件。

Manifest 是"声明",Kotlin/Java 是"实现",res/ 是"表现",Gradle 是"构建"。

相关推荐
AIsoft_868918 小时前
职场音频文件怎么整理?录音APP有哪些用法
android·音视频
booboosui18 小时前
第一批个人 Agent 用户正在卸载,问题不在模型,在它住在哪儿
android
洞见前行18 小时前
点击图标到内容出现,你的 App 在这几秒里做了什么:Android 冷启动全链路优化实战
android·性能优化·android studio
凯基迪科技18 小时前
芯片UID绑定修改 加密与逆向修改思路分析
android
Liben20 小时前
Weex开发踩坑记录
android·前端·ios
救救孩子把21 小时前
结构化输出为何“格式正确、答案错误”?JSON Schema 的能力边界
android·java·json·agent·agent服务
张小姐的猫1 天前
【MySQL】事务
android·mysql·adb
你看我名字1 天前
数眼智能 Search + Reader 实战:联网问答怎样避免“搜到了,却引用错了”
android·java·开发语言
恋猫de小郭1 天前
最近 Android 有什么更新:Android Dev Summit 2026 技术解读
android·前端·flutter
Kapaseker1 天前
删掉 1.1 万行 C 代码,Rust 正式接手 Android Binder
android·rust