Android入门 | Android Studio的配置与使用


安装+配置Android Studio

从这一步开始:
在这里插入图片描述

一直点 next 即可,直到存储路径的选择上,可以放到非 C 盘,这里我放到 D 盘了(截图中没改):
在这里插入图片描述
是否要添加到开始菜单栏:
在这里插入图片描述

直到完成:
在这里插入图片描述
是否继承旧有配置,第一次安装的选第二个就行:
在这里插入图片描述

谷歌问你能不能在不侵犯你隐私的前提下获取些帮助改进的信息……我选的 send
在这里插入图片描述
这个问题详见这篇博客
在这里插入图片描述
配置,第一个是标准常规配置,第二个是自定义配置,选择第一个即可:
在这里插入图片描述
深色主题 or 浅色主题:
在这里插入图片描述

使用Android Studio

新建一个项目:
在这里插入图片描述
选择项目模块,可直接点next:
在这里插入图片描述
因为 Google 简易采用 Kotlin 来进行开发,不过也可以使用 java,同时指定 Minimum SDK 的版本为 21,对应 Android 5 版本:
在这里插入图片描述
编译器界面:
在这里插入图片描述
如果点了上图圈出来的那个,就会……:
在这里插入图片描述
运行 ‘app’ 时出错:没有找到目标设备。

模拟器

这是因为缺少模拟器,点击:
在这里插入图片描述
进入下图界面,点击页面中间的 Create Virtual Device...
在这里插入图片描述
选择完成后点击 next
在这里插入图片描述
点击 Download 下载你想要的系统,下载完之后选中,点击 Next
在这里插入图片描述
点击接受,然后 next
在这里插入图片描述
下载完成后点击 Finish
在这里插入图片描述

更改Android SDK的路径

值得一提的是,Android SDK 的默认路径是在 C 盘,因此模拟器也会被下在 C 盘:
在这里插入图片描述
其实这个是可以更改的,我们根据 C: \Users\(你的主机名)\AppData\Local \Android\Sdk\ ,找到 Sdk 文件夹,将其移动到 D 盘(我是将整个 Android 文件夹移动到 D 盘了):
在这里插入图片描述
PS:移动时记得关闭 AS 软件,否则会因为部分组件正在被使用导致无法成功移动。

然后在 AS 里重设 Sdk 的路径:
在这里插入图片描述
在这里插入图片描述
好了我们继续说配置模拟器,之后回到之前选择系统的界面,选择下载好的系统,点击 next
在这里插入图片描述
进行参数配置:
在这里插入图片描述
添加成功:
在这里插入图片描述
出现左侧的安卓手机就算配置成功啦!PS:在此之前可能会让你下载 HAXM,跟着提示点就行了,因为我们上面把 SDK 移动到了 D 盘,因此也不用担心占内存什么的~
在这里插入图片描述
值得一提的是,出现如下图所示的弹窗,则表示模拟器已经启动了,无需再点击启动的三角符号:
在这里插入图片描述
当启动模拟器之后即可返回之前界面,运行代码:
在这里插入图片描述

这时我出现了这样的报错:Installed Build Tools revision 版本号 is corrupted. Remove and install again

焦头烂额许久之后,找到了原因,我下载的模拟器版本是 Android 7.0 ,但是 Android SDK 却只有 API 32 这个版本:

在这里插入图片描述
在这里插入图片描述
解决方式是,下载 Android 7.0 之后,更改 build.gradle 配置文件,图中框起来的部分是修改后的内容,这里我选择的是我下载的 30 版本,之后记得点击右上角的 sync now 进行同步:
在这里插入图片描述
在这里插入图片描述

Hello World!

解决上述问题后再次运行程序,模拟器即可出现:
在这里插入图片描述

项目目录分析

我们来看一下 src/main/res 下的一些文件:
在这里插入图片描述

  • mipmap 系:用来放置图标,有多个版本的文件夹,是为了适应不同的设备,提高了代码兼容性。
  • values 系:存放字符串、样式、颜色等配置。
  • layout 系:存放布局文件的。
  • drawable 系:存放图片。
  • AndroidManifest.xml :整个项目的配置文件,在程序中定义的组件都需要在这个文件中注册。

