3、开发环境准备:Android Studio配置、Gradle依赖引入、AndroidManifest权限声明
好,咱们正式开始动手了。这一章我带你搭好开发环境。说白了,就是让Android Studio认识人脸识别,让Gradle把需要的库拉下来,再在清单文件里把权限声明好。
这三件事做完,你就能写代码调摄像头了。我在项目里见过太多人,代码写了一大堆,结果一运行就崩——回头一看,权限没加。嗯,咱们别犯这种低级错误。
3.1 Android Studio 版本与 SDK 配置
我个人习惯用最新稳定版的Android Studio。目前推荐 Arctic Fox 或更高版本。为什么?因为CameraX库在较新的IDE里支持更好,你想想看,老版本可能连AGP(Android Gradle Plugin)都升级不上去。
打开Android Studio后,先检查SDK Manager:
- 确保安装了 Android SDK Platform 29 或更高(人脸识别API从Android 10开始正式支持)
- 确保 NDK 和 CMake 已安装(部分底层库需要)
- 建议开启 Android 10 (API 29) 的模拟器或真机
重要提醒:人脸识别API在Android 10(API 29)及以上才可用。如果你还在用API 28,那得先升级项目。
我在项目中遇到过一件事:有个同事用API 28的模拟器调试,折腾了一上午,人脸识别一直返回“不支持”。后来发现是API版本太低。所以,记得先看一眼你的 compileSdk 和 targetSdk。
3.2 Gradle 依赖引入
接下来是Gradle。咱们需要引入两个核心库:CameraX(用来预览和拍照)和 Google ML Kit 的人脸检测(用来做人脸识别)。
打开你的 app/build.gradle 文件,在 dependencies 块里加上这些:
dependencies {
// CameraX 核心库
def camerax_version = "1.3.1"
implementation "androidx.camera:camera-core:${camerax_version}"
implementation "androidx.camera:camera-camera2:${camerax_version}"
implementation "androidx.camera:camera-lifecycle:${camerax_version}"
implementation "androidx.camera:camera-view:${camerax_version}"
// Google ML Kit 人脸检测
implementation "com.google.mlkit:face-detection:16.1.6"
}
为什么要用CameraX?因为它比原生的Camera2 API简单太多了。你想想看,以前写Camera2要处理一大堆回调,现在用CameraX,几行代码就能搞定预览。
另外,如果你需要处理图片,可能还需要加一个图片加载库,比如Coil或Glide。不过这不是必须的,咱们先聚焦在人脸识别上。
小技巧:建议在 gradle.properties 里加上 android.useAndroidX=true,确保所有依赖都使用AndroidX版本。老项目容易踩这个坑。
3.3 AndroidManifest 权限声明
这一步最容易忘。我曾经有一次把代码都写好了,运行到真机上,结果摄像头黑屏——找了半天,发现 AndroidManifest.xml 里没加权限。
打开你的 AndroidManifest.xml,在 <manifest> 标签内加上:
<uses-permission android:name="android.permission.CAMERA" />
<!-- 如果需要在后台处理人脸数据,还需要这个 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 可选:用于保存人脸图片到外部存储 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
注意,CAMERA 权限是 危险权限,光在清单文件里声明还不够。你需要在代码里动态申请。这个咱们下一章会讲。
避坑指南:我曾经在Android 11(API 30)上测试,发现 WRITE_EXTERNAL_STORAGE 权限在API 29以上已经废弃了。如果你用 targetSdkVersion 30 或更高,建议用 MediaStore 来保存图片,而不是直接写文件。
3.4 知识体系总览
下面这张图帮你理清本章的核心逻辑。从开发环境到权限声明,每一步都是环环相扣的:
3.5 验证环境是否就绪
配置完成后,建议先跑一个空项目,看看能不能正常编译。我个人习惯在 MainActivity 里先写一行日志:
Log.d("FaceRecognition", "环境准备完成,SDK版本:" + Build.VERSION.SDK_INT);
如果日志能正常打印,说明Gradle依赖和SDK都没问题。接下来就可以进入下一章——写代码了。
提示:如果你用的是模拟器,记得在创建模拟器时勾选 “Use Host GPU”,否则CameraX预览可能会卡顿。真机调试的话,建议用Android 10以上的设备。
好,环境就绪。咱们下一章见。