android helloworld程序,Android Hello World示例

本文介绍了如何使用Android Studio创建和运行第一个Hello World应用程序,包括环境设置、项目创建步骤、运行应用程序的过程,以及对Android项目结构和关键文件的简要说明,如AndroidManifest.xml和Activity生命周期。

在开始使用Android SDK编写第一个示例之前,必须确保已经按照中的说明正确设置了您的Android开发环境。

下面来看看如何编写一个简单的Android应用程序,它将打印“Hello World!”。

注:理解这篇教程,对后面的学习非常重要。了解项目中每个目录和每个文件的功能和作用。

创建Android应用程序

第一步是使用Android Studio创建一个简单的Android应用程序。 当点击Android Studio图标启动完成时,它将显示如下所示的屏幕 –

b2edb266e7dcabb10b2014a2b6d236cf.png

可以通过调用Start a new Android Studio Project 来开始创建应用程序开发。 在新的安装框架中应询问应用程序名称,包装信息和项目的位置。

31d1f928982a3491beb04035778d9492.png

输入应用程序名称(HelloWorld)后,选择应用程序运行的Android目标设备,在这里需要指定最小的SDK,在这个教程中,选择最小SDK为 API 21:Android 5.0(Lollipop) –

下一级安装应该包含选择移动设备的活动,它指定应用程序的默认布局。

0bf8394ec5209d55816736c80b7ce6c5.png

选择一个空的Activity,如下所示 –

2c27249525b24de7c68def4aab8364c9.png

配置Activity,默认即可,点击完成。如下所示 –

b0e6ca559894965399b8b8de7d2f6905.png

在完成之后,开发开发工具将显示如下界面,我们可以开始编写应用程序的代码了。

987b9bcb7b497bba56231ae60c781fef.png

运行应用程序

下面来看看,如何运行这个"Hello World!" 应用程序。假设您在创建环境的时候创建了AVD。 要从Android Studio运行应用程序,请打开项目的一个活动文件,然后单击工具栏上的“运行app”图标。如下图中箭头指向的位置 –

b64e0dde50a3bec0a755aebcc245f097.png

选择发布目标,如下图所示 –

7c204a2677a18c7e0222b12d8c4e8363.png

注意:在这个过程中,Android Studio 可能需要安装一些其它的依懒组件,这就要求必须能连接到互联网络了。安装过程如下 –

45f84c27155f75da09d954b436d6e650.png

Android Studio 在配置的AVD上安装应用程序并启动它,如果您的设置和应用程序一切正常,它将显示以下“模拟器”窗口 –

768e775172ca5fa772afa5ff6d8a5c6e.png

Android项目结构概述

以下是Android Studio中的的项目结构图:

下面对上面文件或目录的解释 –

编号

文件或目录

描述

1

AndroidManifest.xml

这是清单文件,它描述了应用程序的基本特征并定义了它的每个组件。

2

java

这包含项目的.java源文件。 默认情况下,它包含一个具有活动类的MainActivity.java源文件,该Activity类在应用程序使用应用程序图标启动时运行。

3

res/drawable

以前的Android版本使用这个文件夹来存储图像,当前版本使用mipmap文件夹来存储图像。这个目录几乎不再使用。

4

res/layout

这是定义应用程序用户界面的文件的目录。

5

res/menu

包含将显示在操作栏上的项目的XML菜单文件夹

6

res/mipmap

使用来包含mipmap图像

7

res/values

这是包含资源集合(如字符串和颜色定义)的其他各种XML文件的目录。

1. AndroidManifest.xml

无论您作为应用程序的一部分开发什么组件,都必须在AndroidManifest.xml中声明其所有组件。这个文件作为Android OS和应用程序之间的接口,所以如果没有在这个文件中声明你的组件,那么操作系统将不会考虑它。 例如,默认清单文件将如下面的文件所示 –

2. res/mipmap

需要更多地了解mipmap文件夹中的图像,请参阅下面的图像,mipmap文件夹中有一个图像文件。

在使用Android应用程序时偶尔遇到的一个问题是,比如看到的图像比较模糊,像素化或笨拙地拉伸。 解决此问题的方法是为Android支持的每种密度创建一个可绘制的文件夹,并将正确缩放的图像放在每个文件夹中。 Android支持6种不同的密度范围(以每英寸点数衡量):

