Android移动开发基础案例教程
上QQ阅读APP看书,第一时间看更新

1.3 开发第一个Android程序

任何一门语言编写的第一个程序几乎都是HelloWorld,Android程序也不例外,本小节就讲解如何编写一个HelloWorld程序,以及了解Android项目的结构。

1.3.1 实战演练—开发HelloWorld程序

在1.2小节中已经搭建好了开发环境,接下来就按照步骤来开发HelloWorld程序。

1.创建HelloWorld程序

单击【File】→【New】→【New Project】选项,此时会进入New Project界面,分别设置应用名称、公司域名、项目的包名和Project存放的本地目录,如图1-37所示。

图1-37 New Project界面

在图1-37中,选项设置完成后单击【Next】按钮,进入Target Android Devices界面,如图1-38所示。

图1-38 Target Android Devices界面

在图1-38中,Minimum SDK表示支持Android的最低版本,根据不同的需求选择不同的版本。设置完成之后单击【Next】按钮,进入Add an activity to Mobile界面,如图1-39所示。

图1-39 Add an activity to Mobile界面

在图1-39中,创建Activity时有多个模板可供选择,这些模板都是在Empty Activity模板的基础上添加了一些简单的控件,因此,选择Empty Activity即可(本书所有案例均采用Empty Activity)。选择完毕之后,单击【Next】按钮,进入Customize the Activity界面,如图1-40所示。

图1-40 Customize the Activity界面

在图1-40中,设置完成后单击【Finish】按钮,项目就创建完成了,此时在Android Studio中会显示创建好的HelloWorld程序,如图1-41所示。

图1-41 HelloWorld程序

至此,HelloWorld程序的创建已全部完成,接下来将认识程序中的文件。

2.认识程序中的文件

当HelloWorld项目创建成功后,Android Studio会自动生成两个默认的文件,那就是布局文件和Activity文件,布局文件主要用于展示Android项目的界面,Activity文件主要用于完成界面的交互功能,接下来将分别展示两个文件代码。activity_main.xml文件具体代码如文件1-1所示。

文件1-1 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

  xmlns:tools="http://schemas.android.com/tools"

  android:layout_width="match_parent"

  android:layout_height="match_parent"

  android:paddingBottom="16dp"

  android:paddingLeft="16dp"

  android:paddingRight="16dp"

  android:paddingTop="16dp"

  tools:context=".MainActivity">

  <TextView

   android:layout_width="wrap_content"

   android:layout_height="wrap_content"

   android:text="Hello World!" />

</RelativeLayout>

上述代码就是 HelloWorld 程序的布局文件,在该布局中可以添加任意的按钮和文本框或者其他组件,让程序变得美观、友好。

MainActivity.java文件具体代码如文件1-2所示。

文件1-2 MainActivity.java

1 package cn.itcast.helloworld;

2 import android.support.v7.app.AppCompatActivity;

3 import android.os.Bundle;

4 public class MainActivity extends AppCompatActivity {

5   @Override

6   protected void onCreate(Bundle savedInstanceState) {

7     super.onCreate(savedInstanceState);

8     setContentView(R.layout.activity_main);

9   }

10 }

MainActivity继承自AppCompatActivity,当Activity执行时首先会调用onCreate()方法,在该方法中通过setContentView(R.layout.activity_hello_world)将布局文件转换成View对象,显示在界面上。

每个 Android 程序创建成功后,都会自动生成一个清单文件 AndroidManifest.xml(位于manifests文件夹),该文件是整个项目的配置文件,程序中定义的四大组件(Activity、Broadcast Receiver、Service、ContentProvider)都需要在该文件中进行注册。下面就来看一下清单文件中的默认内容,具体代码如文件1-3所示。

文件1-3 AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

  package="cn.itcast.myapplication" >

  <application

   android:allowBackup="true"

   android:icon="@mipmap/ic_launcher"

   android:label="HelloWorld"

   android:supportsRtl="true"

   android:theme="@style/AppTheme" >

   <activity android:name=".MainActivity" >

    <intent-filter>

     <action android:name="android.intent.action.MAIN" />

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

    </intent-filter>

   </activity>

  </application>

</manifest>

在上述代码中,<application>标签中的allowBackup属性用于设置是否允许备份应用数据;icon属性用于设置应用程序图标;label属性用来指定显示在标题栏上的名称;supportsRtl属性设置为true时,应用将支持RTL(Right-to-Left)布局;theme属性用于指定主题样式,就是能够应用于此程序中所有的Activity或者application的显示风格。

<activity android:name=".MainActivity" >标签用于注册一个Activity,<intent-filter>标签中设置的action属性表示当前Activity最先启动,category属性表示当前应用显示在桌面程序列表中。

3.运行程序

