Anko Example 项目教程
1. 项目的目录结构及介绍
Anko Example 项目的目录结构如下:
anko-example/
├── app/
│ ├── build.gradle
│ └── src/
├── gradle/
│ └── wrapper/
├── .gitignore
├── LICENSE
├── README.md
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
目录结构介绍
- app/: 包含应用程序的主要代码和资源。
- build.gradle: 应用程序模块的构建脚本。
- src/: 包含源代码和资源文件。
- gradle/: 包含 Gradle 包装器文件。
- wrapper/: 包含 Gradle 包装器脚本和属性文件。
- .gitignore: Git 忽略文件,指定哪些文件和目录不应被版本控制。
- LICENSE: 项目的许可证文件。
- README.md: 项目的说明文档。
- build.gradle: 项目的根构建脚本。
- gradle.properties: Gradle 属性文件,包含构建配置的属性。
- gradlew: Gradle 包装器脚本(Unix)。
- gradlew.bat: Gradle 包装器脚本(Windows)。
- settings.gradle: 项目的设置文件,包含模块和仓库的配置。
2. 项目的启动文件介绍
项目的启动文件位于 app/src/main/java/
目录下,通常是 MainActivity.kt
文件。这个文件是应用程序的主活动,负责启动应用程序并显示初始界面。
package com.example.anko
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import org.jetbrains.anko.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
verticalLayout {
padding = dip(30)
editText {
hint = "Name"
textSize = 24f
}
editText {
hint = "Password"
textSize = 24f
}
button("Login") {
textSize = 26f
}
}
}
}
启动文件介绍
- MainActivity.kt: 主活动文件,使用 Anko DSL 创建用户界面。
- onCreate(): 活动创建时调用的方法,设置布局和初始化视图。
- verticalLayout{}: 创建垂直布局。
- editText{}: 创建编辑文本框。
- button{}: 创建按钮。
3. 项目的配置文件介绍
项目的配置文件主要包括 build.gradle
和 gradle.properties
文件。
build.gradle
根目录下的 build.gradle
文件:
// 根目录下的 build.gradle 文件
buildscript {
ext.kotlin_version = '1.3.72'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app
目录下的 build.gradle
文件:
// app 目录下的 build.gradle 文件
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.example.anko"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'