ldpi:低密度屏幕; 大约120dpi。

mdpi:中等密度(在传统的HVGA)屏幕上; 大约160dpi。

hdpi:高密度屏幕; 大约240dpi。

xhdpi:超高密度屏幕; 大约320dpi。 在API级别8中添加

nodpi:这可以用于位图资源,不想缩放到匹配设备密度。

tvdpi:屏幕介于mdpi和hdpi之间; 大约213dpi。这不被视为“主要”密度组。 它主要用于电视机,大多数应用程序不需要它 – 为大多数应用程序提供mdpi和hdpi资源已足够,系统将根据需要进行扩展。此限定符是在API级别13中引入的。

Android Activity生命周期

首先,了解Activity是什么?Activity是支持屏幕或UI的Java代码。换句话说,用户界面的构建块就是Activity。 Activity类是Android中的一个预定义类,每个拥有UI的应用程序都必须继承它来创建窗口。例如,MainActivity类是一个Activity,它从库中的Activity类扩展而来。 下图说明了一个Activity的生命周期。

Activity的一个生命周期描述了一个Activity开始启动后的进程,直到应用程序关闭。 包括Activity暂时停止的进程,恢复等等。

3313f634e10b6cad785bd3385f790a8c.png

为了更容易理解,可以修改MainActivity类的代码,覆盖onStart(),onResume()等方法,添加显示方法已经运行的消息。重新运行应用程序,看看会发生什么?

package com.yiibai.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends AppCompatActivity { public static final String TAG ="MyMessage"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Print Log Log.i(TAG,"onCreate"); } @Override protected void onStop() { super.onStop(); // Print Log Log.i(TAG,"onStop"); } @Override protected void onDestroy() { super.onDestroy(); // Print Log Log.i(TAG,"onDestroy"); } @Override protected void onPause() { super.onPause(); // Print Log Log.i(TAG,"onPause"); } @Override protected void onResume() { super.onResume(); // Print Log Log.i(TAG,"onResume"); } @Override protected void onStart() { super.onStart(); // Print Log Log.i(TAG,"onStart"); } @Override protected void onRestart() { super.onRestart(); // Print Log Log.i(TAG,"onRestart"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. // Print Log Log.i(TAG, "onCreateOptionsMenu"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Print Log Log.i(TAG, "onOptionsItemSelected"); // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); return super.onOptionsItemSelected(item); } }

重新运行应用程序,并且看到记录在logcat窗口上的消息。

0ace1854e04ef679f8fd014667021e93.png

可以将筛选器设置为logcat,只显示日志记录的消息。

840fca81d3412d6797d8001c9ea0b8b4.png

过滤器名称:My Filter日志标记(正则表达式):MyMessage

059c49537ae1d99141ab615e55f49752.png

现在,logcat 窗口只显示指定的消息。

441bd8422b349ebaa03ffe438f8d24fb.png

Android应用程序如何运行?

您已经成功运行了第一个Android应用程序,现在来回顾一下从应用程序调用以来Android如何运行。

7bbae0e8468a072665d8f31d4208c9db.png

在“项目”窗口中看到的不是涉及创建应用程序的所有组件。有些组件是由编译器程序自动生成的。 而且它不显示在项目窗口上。 例如,根据项目中源文件的结构,编译器将创建一个R.java 源文件,该文件为项目上的资源定义常量。要在Android Studio上查看R.java 文件,请打开MainActivity类,右键单击R.layout.main_activity,然后选择执行(Go to / Implementation)

f9be91f55b1531dedb3f9d420447789a.png

3c93ef0f5615028a41bcf5a9cb4c7041.png

在R.java类中定义的常量是根据Project中的资源来创建的:

c8a49ef29a6c82fa0d68f1d58f389b85.png

因此,在项目的某个地方,可以使用常量来引用项目中的资源。例如,R.layout.activity_main是一个常量,它表示res/layout文件夹中的activity_main.xml文件。

工作原理:

9b062a31e0723cebeeba89ff36a08348.png

¥ 我要打赏 纠错/补充 收藏

哥,这回真没有了

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值