Android开发新手教程--Android应用程序结构

一、新HelloWorld工程:

1、打开Eclipse。点击“File”->"New"->"Project"-Android Application Project"":

在弹出的“New Android Application”窗口中输入对应的应用名称、项目名称、包名称,并选择对应的SDK版本号和应用主题:

选择项目保存位置。一路“next”完毕项目创建:

创建后的项目:

在创建后的项目名称上右键单击选择“Run As”->“Android Application”执行刚创建的项目:

执行结果:

二、应用程序文件夹结构简析:

1、应用程序文件夹结构:

2、各部分说明:

Activity文件:双击文件夹中的“MainActivity.java”,能够看到MainActivity的代码:

 1 package android.basic.helloandroid;
 2
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.view.Menu;
 6
 7 public class MainActivity extends Activity {
 8
 9     @Override
10     protected void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.activity_main);
13     }
14
15     @Override
16     public boolean onCreateOptionsMenu(Menu menu) {
17         // Inflate the menu; this adds items to the action bar if it is present.
18         getMenuInflater().inflate(R.menu.activity_main, menu);
19         return true;
20     }
21
22 }

从代码中能够看到MainActivity继承于Activity类。Activity是Android中的视图部分。负责处理界面显示。在MainActivity里面重写了父类的onCreate方法和onCreateOptionsMenu方法,在重写的onCreate方法里方法setContentView(R.layout.activity_main)给MainActivity设置了要显示的视图R.layout.activity_main,视图由R类寻找并载入(感觉非常像mvc,Activity相当于Controller而要显示的layout就相当于详细的页面)。

R文件:在MainActivity的setContentView(R.layout.activity_main)方法中我们用R.layout.activity_main指定了要显示的视图。在应用程序文件夹结构的截图中能够看到R文件位于gen文件夹以下,双击显示代码:

 1 /* AUTO-GENERATED FILE.  DO NOT MODIFY.
 2  *
 3  * This class was automatically generated by the
 4  * aapt tool from the resource data it found.  It
 5  * should not be modified by hand.
 6  */
 7
 8 package android.basic.helloandroid;
 9
10 public final class R {
11     public static final class attr {
12     }
13     public static final class drawable {
14         public static final int ic_launcher=0x7f020000;
15     }
16     public static final class id {
17         public static final int menu_settings=0x7f070000;
18     }
19     public static final class layout {
20         public static final int activity_main=0x7f030000;
21     }
22     public static final class menu {
23         public static final int activity_main=0x7f060000;
24     }
25     public static final class string {
26         public static final int app_name=0x7f040000;
27         public static final int hello_world=0x7f040001;
28         public static final int menu_settings=0x7f040002;
29     }
30     public static final class style {
31         /**
32         Base application theme, dependent on API level. This theme is replaced
33         by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
34
35
36             Theme customizations available in newer API levels can go in
37             res/values-vXX/styles.xml, while customizations related to
38             backward-compatibility can go here.
39
40
41         Base application theme for API 11+. This theme completely replaces
42         AppBaseTheme from res/values/styles.xml on API 11+ devices.
43
44  API 11 theme customizations can go here.
45
46         Base application theme for API 14+. This theme completely replaces
47         AppBaseTheme from BOTH res/values/styles.xml and
48         res/values-v11/styles.xml on API 14+ devices.
49
50  API 14 theme customizations can go here.
51          */
52         public static final int AppBaseTheme=0x7f050000;
53         /**  Application theme.
54  All customizations that are NOT specific to a particular API-level can go here.
55          */
56         public static final int AppTheme=0x7f050001;
57     }
58 }

从代码中能够看到R文件中面有非常多类,每一个类里面又有非常多变量,这些类和变量在我们加入、删除控件或资源文件(图片、声音等)由开发工具自己主动帮我们维护的。由它来调用应用程序的各种资源,在代码第一句的凝视中也说明了“AUTO-GENERATED FILE.  DO NOT MODIFY”。

layout文件:res/layout/activity_main.xml – 布局文件,双击activity_main.xml会进入可视化编辑界面,在这里你能够依据须要选择对应的控件:

也能够点击红框部分进入文本编辑界面直接写相应控件的代码(从截图代码文件能够看到该layout由一个相对布局和一个文本框组成):

AndroidManifest文件:在应用程序文件夹截图中倒数第四个能够看到一个AndroidManifest.xml文件,它是应用程序的配置文件包括在每一个安卓应用程序中,它向系统描写叙述了本程序所包括的组件、所实现的功能、所能处理的数据、要请求的资源等,能够近似看做站点中的Web.conig文件,相同它也能够由可视化编辑器或文本编辑器编辑:

Android.jar文件:Android.jar内部经常使用包作用概述。例如以下图所看到的:

能够看到Android.jar里面包括了非常多包。常见包的作用例如以下:

android.app-----------提供高层的程序模型、提供主要的执行环境

android.content-------包括各种的对设备上的数据进行訪问和公布的类

android.database------通过内容提供者浏览和操作数据库

android.graphics-------底层的图形库。包括画布,颜色过滤,点,矩形,能够将他们直接绘制到屏幕上.

android.location-------定位和相关服务的类

android.media---------提供一些类管理多种音频、视频的媒体接口

android.net------------提供帮助网络訪问的类,超过通常的java.net.* 接口

