Table of Contents

Android Hello World 实例

创建 Android 应用

Android应用程序剖析

主要活动文件

Manifest文件

Strings 文件

R 文件

Layout 文件

运行应用程序


Android Hello World 实例

让我们开始真正的基于Android框架编程。在开始使用Android SDK写第一个示例之前,请确保你已经按照Android - 环境搭建(https://rtoax.blog.csdn.net/article/details/104222012) 教程中介绍的完成了你的Android开发环境搭建。同时,我假设你具备一些Eclipse IDE的知识。

现在让我们开始写一个简单的Android应用程序,可以打印出"Hello World"。

创建 Android 应用

第一步是通过Eclipse IDE来创建一个简单地Android应用程序。按照选项File -> New -> Project,最后从向导列表选择 Android New Application 。现在,使用如下的窗口向导将应用程序命名为HelloWorld:

接下来,按照所提供的说明,保持所有的默认输入,直到最后一步。一旦项目创建成功,将会看到如下的项目界面 -

Android应用程序剖析

在运行应用之前,你需要知道Android项目中的一些文件目录和文件 -

序号 文件夹、文件和说明
1 src:包含项目中所有的.java源文件,默认情况下,它包括一个 MainActivity.java源文件对应的活动类,当应用程序通过应用图标启动时,将运行它。
2 gen:这包含由编译器生成的.R文件,引用了所有项目中的资源。该文件不能被修改。
3 bin:这个文件夹包含Android由APT构建的.apk包文件,以及运行Android应用程序所需要的其他所有东西。
4 res/drawable-hdpi:这个目录下包括所有的为高密度屏幕设计所需的drawable对象。
5 res/layout:这个目录存放用于定义用户界面的文件。
6 res/values:这个目录存放各种各样的包含一系列资源的XML文件,比如字符串和颜色的定义。
7 AndroidManifest.xml:这个是应用程序的清单文件,描述了应用程序的基础特性,定义它的各种组件。

下面的章节将给出一些重要的应用程序文件的概览。


主要活动文件

主要活动代码在MainActivity.java的Java文件中。这是实际的应用程序文件,将被转化为Dalvik可执行文件并运行。下面是由应用向导为Hello World应用生成的默认代码 -

package com.example.helloworld;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;public class MainActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}
}

这里,R.layout.activity_main引用自res/layout目录下的activity_main.xml文件。onCreate()是活动被加载之后众多被调用的方法之一。


Manifest文件

无论你开发什么组件用作应用程序中的一部分,都需要在应用程序项目根目录下的manifest.xml文件中声明所有的组件。这个文件是Android操作系统与你的应用程序之间的接口,因此,如果没有在这个文件中声明你的组件,将无法被操作系统所识别。举个例子,一个默认的清单文件看起来如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.helloworld"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="22" /><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".MainActivity"android:label="@string/title_activity_main" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application>
</manifest>

这里,...标签之间是应用程序相关的组件。andnroid:icon属性指出位于res/drawable-hdpi下面的应用程序图标。这个应用使用drawable文件夹下名为ic_launcher.png的图片。

标签用于指定一个活动,android:name属性指定一个Activity类子类的全名。android:label属性指定用于活动名称的字符串。可以使用标签来指定多个活动。

意图过滤器的action被命名为android.intent.action.MAIN,表明这个活动被用做应用程序的入口。意图过滤器的category被命名为android.intent.category.LAUNCHER,表明应用程序可以通过设备启动器的图标来启动。

@string指的是strings.xml(将在后面介绍)。因此,@string/app_name指的是定义在strings.xml中的app_name,实际为"Hello World"。类似的,应用中的其他字符串也很流行。

下面是你的清单文件中将用到的标签,用于指定不同的Android应用程序组件:

  • 活动元素
  • 服务元素
  • 广播接收器元素
  • 内容提供者元素

Strings 文件

strings.xml文件在res/value文件夹下,它包含应用程序使用到的所有文本。例如,按钮、标签的名称,默认文本,以及其他相似的strings。这个文件为他们的文本内容负责。一个默认的strings文件看起来如下:

<resources><string name="app_name">HelloWorld</string><string name="hello_world">Hello world!</string><string name="menu_settings">Settings</string><string name="title_activity_main">MainActivity</string>
</resources>

R 文件

gen/com.example.helloworld/R.java文件是活动的Java文件,如MainActivity.java的和资源如strings.xml之间的胶水。这是一个自动生成的文件,不要修改R.java文件的内容。下面是一个R.java文件的示例:

/* AUTO-GENERATED FILE.  DO NOT MODIFY.** This class was automatically generated by the* aapt tool from the resource data it found.  It* should not be modified by hand.*/package com.example.helloworld;public final class R {public static final class attr {}public static final class dimen {public static final int padding_large=0x7f040002;public static final int padding_medium=0x7f040001;public static final int padding_small=0x7f040000;}public static final class drawable {public static final int ic_action_search=0x7f020000;public static final int ic_launcher=0x7f020001;}public static final class id {public static final int menu_settings=0x7f080000;}public static final class layout {public static final int activity_main=0x7f030000;}public static final class menu {public static final int activity_main=0x7f070000;}public static final class string {public static final int app_name=0x7f050000;public static final int hello_world=0x7f050001;public static final int menu_settings=0x7f050002;public static final int title_activity_main=0x7f050003;}public static final class style {public static final int AppTheme=0x7f060000;}
}

Layout 文件

