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 因素(最明显)使用应用程序的屏幕
版权声明:本文博主原创文章,博客,未经同意不得转载。
Android开发新手教程--Android应用程序结构的更多相关文章
- Android开发简易教程
Android开发简易教程 Android 开发因为涉及到代码编辑.UI 布局.打包等工序,有一款好用的IDE非常重要.Google 最早提供了基于 Eclipse 的 ADT 作为开发工具,后来在2 ...
- Android基础新手教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP
Android基础新手教程--1.2.1 使用Eclipse + ADT + SDK开发Android APP 标签(空格分隔): Android基础新手教程 1.前言 这里我们有两条路能够选,直接使 ...
- Android基础新手教程——1.2 开发环境搭建
Android基础新手教程--1.2 开发环境搭建 标签: Android基础新手教程 如今主流的Android开发环境有: ①Eclipse + ADT + SDK ②Android Studio ...
- Android基础新手教程——3.7 AnsyncTask异步任务
Android基础新手教程--3.7 AnsyncTask异步任务 标签(空格分隔): Android基础新手教程 本节引言: 本节给大家带来的是Android给我们提供的一个轻量级的用于处理异步任务 ...
- Android基础新手教程——1.10 反编译APK获代替码&资源
Android基础新手教程--1.10 反编译APK获代替码&资源 标签(空格分隔): Android基础新手教程 本节引言: "反编译Apk".看上去好像好像非常高端的样 ...
- 史上最全的Android开发学习教程集锦【初学者】
根据Google的报告,截止2017年5月为止,Android活跃用户已超过20亿,并还在持续增长中.Android系统在几个主要的市场上已超过了iOS系统,特别是在美国,欧洲和日本,然而苹果确实在中 ...
- Android基础新手教程——4.1.2 Activity初窥门径
Android基础新手教程--4.1.2 Activity初窥门径 标签(空格分隔): Android基础新手教程 本节引言: 上一节中我们对Activity一些主要的概念进行了了解,什么是Activ ...
- Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库
Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...
- Android开发新手常见的10个误区
在过去十年中最流行的移动应用开发开发平台中,我们认为,Android平台是一个新开发的最方便的平台.一个廉价的工具,友好的开发者社区,众所周知的编程语言(Java),使得开发Android应用程序从未 ...
随机推荐
- js实现文字逐个显示
先把代码摆上了吧: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtm ...
- Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证
原文:Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证 原文出处:http://blog.csdn.net/dba_huan ...
- Python 摘录LinkedIn用户联系人
CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-18 @author: guaguastd @name: l ...
- Objective-c正确的写法单身
Singleton模式iOS发展可能是其中最常用的模式中使用的.但是因为oc语言特性本身,想要写一个正确的Singleton模式是比较繁琐,iOS中单例模式的设计思路. 关于单例模式很多其它的介绍请參 ...
- compass安装使用960 Grid System
960 Grid System 是一个CSS的页面布局框架 demo: http://960.gs/demo.html 前提:安装Ruby .NodeJS 步骤1:在命令行下安装css插件: gem ...
- 初步swift语言学习笔记8(保留了很多OC实现)
笔者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/32715833 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...
- 《Swift程序设计语言》中国翻译和学习笔记page23
·<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页開始 · 页 1 本页主 ...
- Cocos观察者设计模式和通报机制
观察员(Observer)模式也称为公告/订阅(Publish/Subscribe)模式.这是 MVC( 模型-视图-控制器)模型的重要组成部分.天气一直讨论的英国最喜欢的话题,近期天气变化几年已成为 ...
- Codeforces Round #256 (Div. 2) D. Multiplication Table
主题链接:http://codeforces.com/contest/448/problem/D 思路:用二分法 code: #include<cstdio> #include<cm ...
- java通过抛异常来返回提示信息
结论:如果把通过抛异常的方式得到提示信息,可以使用java.lang.Throwable中的构造函数: public Throwable(String message) { fillInStackTr ...