ListBuddies 开源项目教程
1. 项目的目录结构及介绍
ListBuddies 项目的目录结构如下:
ListBuddies/
├── library/
│ ├── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jpardogo/
│ │ │ └── listbuddies/
│ │ │ ├── adapter/
│ │ │ ├── model/
│ │ │ ├── util/
│ │ │ └── view/
│ │ └── res/
│ │ ├── drawable/
│ │ ├── layout/
│ │ ├── values/
│ │ └── ...
│ └── build.gradle
├── sample/
│ ├── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jpardogo/
│ │ │ └── listbuddies/
│ │ │ ├── activity/
│ │ │ └── adapter/
│ │ └── res/
│ │ ├── drawable/
│ │ ├── layout/
│ │ ├── values/
│ │ └── ...
│ └── build.gradle
├── build.gradle
├── settings.gradle
└── ...
目录结构介绍
library/
:包含 ListBuddies 库的核心代码。src/main/java/com/jpardogo/listbuddies/
:库的主要 Java 代码。src/main/res/
:库的资源文件,包括布局、图片和字符串等。
sample/
:包含 ListBuddies 库的示例应用代码。src/main/java/com/jpardogo/listbuddies/
:示例应用的主要 Java 代码。src/main/res/
:示例应用的资源文件。
build.gradle
:项目的 Gradle 构建文件。settings.gradle
:项目的 Gradle 设置文件。
2. 项目的启动文件介绍
ListBuddies 项目的启动文件位于 sample/src/main/java/com/jpardogo/listbuddies/activity/MainActivity.java
。
MainActivity.java
package com.jpardogo.listbuddies.activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.jpardogo.listbuddies.R;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
启动文件介绍
MainActivity
是示例应用的主活动,继承自AppCompatActivity
。onCreate
方法中设置了布局文件activity_main.xml
。
3. 项目的配置文件介绍
ListBuddies 项目的配置文件主要包括 build.gradle
文件和 AndroidManifest.xml
文件。
build.gradle
// 顶层 build.gradle 文件
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
// library 模块的 build.gradle 文件
apply plugin: 'com.android.library'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: