长春电商网站建设公司电话,免费秒开小游戏,steam交易链接怎么改,可以做物理试验的网站有哪些文章目录 一、创建第一个Android项目1.1 准备好Android Studio1.2 运行程序1.3 程序结构是什么app下的结构res - 子目录#xff08;所有图片、布局、字AndroidManifest.xml 有四大组件#xff0c;程序添加权限声明 Project下的结构 二、开发android时#xff0c;部分库下载异… 文章目录 一、创建第一个Android项目1.1 准备好Android Studio1.2 运行程序1.3 程序结构是什么app下的结构res - 子目录所有图片、布局、字AndroidManifest.xml 有四大组件程序添加权限声明 Project下的结构 二、开发android时部分库下载异常慢2.1 项目中更换下载仓库2.2 离线模式配置 Gradle 三、Kotlin代码3.1 变量3.2 函数3.3 条件控制3.3.1 if条件语句3.3.2 when条件语句 3.4 for-in循环使用step跳过区间内的元素可以使用until关键字来创建一个左闭右开的区间downTo遍历降序区间 3.5 面向对象编程3.5.1 继承 四、活动4.1 创建活动4.1.1 Android Studio 会自动在AndroidManifest文件中注册4.1.2 活动中使用Toast写法LENGTH_SHORT0LENGTH_LONG 1 4.1.3 menu 一、创建第一个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下的结构 .gradle 文件夹包含Gradle构建系统生成的缓存文件和临时文件。 .idea 文件夹包含项目相关的IDE配置文件如编译器设置、运行配置等。 app 文件夹是Android应用程序的主要代码和资源目录。 - java 文件夹包含Java源代码文件。- res 文件夹包含应用程序所需的资源文件如布局文件、图像文件、字符串等。- AndroidManifest.xml 文件包含应用程序的清单文件定义了应用程序的基本信息、权限、组件、界面等。test 文件夹包含单元测试的源代码和资源文件。 androidTest 文件夹包含Android测试的源代码和资源文件。 build.gradle 文件定义了应用程序的构建配置包括依赖项、版本号等。 proguard-rules.pro 文件定义了混淆规则用于在发布时压缩、优化和混淆应用程序的代码。 build 文件夹包含构建生成的输出文件如APK文件、中间文件等。 gradle 文件夹包含Gradle构建系统的配置文件和插件。 wrapper 文件夹包含Gradle的包装器文件用于自动下载和管理Gradle的版本。 .gitignore 版本控制 build.gradle 文件定义了项目级别的构建配置如Gradle版本、插件等。 gradle.properties 文件包含Gradle属性的配置文件。 gradlew 和 gradlew.bat 文件Gradle的命令行构建脚本可在命令行界面中使用。 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 变量
使用valvalue 的简写声明一个变量时该变量被视为不可变的即在初始赋值之后无法重新赋值。这类似于Java中的final变量。
使用varvariable 的简写声明一个变量时该变量被视为可变的即在初始赋值之后仍然可以重新赋值。这类似于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 num1num2
}
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 num23.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..10for (i in range step 2) {println(i)}
}使用step跳过区间内的元素 可以使用until关键字来创建一个左闭右开的区间 downTo遍历降序区间 3.5 面向对象编程
class Person {var name: String var age0fun show(){println(Name: $name, Age: $age)println(name is age years old.)}
}fun main() {val p Person()p.name Alicep.age 30p.show() // Output: Name: Alice, Age: 30
}第一个打印语句使用了字符串模板( n a m e 和 name和 name和age)将属性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 age0fun show(){println(Name: $name, Age: $age)println(name is age years old.)}
}
class Student :Person(){var grade:Int0fun shows(){println(Name: $name, Age: $age, Grade: $grade)}}
fun main() {val sStudent()s.nameBobs.age20s.grade3s.shows() //Output: Name: Bob, Age: 20, Grade: 3
}四、活动
活动是安卓应用的主要组件之一安卓中的活动(Activity)是指用户交互界面的一部分它通常对应应用程序中的一个屏幕。通过管理活动的生命周期创建、启动、恢复、暂停、停止和销毁我们作为开发者可以控制活动的状态和行为。
活动之间可以通过意图(Intent)进行跳转和通信。把各种控件和视图按钮、文本框、图像等联系起来启动其他活动或从其他活动返回用户可以在不同的界面之间进行切换和交互。
总之活动作为安卓应用程序的一个重要组件负责用户界面的展示和交互处理使得用户可以与应用程序进行互动。
4.1 创建活动
在com.example.hellowolrd包下 -New -Activity -Empty Activity 我们的两个活动
4.1.1 Android Studio 会自动在AndroidManifest文件中注册
我们打开app/src/main/AndroidManifest.xml文件代码如下所示:
?xml version1.0 encodingutf-8?
manifest xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/tools applicationandroid:allowBackuptrueandroid:dataExtractionRulesxml/data_extraction_rulesandroid:fullBackupContentxml/backup_rulesandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/Theme.MyApplicationtools:targetApi31 activityandroid:name.OtherActivityandroid:exportedfalse /activityandroid:name.MainActivityandroid:exportedtrue intent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity/application/manifest4.1.2 活动中使用Toast
Toast会在屏幕上显示一段时间用于在应用程序的界面上显示一条简短的消息然后自动消失。
写法
// 要显示的消息文本
String message Hello, Toast!;
// 创建并显示Toast
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();当调用makeText()方法并通过链式调用show()方法来创建并显示Toast。getApplicationContext()是一种获取当前活动上下文的方法可以在活动中使用。
需要注意的是Toast的 makeText()方法返回的是一个Toast对象可以通过调用show()方法来显示。
在调用show()方法后Toast会在屏幕上显示一段时间然后自动消失。
LENGTH_SHORT0 Android 短时间的Toast LENGTH_LONG 1 Android 长时间的Toast 4.1.3 menu