android.os-------------提供了系统服务、消息传输、IPC 机制

android.opengl--------提供OpenGL 的工具

android.provider-------提供类訪问Android 的内容提供者

android.telephony-----提供与拨打电话相关的API 交互

android.view-----------提供基础的用户界面接口框架

android.util------------涉及工具性的方法,比如时间日期的操作

android.webkit---------默认浏览器操作接口

android.widget---------包含UI 因素(最明显)使用应用程序的屏幕

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-12-15 07:12:40

Android开发新手教程--Android应用程序结构的相关文章

Android开发入门教程--Android应用程序结构分析

一.新建HelloWorld项目: 1.打开Eclipse,点击"File"->"New"->"Project"-Android Application Project"": 在弹出的"New Android Application"窗体中输入相应的应用名称.项目名称.包名称,并选择相应的SDK版本和应用主题: 选择项目保存位置,一路"next"完成项目创建: 创建后的项目:

Android基础新手教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP

Android基础新手教程--1.2.1 使用Eclipse + ADT + SDK开发Android APP 标签(空格分隔): Android基础新手教程 1.前言 这里我们有两条路能够选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 由于谷歌已经放弃了ADT的更新,官网上也取消的下载链接.这里提供谷歌放弃更新前最新版本号的 ADT Bundle供大家下载! 2.直接使用打包好的Eclipse 32位版:adt-bundle-windows-x86-2014

C#程序员学习Android开发系列之Android项目的目录结构

今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目录:存放java源代码的目录,里面建立一个包,包里面有4个java源文件(分别都继承自Activity).由于java要求比较严格,因此要求类名与文件名一致. gen(Generated Java Files)目录:自动产生Java源文件的目录,是由工具自动生成的,一般不需要自己修改.里面主要有一个

Android基础新手教程——3.7 AnsyncTask异步任务

Android基础新手教程--3.7 AnsyncTask异步任务 标签(空格分隔): Android基础新手教程 本节引言: 本节给大家带来的是Android给我们提供的一个轻量级的用于处理异步任务的类:AsyncTask.我们通常是 继承AsyncTask,然后在类中实现异步操作,然后将异步运行的进度.反馈给UI主线程~ 好吧,可能有些概念大家不懂,认为还是有必要解说下多线程的概念,那就先解释下一些概念性的东西吧! 1.相关概念 1)什么是多线程: 答:先要了解这几个名称:应用程序,进程,线

Android开发新手必备16个知识

Android开发新手必备,这是我在麦子学院论坛里面看见的,觉得很不错,分享给大家: 1.Activity生命周期,横竖屏切换时候Activity状态变化. 生命周期: 完成的生命周期: 即从一个Activity出现到消失,对应的周期方法是:onCreate到onDestroy : 启动: onCreate()->onStart()->onResume三个方法: BACK键: 当我们按BACK键时,我们这个应用程序将结束,这时候我们将先后调用onPause()->onStop()->

Android基础新手教程——1.10 反编译APK获代替码&资源

Android基础新手教程--1.10 反编译APK获代替码&资源 标签(空格分隔): Android基础新手教程 本节引言: "反编译Apk".看上去好像好像非常高端的样子,事实上不然,就是通过某些反编译软件.对我们的APK进行反编译,从而获取程序的源代码,图片,XML资源等文件.不知道你有没有这样做过,看到一个别人的一个APP界面做得非常精美,或者你看上别人的图片素材,简单点的,我们能够下载别人的APK.然后改下后缀名,改成xxx.zip.然后解压: 笔者随便解压了一个AP

Android基础新手教程——4.2.3 Service精通

Android基础新手教程--4.2.3 Service精通 标签(空格分隔): Android基础新手教程 本节引言: 本节,我们继续来研究Service(服务)组件,本节将会学习下Android中的AIDL跨进程通信的一些 概念,并不深入到源代码层次.临时知道是什么.会用就可以.開始本节内容~ 本节相应官方文档:Binder 1.Binder机制初涉 1)IBinder和Binder是什么鬼? 我们来看看官方文档怎么说: 中文翻译: IBinder是远程对象的基本接口,是饿了高性能而设计的轻

Android开发新手常见的10个误区

在过去十年中最流行的移动应用开发开发平台中,我们认为,Android平台是一个新开发的最方便的平台.一个廉价的工具,友好的开发者社区,众所周知的编程语言(Java),使得开发Android应用程序从未如此简单.即便如此,我们仍然看到了哪些新的Andr??oid开发人员不断重复的错误.这里有10个最常见的误区. 1,阅读Andr??oid文档 Android开发者网站是你获得帮助的最重要地方.大部分的文档既可以随着SDK下载,也可在网上直接查阅(我们推荐在线浏览,因为它是不断更新的).这些文档是不

Android开发笔记--hello world 和目录结构

原文:Android开发笔记--hello world 和目录结构 每接触一个新东西 都有一个hello world的例子. 1.新建项目 2.配置AVD AVD 没有要新建个,如果不能创建 运行SDK Manager更新 3.接着运行就可以了 第一次启动要1分多钟 不要关 4.添加代码 5.接着在运行就OK了 目录结构 1.src - 用于放置源程序 2.gen - 自动生成 R.java 文件,用于引用资源文件(即 res 目录下的数据) 3.assets - 用于放置原始文件,Androi