PermissionGen 开源项目使用教程
1、项目的目录结构及介绍
PermissionGen 是一个用于简化 Android 6.0 及以上版本动态权限请求的开源库。以下是项目的目录结构及其介绍:
PermissionGen/
├── app/
│ ├── build.gradle
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com.lovedise.permissiongen/
│ │ ├── MainActivity.java
│ │ └── ...
│ └── res/
│ ├── layout/
│ ├── values/
│ └── ...
├── library/
│ ├── build.gradle
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com.lovedise.permissiongen/
│ │ ├── PermissionGen.java
│ │ └── ...
│ └── res/
│ └── ...
├── build.gradle
├── settings.gradle
└── README.md
目录结构介绍
-
app/: 包含示例应用程序的代码和资源文件。
- build.gradle: 应用程序的构建脚本。
- src/main/java/com.lovedise.permissiongen/: 包含示例应用程序的主要 Java 代码。
- src/main/res/: 包含示例应用程序的资源文件,如布局和字符串。
-
library/: 包含 PermissionGen 库的代码和资源文件。
- build.gradle: 库的构建脚本。
- src/main/java/com.lovedise.permissiongen/: 包含 PermissionGen 库的主要 Java 代码。
- src/main/res/: 包含库的资源文件。
-
build.gradle: 项目的根构建脚本。
-
settings.gradle: 项目的设置文件,用于包含子项目。
-
README.md: 项目的说明文档。
2、项目的启动文件介绍
PermissionGen 库的启动文件是 PermissionGen.java
,位于 library/src/main/java/com.lovedise.permissiongen/
目录下。这个文件包含了用于请求权限的主要方法和逻辑。
PermissionGen.java 主要方法
- with(Activity activity): 设置请求权限的 Activity。
- addRequestCode(int requestCode): 设置请求码。
- permissions(String... permissions): 设置需要请求的权限。
- request(): 发起权限请求。
- needPermission(Activity activity, int requestCode, String[] permissions): 另一种请求权限的方法。
- onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults): 处理权限请求结果的方法。
3、项目的配置文件介绍
PermissionGen 库的配置文件主要是 build.gradle
文件,分别位于项目的根目录和 app/
以及 library/
目录下。
根目录下的 build.gradle
// 根目录下的 build.gradle 文件
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.0'
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
app/ 目录下的 build.gradle
// app/ 目录下的 build.gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.lovedise.permissiongen.demo"
minSdkVersion 23
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'com.lovedise:permissiongen:0.0.6'
implementation 'androidx.appcompat:appcompat:1.3.1'
}
library/ 目录下的 build.gradle
// library/ 目录下的 build.gradle 文件
apply plugin: 'com.android.library'
android {