AndPermission 开源项目教程
1. 项目的目录结构及介绍
AndPermission 是一个用于 Android 平台的权限管理框架。以下是其主要目录结构的介绍:
AndPermission/
├── app/
│ ├── build.gradle
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ └── java/
│ └── com/
│ └── yanzhenjie/
│ └── permission/
│ └── MainActivity.java
├── library/
│ ├── build.gradle
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ └── java/
│ └── com/
│ └── yanzhenjie/
│ └── permission/
│ └── Permission.java
├── build.gradle
├── gradle.properties
├── settings.gradle
└── README.md
目录结构说明:
-
app/: 包含示例应用程序的代码和资源。
- build.gradle: 应用程序的构建脚本。
- src/main/AndroidManifest.xml: 应用程序的清单文件。
- src/main/java/com/yanzhenjie/permission/MainActivity.java: 示例应用程序的主活动。
-
library/: 包含权限管理框架的核心代码。
- build.gradle: 库的构建脚本。
- src/main/AndroidManifest.xml: 库的清单文件。
- src/main/java/com/yanzhenjie/permission/Permission.java: 权限管理的核心类。
-
build.gradle: 项目的根构建脚本。
-
gradle.properties: Gradle 配置文件。
-
settings.gradle: 项目设置文件。
-
README.md: 项目说明文档。
2. 项目的启动文件介绍
AndPermission 项目的启动文件是 MainActivity.java
,位于 app/src/main/java/com/yanzhenjie/permission/
目录下。
package com.yanzhenjie.permission;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
启动文件说明:
- MainActivity.java: 这是示例应用程序的主活动,继承自
AppCompatActivity
。在onCreate
方法中,设置了布局文件activity_main
。
3. 项目的配置文件介绍
AndPermission 项目的配置文件主要包括 build.gradle
和 AndroidManifest.xml
。
build.gradle
根目录下的 build.gradle
// 根目录下的 build.gradle
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.2'
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app 模块下的 build.gradle
// app 模块下的 build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.yanzhenjie.permission"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'com.yanzhenjie:permission:2.0.0'
}
library 模块下的 build.gradle
// library 模块下的 build.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 30
defaultConfig {
minSdkVersion 16
targetSdkVersion 30
versionCode 1
version