1.11 新建Android项目
新建文件夹Android,用于存放本书所有项目的Android客户机设计。启动Android Studio,进入新建项目向导,如图1.36所示。在Phone and Tablet模板类型中选择Empty Activity模板,单击Next按钮,进入下一步。
图1.36 新建项目向导
设置项目名称为Flower,包的名称为cn.edu.ldu.flower,确定保存位置,选择编程语言为Kotlin,SDK最小版本号设置为API 21:Android 5.0(Lollipop),如图1.37所示,单击Finish按钮,完成项目创建和初始化。
图1.37 项目初始化参数配置
用域名的反向形式作为包名称是一种惯例。将API限定为21版本,因为项目中调用了CameraX的相关API,CameraX需要API 21以上版本支持。项目初始结构如图1.38所示。
图1.38 项目初始结构
项目中包含两个名称为build.gradle的配置文件(见图1.38):一个是项目的全局依赖配置,称为项目依赖;一个是模块的依赖配置,称为模块依赖。打开模块配置文件build.gradle,在其dependencies节点添加第三方支持库,如网络访问、相机使用、图片下载等,如程序源码P1.8所示。
第29~31行语句配置视图绑定,viewBinding=true表示自动为布局文件生成视图类,从而简化视图控件访问。每当改动build.gradle文件,都需要重新同步项目。开启视图绑定模式后,还应该即刻执行菜单命令Build→Rebuild Project,以便生成视图类。
转到项目清单文件AndroidManifest.xml,声明三种权限,包括网络访问权限、相机使用权限和本地相册读取权限。其中只有网络访问权限是声明之后即刻生效的,后两种权限需要用户的动态授权,这段逻辑需要单独编程,以询问用户的方式决定能够取得的相关操作权限。
声明权限的脚本如下。
<uses-permission android:name="android.permission.INTERNET"/> <uses-feature android:name="android.hardware.camera.any"/> <uses-permission android:name="android.permission.CA M ERA"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
同时,修改application节点的label属性为中文标题,添加属性以允许基于HTTP的明文通信。
android:label="花朵识别" android:usesCleartextTraffic="true"