Android开发学习手记:从零开始学习android开发(二):尝试上手第一个App:HelloWorld

(By Mokiki)
“Hello World”,一定是每个程序员都不陌生的词,我们从这里开始,正式进入Android开发的学习旅程。

安卓开发的相关学习视频很多,目前我选择的是B站上up主“天哥在奔跑”录制的Android Studio开发教程视频,视频链接放在下面。
链接:我所参考的视频教程链接_by天哥在奔跑
本篇手记的学习路径也与这个教程中的顺序一致。
手记的主要内容包括相关内容和实际学习过程中遇到的一些视频中没有介绍的问题解决过程的记录,此外视频中对语言这部分基本没做详细介绍(我目前所看到的是这样)手记中尝试对代码也做一定的理解。

很不成熟的学前建议:
如果有一定其他语言编程基础(如C++),尤其是对面向对象编程的部分有很好的理解,那么理解代码也不算是非常困难的事,因为Java语言面向对象的特征非常明显,这一点在学习过程中深有体会。
此外,如果有过微信小程序的开发经验对安卓开发也有一定帮助,因为微信小程序的很多特性也都是参考了安卓程序的。

现在,我们正式开始学习!

一:创建一个新的工程文件

点开图标,运行Android Studio软件,你会看到这个页面)

啊…对了忘了说,这软件是全英文的,进去也是全英文的…不过大部分常用功能还是能够看懂的,而且顺带学英语了不是…(开个玩笑)如果在Windows下能比较容易的下载汉化补丁把软件汉化,但是Mac下就不太好操作,而且害怕破坏了原本的软件,得不偿失,所以我也没进行汉化这个危险的尝试。

显然通过这个页面我们很明白就能看懂点哪一个能新建工程文件,点击加号后面的选项,我们创建一个新的工程文件。点开后你会看到这个页面:
第一步:选择模版

AS为开发者提供了丰富的Activity模版,包含一些常用的底部分栏Activity,地图Activity等等,开发过程中如有需要可以选用。

我们选择Phone and Tablet选项卡下的Empty Activity选项,这样一会我们建好的工程文件中将存在一个已经可以直接使用的空白Activity,最后点Next进入下一步。

第二步:具体设置
在这个页面上我们需要依次设置如下信息

  1. Name:指这个工程文件的名称,在这里给你这个工程文件起一个名字。
  2. Package Name:包名。如果一个app想提交进入应用商店时,包名可能会被作为唯一的识别标识。它将是你的app被打包后的名字。包名采用的是反域名命名规则,一般一级为com,二级为个人或公司的名字,三级为应用的名字。根据这个规则我们把应用包名设置为:com.mokiki.helloworld
    *反域名命名规则:就是把域名反过来写,比如手机QQ的包名是com.tencent.mobileqq,那其实域名是mobileqq.tecent.com,采用反域名命名规则能够使其更易阅读,这样我们一看就是腾讯公司出的手机QQ产品。
  3. SaveLocation:存储地址,你的工程文件将被存于何处
  4. Language:AS提供了Java和Kotlin语言选项,本次学习选择Java语言,此外,up主天哥在奔跑也录制了kotlin语言的开发教程,大家也可以参考学习。
  5. Minimum SDK:你的应用所支持的最低版本SDK选择,也就意味着你的app在手机上运行时最低要求的安卓版本,目前选择Android 5.0(Lollipop)一般就可以满足需求了,AS也会提示我们可以适配94.1%的设备
  6. Use legacy android.support libraries:如果勾选,AS会认为你要使用旧的一些库,这会导致如果你在加载新的依赖时是可能出现问题的。发现这个坑已经有网友踩过了。在我们这个阶段尚构不成什么问题,但是之后可能会产生上述问题。我们从头学习新的技术的话,建议不要勾选这个选项。

    以上这些具体的内容设置完毕后,就可以点击Finish完成,新建工程阶段也就到此结束,AS会自动帮你打开你所创建的这个新的工程。

进入4这个大版本之后新建一个工程的步骤和原来稍有不同,但内容其实差不多,删去了一些设置比如不再要求你单独设置新建的这个activity的名称,其余的可以说是大同小异。

二.各种文件的基本介绍

打开工程文件后你将看到大量的文件夹,各种各样的文件,不过也不用太担心,他们已由AS帮你创建好。左上角Project点开,可以使用其他的整理方式来看到这些文件夹,不过Project这个选项为你将整个的文件结构都已经呈现得比较清晰,目前感觉对新手比较友好。

文件数量众多,我们会在学习到某个特定功能时,具体地了解用到的文件。

同时AS会自动帮你打开两个文件,他们就是刚才创建的Activity的最基本的组成文件。我们最开始也从这里起步。

文件的位置比较好找到,他们分别在下面的文件夹之中。

