简述Android应用程序结构包含哪些部分
更多面试题请看这里:https://interview.raoyunsoft.com/
一个标准的Android应用程序主要由以下核心结构组成:
1. 源代码目录(main code)
- 位置:
app/src/main/java
- 内容:
- 核心业务逻辑代码(Java/Kotlin)
- 四大组件实现(Activity, Service, BroadcastReceiver, ContentProvider)
- 工具类、数据模型等辅助代码
2. 单元测试目录(unit test)
- 位置:
app/src/test
(本地JVM单元测试)app/src/androidTest
(仪器化测试)
- 用途:
- 验证业务逻辑正确性(JUnit)
- UI自动化测试(Espresso)
- 集成测试(Mockito)
3. 清单文件(AndroidManifest.xml)
- 位置:
app/src/main
- 核心作用:
<manifest><application>...</application><activity android:name=".MainActivity"> <intent-filter><action android:name="android.intent.action.MAIN"/></intent-filter></activity><uses-permission android:name="android.permission.INTERNET"/> </manifest>
- 声明应用组件(四大组件)
- 配置权限请求(如网络访问)
- 定义最低API级别和硬件要求
4. 资源目录(res)
- 核心子目录:
目录类型 用途说明 最佳实践 drawable/
通用图片资源 存放XML矢量图/通用位图 drawable-xxhdpi
高密度屏幕专用图片 按屏幕密度分类存放 layout/
UI布局文件(XML) 使用ConstraintLayout优化 values/
字符串/颜色/样式等常量 支持国际化多语言 mipmap/
应用启动图标 仅存放启动图标
📌 关键说明:
- mipmap目录:专用于存放应用启动图标(Launcher Icon),系统会根据设备分辨率自动选择合适尺寸。
- 与drawable区别:普通图片资源应放在drawable目录,避免图标被系统缩放失真。
5. 库文件(lib)
- 类型:
libs/
:第三方JAR/AAR库(如Gson、Retrofit)jniLibs/
:本地C/C++库(.so文件)
- 依赖管理:通过Gradle声明:
dependencies {implementation 'com.squareup.retrofit2:retrofit:2.9.0' }
6. 颜色资源(color)
- 定义位置:
res/values/colors.xml
- 使用方式:
<!-- 定义颜色 --> <color name="primary">#3F51B5</color><!-- 在布局中引用 --> <TextView android:textColor="@color/primary"/>
- 深色模式适配:
<!-- res/values-night/colors.xml --> <color name="primary">#303F9F</color>
扩展结构
- Gradle脚本:
build.gradle
(模块级):配置编译选项/依赖gradle.properties
:全局参数设置
- 资产文件:
assets/
:原始资源文件(字体/配置文件)
- ProGuard规则:
proguard-rules.pro
:代码混淆配置
💡 现代开发建议:
- 使用Resource Manager(Android Studio)可视化管理资源
- 采用ViewBinding替代findViewById优化布局访问
- 通过Resource Qualifiers(如
layout-land
)实现横竖屏适配