上手第一个Android应用

原文链接 上手第一个Android应用 ,欢迎骚扰本站
近年来,随着智能手机的大众化,移动端开发成为了热门岗位,开发人员开发出各式App共我们日常使用,我们自己也可以来写出自己的Android应用,那么接下来就开始吧

Android应用是使用Java应用来开发的,要进行Android应用开发需要掌握Java的基本用法,掌握Java的基本语法以及特性。(Google在2019年5月宣布了Kotlin 编程语言现在是 Android 应用程序开发人员的首选语言,你要是会Kotlin编程语言,你也可以用kotlin进行Android应用开发,这里还是使用Java来进行开发,后期再使用Kotlin开发)

搭建开发环境

工欲善其事必先利其器,用记事本开发一个应用程序不是一个明智之举,我们需要搭建Android开发环境来进行Android应用开发。
要搭建Android开发环境,我们需要一下几个工具:

  • JDK:JDK是Java语言的开发工具包,包含Java程序的运行环境,开发工具,基础类库等等,因为Android应用程序用Java进行开发,所以需要安装JDK,而且开发Android的IDE是基于IDEA开发出来的,所以需要JDK提供运行IDE的运行环境。(使用JDK1.8及以上版本)
  • Android SDK:跟JDK很类似,是Android应用的开发工具包,通过它来调用Android相关的API。
  • Android Studio:谷歌官方的Android IDE,接下来我们需要使用Android Studio来开发所有的Android程序。

安装JDK

下载及安装

由于Oracle不再免费提供JDK(但个人使用好像到2020年才收费,但没有收费准则),所以这里不再使用Oracle官方的JDK,而是使用开源版本的JDK–>OpenJDK,这里推荐亚马逊的Corretto(这是少数可以在windows环境下使用的JDK,本想用阿里的Dragonwell,奈何Dragonwell目前只能在Linux环境下使用),官方网址:corretto
如下图所示
corretto
点击 下载 Amazon Corretto 8,进入下载选择页面,根据自己的电脑系统来选择合适的下载版本
corretto
这里选择下载 Windows x64(64位的OpenJDK)的amazon-corretto-8.222.10.3-windows-x64-jdk.zip压缩文件。
下载好之后,将它解压到你想放的文件夹下(文件夹路径上不能有中文),记住corretto放置的路径
安装路径

配置环境变量

然后要配置一下环境变量才能使用JDK。
右击此电脑选择属性,出现如下界面
系统
点击“高级系统设置”,然后点击“环境变量”,在系统变量这点击新建,新建一个名字为“JAVA_HOME”的变量,变量值为corretto放置的路径,点击确定。
配置环境变量
然后需要将corretto添加到系统的Path中,点击Path这个系统变量,然后点击编辑,所有变量值在前面添加下面一句

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

然后确定,这样就将corretto添加到系统的Path中。
最后在新建一个CLASSPATH变量如下图所示
CLASSPATH
变量值为

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

这样corretto的环境变量就配置好了

测试corretto安装是否成功

键盘按下 win + R 打开“运行”
运行
输入cmd,打开windows终端,在终端中输入 java、javac、java -version来验证是否JDK是否安装成功,如果显示以下信息,则表示安装成功,那我们可以进入下一步了。
java

javac

java -version

安装Android Studio

Android Studio集成了Android SDK,所以我们不用额外下载Android SDK,Google官方下载地址:Android Studio
as
下载后是一个安装包,双击进行安装,一直点击next就好,其中选择安装组件时建议全部勾上,如下图所示
as
接下来还会让你选择Android Studio的安装地址以及Android SDK的安装地址,这些根据你自己电脑的实际情况选择就行了,不想改动的话就保持默认设置
as
剩下的全部保持默认项,一直点击Next即可完成安装
as
安装完成后,点击Finish按钮来启动Android Studio,一开始会让你选择是否导入之前Android Studio版本的配置,由于这是我们首次安装,这里选择不导入就可以了
as
点击OK按钮会进入到Android Studio的配置界面
as
然后点击Next开始进行具体的配置
as
这里我们可以选择Android Studio的安装类型,有Standard和Custom两种。Standard表示一切都使用默认的配置,比较方便;Custom则可以根据用户的特殊需求进行自定义。简单起见,这里我们就选择Standard类型了,继续点击Next完成配置工作
as
现在点击Finish按钮,配置工作就全部完成了。然后Android Studio会尝试联网下载一些更新,等待更新完成后再点击Finish按钮就会进入Android Studio的欢迎界面
as
这样,Android开发环境已经搭建完成了,接下来就可以开始快乐的写代码了(快乐是不可能快乐的)

创建一个Android项目

