2025-7-12-Android开发笔记
七月 12, 2025
开发笔记
🛠️ 开发环境配置
基础工具链
| 组件 | 版本要求 | 备注 | | ————– | ————– | —————————– | | Android Studio | Flamingo 2022+ | 需支持 AGP 8.0 | | JDK | 17+ | 推荐使用 Temurin 发行版 | | Gradle | 8.0+ | 使用 Wrapper 确保版本一致 | | Android SDK | API 19+ | 最低兼容 Android 4.4 (KitKat) |
关键依赖说明
1 | dependencies { |
基本的项目文件结构概况
一个标准的 Android 项目通常遵循以下目录结构(基于 Android Studio 默认模板):
1 | MyApp/ |
1. 私有目录和公有目录
- 技术点:
- 私有目录:
/data/data/<package-name>/
(内部存储),使用Context.getFilesDir()
或getCacheDir()
访问,无需权限,应用卸载时自动清除。 - 公有目录:如
Downloads/
、DCIM/
等,通过Environment.getExternalStoragePublicDirectory()
访问,需动态申请READ_EXTERNAL_STORAGE
/WRITE_EXTERNAL_STORAGE
权限。 - 作用域存储(Scoped Storage):Android 10+ 限制直接访问公有目录,需通过
MediaStore
或存储访问框架(SAF)操作文件。
- 私有目录:
2. 二进制文件的执行权限问题
- 技术点:
- NDK/JNI:原生二进制文件(如
.so
库)需放在jniLibs/
目录,自动打包到 APK。 - 权限控制:Android 不允许直接执行外部存储中的二进制文件(如下载的
.so
或可执行文件),需先复制到私有目录(/data/data/
)并通过chmod
赋予执行权限。 - 安全风险:动态加载外部代码需谨慎,避免恶意代码注入。
- NDK/JNI:原生二进制文件(如
3. AndroidManifest.xml 的重要性和使用方法
- 关键技术:
- 四大组件声明:
<activity>
、<service>
、<receiver>
、<provider>
必须在此注册。 - 权限管理:声明应用所需权限(如
<uses-permission android:name="android.permission.CAMERA"/>
)。 - Intent Filter:定义组件响应隐式 Intent 的规则(如主 Activity 的
LAUNCHER
类别)。 - 应用配置:包名、版本号、SDK 版本限制(
<uses-sdk>
)、硬件特性要求(如<uses-feature>
)。 - 特殊属性:
android:exported
控制组件是否允许外部应用访问(Android 12+ 强化限制)。
- 四大组件声明:
4. buildFeatures { viewBinding true }
- 技术点:
- 视图绑定(ViewBinding):替代
findViewById
,为每个 XML 布局生成绑定类,提供类型安全的视图引用。 - 启用方式:在
build.gradle
中配置:
- 视图绑定(ViewBinding):替代
1 | android { |
- 优势:避免空指针异常,减少模板代码;与 DataBinding 相比无性能开销(但缺少数据绑定功能)。
1 | private lateinit var binding: ActivityMainBinding |
查看评论