• 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 因素(最明显)使用应用程序的屏幕

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

  • 相关阅读:
    HTTPS协议详解
    HTTP协议详解
    网络传输协议 UDP & TCP 详解
    Socket(套接字)基础概念
    网络基础
    OSI 七层协议
    经典SQL题 1/25/50/100美分,多少种可能拼凑成2美元
    5.1一阶谓词逻辑
    4.4符号视角下的科学
    4.3领域语言与自然语言的比较
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4883138.html
Copyright © 2020-2023  润新知