在Android Studio的欢迎界面点击Start a new Android Studio project,会打开一个创建新项目的界面。如下图所示
as
Android Studio提供了很多种内置模板,才刚刚开始学习,用不着这么多复杂的模板,这里直接选择Empty Activity来创建一个空的活动就可以了,点击next,会看到如下界面
as
Name表示应用名称,此应用安装到手机之后会在手机上显示该名称,这里我们填入FirstApplication。Package name表示项目的包名,Android系统就是通过包名来区分不同应用程序的,因此包名一定要具有唯一性。Android Studio会根据应用名称和公司域名来自动帮我们生成合适的包名,如果你不想使用默认生成的包名,也可以自行修改(直接使用默认的,懒得改名称了)。Save location表示项目代码存放的位置,如果没有特殊要求的话,这里也保持默认就可以了(我这里选择了其他位置)。由于Google宣布Kotlin是Android应用首选编程语言,我们在这需要将Language改成Java,这样就可以使用Java进行开发了。

Android 4.0以上的系统已经占据了超过98%的Android市场份额,因此这里将Minimum SDK指定成API 19就可以了。

最后点击Finish完成创建,等待一会,Android Studio就创建好了项目,项目截图如下:
as

部署应用

因为Android Studio自动为我们生成了很多东西,现在不需要编写任何代码,FirstApplication项目就已经可以运行了。
在此之前还必须要有一个运行的载体,可以是一部Android手机,也可以是Android模拟器。这里使用Android模拟器进行测试,Android Studio自带了Android模拟器,但是我更推荐使用功能更多,性能更加强大的Genymotion模拟器来运行Android项目(Genymotion是开发者最喜欢的Android模拟器)。

那我们需要额外安装Genymotion模拟器。

安装Genymotion模拟器

去Genymotion官网下载,首先点击右上角的Sign in进行登录操作。没有账户则自行创建一个
as
创建好账户之后登录,登录之后,输入网址https://www.genymotion.com/download/ ,进入下载选择页面
as
因为Genymotion运行需要VirtualBox,如果电脑中没安装过,建议选第一个版本。
双击下载好的安装包,开始安装,安装也是傻瓜式的,一路next就好,在安装过程中会自动进行安装VirtualBox的操作界面,这里也是一路next就好,安装好之后就打开Genymotion,打开后出现这个界面
as

这里需要联网登录,使用下载时创建的账号就行,然后next,在下个界面选择Persional Use,然后next,
as

这里打勾之后,点击next就可以使用Genymotion了。
as
打开Genymotion以后,界面如下:
as
由于我已经安装了虚拟机,所以Genymotion显示出来了,如果要安装虚拟机则在列表中选择,然后点击后面的按钮安装(推荐使用Google Nexus 7),然后这样虚拟机就创建完成了。最后点击Genymotion->Settings->ADB,不使用Genymotion自带的Android SDK Tools,使用Android Studio安装的Android SDK,将路径指向Android SDK的安装路径。
as
这样Genymotion就设置好了。

安装Genymotion插件

Genymotion安装好了,Android Studio需要安装Genymotion插件才能识别并使用Genymotion的虚拟机,安装插件的步骤如下:
在Android Studio中,点击File->Settings->Plugins,在搜索栏中输入Genymotion,然后点击安装,安装好之后重启Android Studio。
as

重启之后点击View->Toolbar,更换工具栏
as

然后点击最后一个图标,这个就是Genymotion虚拟机
as

然后出现列表,点击start启动虚拟机
as

启动之后的虚拟机就像这样
as

最后,将Android应用程序部署到虚拟机上,如下图所示
as

点击箭头指向的栏,选择要部署的虚拟机,然后点击旁边的运行按钮,就直接安装部署到虚拟机上了,程序运行结果如下图
as

这样我们第一个Android应用程序就开发完成了。

Android项目的结构

基于第一个Android应用程序,来分析一下Android项目的目录结构。

首先创建项目时的目录结构如上,这并不是项目真实的目录结构,而是被Android Studio转换过的。需要切换项目结构模式,如下图所示

项目整体结构

  1. .gradle和**.idea**(项目中已隐藏)
    Android Studio自动生成的一些文件,无需做任何操作
  2. app
    存放项目中的代码、资源等内容
  3. build
    存放编译时自动生成的文件
    4.gradle
    存放gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle
  4. .gitignore
    将指定的目录或文件排除在版本控制之外
  5. build.gradle
    项目全局的gradle构建脚本
  6. gradle.properties
    全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本
    8.gradlewgradlew.bat
    用来在命令行界面中执行gradle命令的,gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的
    9.FirstApplication.iml
    iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件(Android Studio是基于IntelliJIDEA开发的),用于标识这是一个IntelliJ IDEA项目
  7. local.properties
    用于指定本机中的Android SDK路径
  8. settings.gradle
    用于指定项目中所有引入的模块