activity_main.xml是一个在res/layout目录下的layout文件。当应用程序构建它的界面时被引用。你将非常频繁的修改这个文件来改变应用程序的布局。在"Hello World"应用程序中,这个文件具有默认的布局,内容如下:

<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" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:padding="@dimen/padding_medium"android:text="@string/hello_world"tools:context=".MainActivity" /></RelativeLayout>

这是一个简单的RelativeLayout的示例,更多内容会在独立的章节中讲解。TextView是一个Android的控件用于构建用户图形界面。它包含有许多不同的属性,诸如android:layout_width, android:layout_height等用来设置它的宽度和高度等。@string指的是res/values文件夹下的strings.xml文件。因此,@string/hello_world指的是定义在strings.xml中的名为hello的字符串:"Hello World!"。

运行应用程序

让我们尝试运行刚刚建立的Hello World!应用程序。假设在搭建环境时你已经创建好了AVD。从Eclipse运行应用,打开你项目中的一个活动文件,并且点击工具栏上的图标。Eclipse在AVD上安装应用,并启动它。如果一切顺利,将显示如下的模拟器窗口 -

恭喜你已经开发了第一个Android应用程序,按照接下来剩余的教程一步一步来,你将成为一个牛B的Android开发人员。

Android Hello World 实例【TODO】相关推荐

  1. Android串口通信实例分析【附源码】

    Android 串口通信实例分析,用的时开源的android-serialport-api 这个是用android ndk实现的串口通信,我把他做了一个简化,适合于一般的程序的串口通信移植,欢迎拍砖- ...

  2. Android百度地图实例详解之仿摩拜单车APP(包括附近车辆、规划路径、行驶距离、行驶轨迹记录,导航等)

    Android百度地图实例详解之仿摩拜单车APP(包括附近车辆.规划路径.行驶距离.行驶轨迹记录,导航等) 标签: android百度地图行驶轨迹记录共享单车行驶距离和时间 2017-03-08 20 ...

  3. 技术实践 | Android Flutter 多实例实践

    导读:Flutter CLI 工具支持将 Flutter Module 打包成 Android AAR 包以供外部依赖使用,即 Flutter AAR.在一个没有使用 Flutter 技术栈的 And ...

  4. Android JNI简单实例(android 调用C/C++代码)

    转载自 xiechengfa 最终编辑 xiechengfa Android JNI简单实例关键字: android.jni Android的jni实例 android 的应用程序(Dalvik VM ...

  5. OpenCV android sdk配置OpenCV android NDK开发实例

    OpenCV android sdk配置OpenCV android NDK开发实例 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/det ...

  6. android 滑动拦截,Android 滑动拦截实例代码解析

    废话不多说了,直接给大家贴代码了,具体代码如下所示: package demo.hq.com.fby; import android.content.Context; import android.u ...

  7. android远程linux命令,测试可用的Android远程语音识别实例

    测试可用的Android远程语音识别实例: 代码下载在: 相关文件下载在Linux公社的1号FTP服务器里,下载地址: 用户名:www.linuxidc.com 密码:www.muu.cc 在 201 ...

  8. Android 自定义View 实例2_Clipping Canvas

    上一篇 Android 自定义View 实例_ 画图  参考: https://blog.csdn.net/whjk20/article/details/115639448 这里是Canvas 的裁剪 ...

  9. 开发android 输入法,Android输入法开发实例解析 Android开发技术

    Android输入法开发实例解析 Android开发技术 2013 年 4 月 13 日 这里我们建立表1为BiHua,同时构建两个字段,字段1为"input"来存放输入的,字段2 ...

最新文章

  1. struts2教程(7)--拦截器
  2. java 8 list和数组之间的相互转换
  3. JavaScript数据类型 typeof, null, 和 undefined
  4. 拼多多回应“特斯拉拒绝交付Model 3”;阿里云称京西公司将改名;VS Code 1.48发布| 极客头条...
  5. php 正则 修饰符,php 正则修饰符
  6. 跳转外部地址 带header_微信公众号如何加入超链接?个人订阅号实现点击跳转链接的方法!...
  7. mysql-世界-全球数据
  8. Unity3D教程:iTween插件的介绍和用法
  9. 计算机网络课程主机号怎么看,已知Ip地址_子网掩码如何计算子网号、主机号(收集整理)...
  10. Beyond Part Models: Person Retrieval with Refined Part Pooling (ECCV2018)
  11. prompt learning——你需要掌握的基础知识以及离散型 prompt 的代码
  12. socket closed解决办法
  13. Matlab实现点击按钮进行页面切换
  14. 等保2.0.第九章.等保2.0基础知识
  15. SAP JCo Standalone版本
  16. 苹果消息推送服务教程:第一二部分(共2部分)
  17. Database-3:SQL语句之DQL
  18. 【编写if时尽量不要带else】
  19. 巴比特 | 元宇宙每日必读:咸阳高新区发布元宇宙行动方案,将打造西北第一家“大秦元宇宙”产业先行区...
  20. 【javaEE】网络初识

热门文章

  1. Java的Stack类
  2. some interview question
  3. java实现文件上传(使用FromData)
  4. SpringCloud注解和配置以及pom依赖说明
  5. Idea创建一个springboot多模块项目
  6. iOS app submission : missing 64-bit support
  7. 黑马程序员—————— 随机访问流
  8. UiAutomator喷射事件的源代码分析
  9. 5去掉button按钮的点击样式_各种好看的小按钮合集,纯css编写,最近在学习时遇到的,记录成为笔记...
  10. com 组件调用不起来_Spring Cloud Alibaba,分布式服务调用(四)