移动应用开发Android 创建第一个Android项目

一、创建第一个Android项目

1.1 准备好Android Studio

在这里插入图片描述
选择
在这里插入图片描述
写信息
在这里插入图片描述
等待构建Gradle
在这里插入图片描述

可以选择我们的模拟器,甚至我们可以通过手机屏幕共享的方式,把手机的开发者模式打开等操作,下载到本机手机之中,可以0距离的感受,程序之美。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 运行程序

在这里插入图片描述

1.3 程序结构是什么

app下的结构

这种的结构化的项目简洁明了,提高开发效率和代码质量
在这里插入图片描述
build - 编译时自动生成的文件
libs - 第三方jar包放在libs目录下
java - 放置所需Java 代码,自动生成了一个MainActivity 文件

res - 子目录(所有图片、布局、字

符串等资源)

我们应该创建不同分辨率的目录,如drawable-hdpi、drawable-xhdpi、drawable-xxhdpi等,并在制作程序时提供几个不同分辨率的版本,是为了适应不同设备的屏幕密度和分辨率
在这里插入图片描述
打开我们的子目录
在这里插入图片描述
这里面就是我们配置的字符串,调用使用,不用全局在中出现相同的多次构建
在这里插入图片描述
怎么构建
在XML中通过@string/app_name可以获得该字符串的引用。
在这里插入图片描述
最终
在这里插入图片描述
点击可以替换
在这里插入图片描述

AndroidManifest.xml 有四大组件,程序添加权限声明

在这里插入图片描述
MainActivity
在这里插入图片描述
res/layout 目录下的activity_main.xml
在这里插入图片描述

Project下的结构

在这里插入图片描述

  1. .gradle 文件夹:包含Gradle构建系统生成的缓存文件和临时文件。

  2. .idea 文件夹:包含项目相关的IDE配置文件,如编译器设置、运行配置等。

  3. app 文件夹:是Android应用程序的主要代码和资源目录。

  4.  - java 文件夹:包含Java源代码文件。
    
     - res 文件夹:包含应用程序所需的资源文件,如布局文件、图像文件、字符串等。
    
     - AndroidManifest.xml 文件:包含应用程序的清单文件,定义了应用程序的基本信息、权限、组件、界面等。
    
    • test 文件夹:包含单元测试的源代码和资源文件。

    • androidTest 文件夹:包含Android测试的源代码和资源文件。

    • build.gradle 文件:定义了应用程序的构建配置,包括依赖项、版本号等。

    • proguard-rules.pro 文件:定义了混淆规则,用于在发布时压缩、优化和混淆应用程序的代码。

  5. build 文件夹:包含构建生成的输出文件,如APK文件、中间文件等。

  6. gradle 文件夹:包含Gradle构建系统的配置文件和插件。

    • wrapper 文件夹:包含Gradle的包装器文件,用于自动下载和管理Gradle的版本。

    • .gitignore 版本控制

    • build.gradle 文件:定义了项目级别的构建配置,如Gradle版本、插件等。

    • gradle.properties 文件:包含Gradle属性的配置文件。

    • gradlew 和 gradlew.bat 文件:Gradle的命令行构建脚本,可在命令行界面中使用。

  7. settings.gradle 文件:定义了项目的模块和构建设置。
    这是Android Studio项目的基本目录结构,其中最重要的部分是app 文件夹,它包含了应用程序的源代码和资源文件。其他文件夹和文件用于项目的构建和配置。

二、开发android时,部分库下载异常慢

2.1 项目中更换下载仓库

maven {
    url 'https://maven.aliyun.com/repository/public/' }
maven {
    url 'https://maven.aliyun.com/repository/google/' }
maven {
    url 'https://maven.aliyun.com/repository/jcenter/' }
maven {
    url 'https://maven.aliyun.com/repository/central/' }

在这里插入图片描述

2.2 离线模式配置 Gradle

将 Gradle.zip 解压到 “C:\User\你的用户名.gradle\wrapper\dists” 下,最终路径为: “C:\User\你的用户名.gradle\wrapper\dists\gradle-7.4-bin” 和 “C:\User\你的用户名.gradle\wrapper\dists\gradle-8.0-bin”

三、Kotlin代码

在这里插入图片描述
在这里插入图片描述

3.1 变量

使用val(value 的简写)声明一个变量时,该变量被视为不可变的,即在初始赋值之后无法重新赋值。这类似于Java中的final变量。

使用var(variable 的简写)声明一个变量时,该变量被视为可变的,即在初始赋值之后仍然可以重新赋值。这类似于Java中的非final变量。

Kotlin 中没有基础数据类型,只有封装的数字类型,你每定义的一个变量,其实 Kotlin 帮你封装了一个对象,这样可以保证不会出现空指针。

# 显式地声明了变量a为Int类型
val a: Int = 10 

在这里插入图片描述

3.2 函数