app目录下的结构

  1. build
    包含了一些在编译时自动生成的文件
  2. libs
    使用到了第三方jar包,需要把这些jar包都放在libs目录下,放在这个目录下的jar包都会被自动添加到构建路径里去
  3. androidTest
    编写Android Test测试用例,可以对项目进行一些自动化测试
  4. java
    放置所有Java代码的地方
  5. res
    存放项目中使用到的所有图片、布局、字符串等资源
  6. AndroidManifest.xml
    整个Android项目的配置文件,程序中定义的所有四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明
  7. test
    编写Unit Test测试用例,是对项目进行自动化测试的另一种方式
  8. .gitignore
    将指定的目录或文件排除在版本控制之外
  9. app.iml
    IntelliJ IDEA项目自动生成的一个文件
  10. build.gradle
    app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置
  11. proguard-rules.pro
    用于指定项目代码的混淆规则,当代码开发完成后打成安装包文件,如果不希望代码被别人破解,通常会将代码进行混淆,从而让破解者难以阅读

res目录下的结构

  1. drawable 开头的文件夹
    用来放置图片,设置多个drawable开头的文件夹,主要是为了让程序能够更好地兼容各种设备
  2. mipmap 开头的文件夹
    放置应用图标,设置多个mipmap开头的文件夹,主要是为了让程序能够更好地兼容各种设备
  3. values 开头的文件夹
    存放字符串、样式、颜色等配置

要引用res文件夹下的资源,有两种引用方式:

  • 在代码中引用:通过“R.文件路径(res目录下的路径).文件名”的格式获取资源的引用,如果是引用values文件夹下的资源,则改成“R.文件名.引用子项”的格式
  • 在XML文件中引用:通过“@文件夹/文件名”的格式引用资源,如果是引用values文件夹下的资源,则改成“@文件名/引用子项”的格式

build.gradle

Android Studio是采用Gradle来构建项目的。Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置,摒弃了传统基于XML(如Ant和Maven)的各种烦琐配置。

项目目录下的build.gradle文件内容如下:

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}
  • 两处repositories的闭包中都声明了jcenter(),jcenter是一个代码托管仓库,很多Android开源项目都会选择将代码托管到jcenter上,声明了这行配置之后,可以在项目中引用任何jcenter上的开源项目
  • dependencies闭包中使用classpath声明了一个Gradle插件,通过这个插件来构建Android项目(Gradle能构建多种项目,需要声明构建的是哪种项目)

app目录下的build.gradle文件内容如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion '29.0.0'
    defaultConfig {
        applicationId "com.example.firstapplication"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
  • apply plugin:应用插件,有两个可选值:“com.android.application”(表示这是一个应用程序模块)和"com.android.library"(表示这是一个库模块)
  • android:这是一个闭包,在这个闭包中配置项目构建的各种属性。
  • compileSdkVersion:指定项目的编译版本
  • buildToolsVersion:指定项目构建工具的版本
  • defaultConfig:defaultConfig闭包中可以对项目的更多细节进行配置
  • applicationId:指定项目的包名
  • minSdkVersion:指定项目最低兼容的Android系统版本
  • targetSdkVersion:指定的值表示在该目标版本上已经做过了充分的测试,系统将会为应用程序启用一些最新的功能和特性
  • versionCode:指定项目的版本号
  • versionName:指定项目的版本名
  • buildTypes:buildTypes闭包用于指定生成安装文件的相关配置通常只会有两个子闭包,一个是debug,一个是release。debug闭包用于指定生成测试版安装文件的配置,release闭包用于指定生成正式版安装文件的配置。debug闭包是可以忽略不写的。
  • minifyEnabled:指定是否对项目的代码进行混淆,true表示混淆,false 表示不混淆
  • proguardFiles:指定混淆时使用的规则文件
  • dependencies:指定当前项目所有的依赖关系

Android日志工具

Java新手都非常喜欢使用System.out.println() 方法来打印日志。不过在真正的项目开发中,是极度不建议使用System.out.println() 方法。
System.out.println() 方法除了方便便没有其他优点了,它的缺点很明显:日志打印不可控制、打印时间无法确定、不能添加过滤器、日志没有级别区分等等。
为解决这些问题Android提供了Log类来打印日志信息(当然并不是完美解决,不过已经做的很好了)。
Log类提供了如下几个方法:

  • Log.v()。用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种。
  • Log.d()。用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别debug,比verbose高一级。
  • Log.i()。用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为数据。对应级别info,比debug高一级。
  • Log.w()。用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info高一级。
  • Log.e() 。用于打印程序中的错误信息,比如程序进入到了catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别error,比warn高一级。

利用这些方法就可以方便我们进行Android应用开发了。

发布了20 篇原创文章 · 获赞 1 · 访问量 361

猜你喜欢

转载自blog.csdn.net/weixin_44840161/article/details/101457225
今日推荐