AndroidManifest.xml 分析

在这里插入图片描述

  • activity 表示对 MainActivity 进行注册。
  • 因为包名在上文 package 中已经定义,所以用 . 表示省略包名。
  • intent-filter 是拦截器,定义了整个项目的主 Activity,也就是项目的入口。

MainActivity.kt 分析

MainActivity.kt 是用 kotlin 实现的代码文件,可以类比于 C++/JAVAmain 文件/函数:
在这里插入图片描述
上图红框的意义是:MainActivity 继承了 AppCompatActivity

那么什么是 AppCompatActivity 呢?

Android 21(也就是 Android 5)之后引入了 Material Design 的设计方式,为了支持 Material Color 、调色板、toolbar 等各种新特性,AppCompatActivity 就应运而生,其不仅兼容旧有的 ActionBarActivity,更是引入了AppCompatDelegate 类的设计,可以在普通的 Acitivity 中使用 AppCompate 的相关特性。

那么什么是 Acitivity 呢?

Activity类Android 提供的一个基类,项目中所有程序员自定义的 Activity 都必须继承 基类Activity 或者 基类Activity的子类,从而获得一个 Activity 的特性。

onCreateCreate

view类 中,Create 是虚函数、由框架调用,用来 生成一个窗口的子窗口。 而 OnCreate 函数是用来表示 一个窗口正在生成

一个窗口创建(Create)之后,会向操作系统发送 WM_CREATE 消息,OnCreate() 函数主要是用来响应此消息的,因此又被叫做消息响应函数。其只是在窗口显示前设置窗口的属性,如风格、位置颜色等;实现我们要在窗口里面增加的东西,例如按扭,状态栏,工具栏等。这些子窗口一般定义成类中的一个成员变量,以保证生命周期的正确性。

AndroidBundle类 的作用.

Bundle类 类似于 Map,用于存放 key-value 键值对形式的值。相对于 Map,它提供了各种常用类型的 put/get 方法,如:putString()/getString()putInt()/getInt()put() 用于往 Bundle 对象放入数据,get() 方法用于从 Bundle 对象里获取数据。Bundle 的内部实际上使用了 HashMap类型 的变量来存放 put() 方法放入的值。

savedInstanceStateonSaveInstanceState()

Activity 的生命周期中,只要离开了可见阶段,或者说失去了焦点,Activity 就很可能被进程 KILL 掉,这时候,就需要一种能保存当时的状态的机制—— savedInstanceState 。当一个 Activity 在 PAUSE 时,被 KILL 之前,它可以调用 onSaveInstanceState() 来保存当前 Activity 的状态信息。用来保存状态信息的 Bundle 会同时传给两个 method,即 onRestoreInstanceState()onCreate()

class MainActivity : AppCompatActivity() {
    
    
    override fun onCreate(savedInstanceState: Bundle?) {
    
    
    // override 确保该函数(即onCreate)为基类(即Activity)的虚函数并在此进行重写。
        super.onCreate(savedInstanceState)
        // 调用其父类Activity的onCreate方法来实现对界面的图画绘制工作。
        // 其实这条语句放在子类中的onCreate方法中的任何位置都可,问题只是该语句必须要被执行,所以,最好放在第一行,避免遗忘。
        // Activity中的onCreate方法中已经实现了一些基本操作,如果子类没有缺少super.onCraete,会导致子类中的onCreate方法功能不全。
        setContentView(R.layout.activity_main)
        // 作用:加载一个界面。Android讲究逻辑与视图分离,所以在Activity是不写界面的,界面是放在局部文件里面的。
        // 该方法中传入的参数是”R.layout.activity_main“,其含义为R.java类中静态内部类layout的静态常量activity_main的值,
        // 而该值是一个指向res目录下的layout子目录下的activity_main.xml文件的标识符,
        // 因此代表着显示activity_main.xml所定义的画面/布局。
    }
}

我们来看一下上面代码提到的 activity_main.xml
在这里插入图片描述

Guess you like

Origin blog.csdn.net/Jormungand_V/article/details/122395534