程序创建成功后,暂时不需要添加任何的代码就可以直接运行程序。在模拟器在线的情况下,单击工具栏中的运行按钮,会进入Choose Device界面,如图1-42所示。

图1-42 Choose Device界面

选择完合适的模拟器之后,单击【OK】按钮,等待约几秒钟的时间,运行结果如图1-43所示。

程序运行成功后,会发现模拟器上已经安装了HelloWorld这个程序,打开程序列表,如图1-44所示。

图1-43 运行结果

图1-44 应用程序列表

在图1-44中,可以看到一个HelloWorld程序,默认使用Android图标,说明程序运行成功。

多学一招:Project与Module区别

在Android Studio开发工具中,有两个重要概念,一个是Project,一个是Module,具体说明如下。

• Project:相当于Eclipse中的工作空间,而在Android Studio开发工具中更强调Project中项目的关联性,关联性比较大的项目就放在一起,关联性不大的项目就单独放在一个Project中。

• Module:相当于Eclipse中的项目(包含库或者App应用),一个Project可以包含多个Module,并且在Project创建时会默认创建一个名为App的Module,在这个Project中还可以创建其他的Module(HelloWorld程序就是一个Module)。

1.3.2 Android程序结构

Android程序在创建时,Android Studio就为其构建了基本结构,设计者可以在此结构上开发应用程序,因此,掌握 Android 程序结构是很有必要的。接下来展示HelloWorld程序的组成结构,如图1-45所示。

在图1-45中,可以看到一个Android程序由多个文件以及文件夹组成,这些文件分别用于不同的功能,具体分析如下。

图1-45 Android程序结构

• manifests:用于存放AndroidManifest.xml文件(又称清单文件),该文件是整个项目的配置文件。在程序中定义的四大组件都需要在这个文件中注册,另外在该文件中还可以给程序添加权限。在清单文件中配置的信息会添加到 Android 系统中,当程序运行时,系统会找到清单文件中的配置信息,然后根据配置信息打开相应组件。

• java:用于存放所有的Java代码,在该文件夹中可以创建多个包,每个包中可以存放不同的文件或Activity。

• res:用于存放Android程序所用到的资源,例如图片、布局文件、字符串等。drawable目录用于存放图片及XML 文件,layout 目录用于存放布局文件,mipmap 目录通常用于存放应用程序图标,系统会根据手机屏幕分辨率(hdpi/mdpi/xhdpi/xxhdpi/xxxhdpi)匹配相应大小的图标, values目录用于放置定义的字符串。

• Gradle Scripts:用于存放项目创建的相关文件,无须修改。

1.3.3 Android程序打包

Android程序开发完成后,如果要发布到互联网上供别人使用,就需要将自己的程序打包成正式的Android安装包文件(Android Package简称APK),其后缀名为“.apk”。这是每个应用程序发布之前必做的一项工作,因此初学者一定要掌握,接下来将针对Android程序打包过程进行详细讲解。

首先,在菜单栏中单击【Build】→【Generate Signed APK】选项,如图1-46所示。

在图1-46中,单击【Generate Signed APK】选项后,进入Generate Signed APK界面,如图1-47所示。

图1-46 Generate Signed APK选项

图1-47 Generate Signed APK界面

在图1-47中,Key store path项用于选择程序证书地址,由于是第一次开发程序没有证书,因此需要创建一个新的证书。单击Create new按钮,进入New Key Store界面,如图1-48所示。

在图1-48中,单击Key store path项之后的【⋯】按钮,进入Choose keystore file界面,选择证书存放路径,如图1-49所示。

图1-48 New Key Store界面

图1-49 Choose keystore file界面

在图1-49中,选择证书所存放路径,并在下方File name中填写证书名称,然后单击【OK】按钮,返回New Key Store界面,填写相关信息,如图1-50所示。

在图1-50中,信息填写完毕之后,单击【OK】按钮,返回Generate Signed APK界面,如图1-51所示。

图1-50 New Key Store界面

在图1-51中,创建好的证书信息已经自动填写完毕,单击【Next】按钮,进入如图1-52所示界面。

图1-51 Generate Signed APK界面

图1-52 Generate Signed APK界面

在图1-52中,APK Destination Folder表示APK文件路径,Build Type表示构建类型(有debug和release两种,其中debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序调试。release称为发布版本,往往进行了各种优化,以便用户很好地使用)。此处选择 release,然后单击【Finish】按钮,进入 Signed APK's generated successfully界面,如图1-53所示。

图1-53 Signed APK's generated successfully界面

在图1-53中,单击【Show in Explorer】按钮,即可查看生成的APK文件,如图1-54所示。

至此,HelloWorld程序已成功完成打包,这个打包的程序能够在Android手机上进行安装运行,也能够放在市场中让其他人进行下载。

图1-54 成功生成APK