参数的声明格式是“参数名: 参数类型”,其中参数名也是可以随便定义的

fun main() {
   
    println(fun1(1, 2))
}
fun fun1(num1:Int,num2: Int):Int{
   
    return num1+num2
}

3.3 条件控制

3.3.1 if条件语句

var value = 0 
if (num1 > num2) {
   
value = num1
 } else {
   
value = num2
 } 

Kotlin中的if语句相比于Java 有一个额外的功能,它是可以有返回值的

val result = if (条件表达式) {
   
    // 如果条件为真,则返回这里的值
} else {
   
    // 如果条件为假,则返回这里的值
}

例子

fun fun1(num1: Int, num2: Int): Int {
   
 return if (num1 > num2) {
   
num1
 } else {
   
num2
 }
} 
fun fun1(num1: Int, num2: Int) = if (num1 > num2) {
   
 num1
} else {
   
 num2
} 

再次

val max = if (a > b) a else b
fun fun1(num1: Int, num2: Int)= if (num1 > num2) num1 else num2

3.3.2 when条件语句

这种直通式

匹配值 -> {
    执行逻辑 } 
when (条件表达式) {
   1 -> {
   
        // 如果条件匹配值1,则执行这里的代码块
    }2 -> {
   
        // 如果条件匹配值2,则执行这里的代码块
    }
    else -> {
   
        // 如果条件都不匹配,则执行这里的代码块
    }
}
is关键字就是类型匹配的核心,相当于Java 中的instanceof关键字。

when (num) {
   
is Int -> println("number is Int")
is Double -> println("number is Double")
else -> println("number not support")
 }

3.4 for-in循环

kotlin的while和Java 中的while循环没有任何区别

fun main() {
   
    val range = 0..10
    for (i in range step 2) {
   
        println(i)
    }
}
使用step跳过区间内的元素

在这里插入图片描述

可以使用until关键字来创建一个左闭右开的区间,

在这里插入图片描述

downTo遍历降序区间

在这里插入图片描述

3.5 面向对象编程

class Person {
   
    var name: String = ""
      var age=0

    fun show(){
   
        println("Name: $name, Age: $age")
        println(name +"is" + age + " years old.")

    }
}

fun main() {
   
    val p = Person()
    p.name = "Alice"
    p.age = 30
    p.show() // Output: Name: Alice, Age: 30
}

第一个打印语句使用了字符串模板( n a m e 和 name和 nameage),将属性name和age的值插入到输出语句中,打印出"Name: Alice, Age: 30"。

第二个打印语句使用了字符串拼接(name +“is” + age + " years old.“),将属性name、字符串"is”、属性age和字符串" years old.“拼接在一起,打印出"Alice is 30 years old.”。

3.5.1 继承

在Person类的前面加上open关键字就可以了
要让Student类继承Person类

在Java 中继承的关键字是extends,而在Kotlin中是一个冒号

open class Person {
   
    var name: String = ""
      var age=0

    fun show(){
   
        println("Name: $name, Age: $age")
        println(name +"is" + age + " years old.")

    }
}
class Student :Person(){
   

    var grade:Int=0
    fun shows(){
   
        println("Name: $name, Age: $age, Grade: $grade")
         }

}
fun main() {
   
    val s=Student()
    s.name="Bob"
    s.age=20
    s.grade=3
    s.shows() //Output: Name: Bob, Age: 20, Grade: 3
}

四、活动

活动是安卓应用的主要组件之一,安卓中的活动(Activity)是指用户交互界面的一部分,它通常对应应用程序中的一个屏幕。

通过管理活动的生命周期(创建、启动、恢复、暂停、停止和销毁),我们作为开发者可以控制活动的状态和行为。

活动之间可以通过意图(Intent)进行跳转和通信。

把各种控件和视图,按钮、文本框、图像等联系起来,启动其他活动或从其他活动返回,用户可以在不同的界面之间进行切换和交互。

总之,活动作为安卓应用程序的一个重要组件,负责用户界面的展示和交互处理,使得用户可以与应用程序进行互动。

4.1 创建活动

在com.example.hellowolrd包下 ->New ->Activity ->Empty Activity
在这里插入图片描述

相关推荐

  1. 创建第一electron项目

    2024-02-09 09:06:01       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-09 09:06:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-09 09:06:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-09 09:06:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-09 09:06:01       20 阅读

热门阅读

  1. 2023.2.6

    2023.2.6

    2024-02-09 09:06:01      37 阅读
  2. SQL世界之命令语句Ⅲ

    2024-02-09 09:06:01       31 阅读
  3. 机器学习之T与F分布

    2024-02-09 09:06:01       28 阅读
  4. 「HDLBits题解」CS450

    2024-02-09 09:06:01       28 阅读
  5. Qt网络编程-QTcpServer的封装

    2024-02-09 09:06:01       26 阅读
  6. linux驱动工作原理

    2024-02-09 09:06:01       29 阅读