我们先介绍res文件夹,这是资源文件,其中的这些文件,我们在之后会经常用到。

  1. drawable:存放图片或自定义的xml文件(比如用于进阶地设置一些格式时候需要用到)

  2. layout:存放布局文件,比如决定这个activity布局的activity_main文件就存放在这里。

  3. mipmap:用于存放logo等图片文件,后缀的-hdpi等等是表示的分辨率。

  4. values:

    默认其中有三个xml文件,分别存放着决定颜色,字符串,主题的相关内容。可以把一些相关的内容规定在这里,然后在其他地方引用。比如可以在color文件中规定#000000是“black”,在布局文件中使用的时候可以更方便地直接引用而不需要每次都写16进值的形式。

  5. AndroidMainfest:比较重要的是,任何一个activity都必须在这个文件中声明注册,然后才能之后去使用。
    如果有多个activity这个文件中还会规定哪一个是最初初始化启动的activity。

最后介绍一下main文件中比较重要的build.gradle这个文件。
在介绍它之前简单提一下gradle,简单地讲gradle是一个帮你构建工程文件的工具,AS也是用gradle帮你建好的这个工程。
在这个文件中主要是定义一些版本号、依赖库之类的信息。

我在开始时遇到过这样的问题:我的activity_main.xml这个布局文件一直显示Loading…字样,发现是gradle在下载,还没有下载完成,下载完成之后恢复了正常。
gradle下载可能会很慢…就和jdk的时候是一样的这个csdn论坛上也给出了挺多解决方法。
这里贴一个坛友总结的方法,我用第一种方法成功解决了问题(但也只是相对快一点,碰上需要下载的时候就会很慢)gradle下载太慢的解决by洲汐

三:关于我们的第一个app

其实此时,AS已经帮你创建完了一个能够完整运营的最基本的app,我们先对其中的一些东西作简单了解。
我们将在MainActivity.java中看到如下代码。

package com.mokiki.helloworld;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

包括一些包名…引用库什么的
另外可以看到我们所创建的MainActivity这个类是继承自AppCompatActivity的,但是对于这个AppCompatActivity笔者尚不太明白,只能先照猫画虎,也许深入学习之后能够有所感悟,到时再来补充。

这里我们可以注意到一个@Override,这是一个注解,表示这是对它父类方法的重写。

onCreate()这个函数作用是在窗口置于前台前先加载一些窗口的属性,通常情况下,我们需要在onCreate()中调用setContentView(int)函数填充屏幕的UI,一般通过findViewById(int)返回xml中定义的视图或组件的ID,也可以像默认的这样,用R.layout.name的方式找到xml布局文件。

点一下这个name(要同时按住option和·这两个键才能点),你会发现能跳转到activity_main.xml,这就是这个activity的布局文件,也就是这个activity的UI就是根据这个文件来的。

下面我们看看
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

呼…又是好多代码,喘口气…

这里面主要有一个根布局ConstraintLayout,其中又有一个控件拿来显示文字,这个子控件内又有着很多的控制语句,用来控制显示效果。
ConstraintLayout这个是默认为你生成的根布局,你也可以不用这种布局方式,使用LinearLayout(线性布局)或者RelativeLayout(相对布局),后面这些控件、布局,我们会一个一个具体学习它们都有哪些属性~

最后简单说一下AndroidMainfest
目前我们需要知道的是这个

<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

这段代码完成了我们一个activity的注册其实最简单的注册只需要

<activity android:name=".MainActivity"></activity>

就完成了,中间的内容,是把那个activity设成了初始启动的activity

之前说过,我们这个已经是一个“完成”的项目了,怎么看一下它的效果呢?AS提供了内置的模拟器帮助我们完成这个工作。在这里插入图片描述
在文件路径的右侧,整体窗口的右上角你可以找到这些工具,找到这个这个图标 ,点一下就可以启动AVD管理器。AVD管理器用于管理你所有的模拟器。

第一次使用前需要先来这里新建一个AVD
点击Create Virtual Device…

会看到为你提供的格式各样的虚拟机,选一个喜欢的之后Next

下一步选择这个虚拟机搭载的系统镜像版本,需要哪个直接download,下载完之后选中Next

最后可以给这个AVD起个名字便与识别,或者是改变一下其他的参数都可以,确定之后Finish,这个AVD就创建好了,再次打开AVD Manager就可以找到它进行一些设置。

在这个下拉框处,你也可以找到AVDManager,也可以启动虚拟机的运行,点那个绿色的箭头。

稍等片刻,当完成编译后,就会把你的app传到虚拟机上运行,你会看到一个这样的页面。

这就是你的第一个app:HelloWorld

我们回到刚才的activity_main.xml,把里面控件的text属性改成

 android:text="恭喜你完成HelloWorld并成功模拟运行!"

再运行就能看到新的页面

文字就变化了,之后我们再具体去学习这这些属性。

恭喜你,这就是你的第一个App:HelloWorld!

Hello Android World!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值