`

Android系列教程之四:Android项目的目录结构

阅读更多
写道
这两天家里晚上断网,不能晚上写了,请各位读官见谅。上一次我们使用ADT创建了一个Android的HelloWorld项目,并且介绍了模拟器以及模拟器的配置,这节就重点讲讲Android项目的目录结构,看看和我们常见的Java项目的目录结构有什么不同。
 

Android系列教程目录:

  1. Android教程之一:Window下搭建Android开发环境

  2. Android教程之二:Linux下搭建Android开发环境

  3. Android教程之三:第一个Android应用,HelloWorld

本文版权归飞雪无情 所有,转载请注明出处, 永久链接: http://flysnow.iteye.com/blog/812375

 

我新建了一个Android的技术交流群,群号为86686524    120059404 ,感兴趣的可以申请加入,大家一块学习。

一: Android 项目的目录结构

 

  1.    Android 项目结构概览。其实 Android 项目的目录结构和 Java 的差不多,没有太大变化,如下图:
  2.       可以看到 src 文件夹里的是源文件, Android2.2 是引用的类库,这些和 java 的都一样,那么下面的这个 gen 是什么呢?这个里面的类就是 ADT 自动生成的啦,一般只有一个 R.java 文件,是不能修改的,那么他是怎么生成的呢,看到下面的 res 文件夹了吗? R.java 就是根据资源文件夹 res 生成的 ,R.java 里放的就是 res 中资源文件索引,用一个常量标记 res 中的一个资源文件,便于我们在代码中引用。  
  3.    现在让我们看看 res 文件夹,这下面又有几种类别,其中 drawable 是放图片的,有 drawable-hdpi,drawable-ldpi,drawable-mdpi 之分,对应的是高密度图片,低密度图片,和中等密度的图片,如果你要使用一个图片,你根据密度的不同做了三种相同的图片分别放到这三个文件夹里,那么你的应用运行在不同分辨率机器上的时候,就会根据该机器的分辨率自动选择合适的图片,怎么样智能吧!下图是密度和手机尺寸对应关系表。

    Layout 中放的就是布局文件了, Android 支持通过 xml 生成视图,这样视图就和逻辑控制的代码分离了便于管理。

    Values 中放的就是我们常用的字符串,颜色值,数组等 .

    其实资源文件还有多种,这里生成的 HelloWorld 结构中没有,比如动画 , 菜单等。

    接下来的这个 AndroidManifest.xml 很重要,每个 Android 项目都有一个,这是 Android 的配置文件,我们可以在这里配置应用的属性,定义 Activity ,声明使用的权限等等,这里就不具体介绍,后面的章节会讲到 .default.properties 也是一个配置文件。

 

二: Android 项目文件的具体讲解

 

  1.   首先看这个 HelloWorld 类。

 

public class HelloWorld extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

 

他继承了 Activity ,前面讲了,一个 Activity 可以想象成一个手机的屏幕,用于展示一屏的内容,所以所有要展示内容的屏幕都要继承 Activity 才能实现,接着覆盖了 onCreate() 方法对该 Activity 进行初始化 setContentView(R.layout. main ); 设置了使用 main.xml 这个布局文件作为当前 Activity 的内容展示 .main.xml 就是放在 res 下, layout 下面的文件 xml 布局文件 , 我们可以直接使用 R.layout.main 进行直接的引用他,这也是 Android 亮点的地方,省得我们为了引用一个 xml 文件再使用 File 类去读取,我们要做的只是把这个 xml 文件的索引给 Android ,他会自动的帮我们找到它并使用 .

 2. main.xml 布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

 

布局文件的内容不多 , 开始就是一个 LinearLayout 组件的定义,然后在这个 LinearLayout 放了一个用于显示文字的 TextView 。现在来看一下几个参数 :

  • .      LinearLayout 一个线性布局面板,只能垂直和水平布局, android:orientation="vertical" 代表里面的子元素只能垂直排列,而使用 android:orientation="horizontal" 就标识里面的子元素水平排列 ..
  • .      android:layout_width 定义当前视图占的宽度,这里是 fill_parent 即为充满整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变宽度
  • .      android:layout_height 是定义视图的高度,这里也是填充整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变高度。
  • .      android:text 是这是 TextView 要显示的文本,可以是字符串,也可以是一个字符串的引用,这里是一个引用,引用的是 strings.xml 定义好的名字为 hello 的字符串

3.      string.xml 介绍。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, HelloWorld!</string>
    <string name="app_name">HelloWorld</string>
</resources>

 

这里我们看看就明白了,只要是定义一个个的 K-V 的键值对,供其他地方使用。比如上面的 main 中对 hello 的引用。这对字符的统一管理和国际化有很大的意义。

 

4.      AndroidManifest.xml 的介绍

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.flysnow"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".HelloWorld"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="8" />

</manifest>

 

这是项目的重要配置文件,诸如 Activity ,权限, Intent 等都在这里配置

  1. Package: 定义了该应用的包。
  2. android:versioCode 定义了应用的版本号
  3. android:versionName 定义了应用的版本名字
  4. application 标签定义了一个应用,一个项目最多有一个 Application 标签。
  5. android:icon="@drawable/icon" 定义了应用的图标 引用资源文件中的 icon 图片
  6. android:label="@string/app_name" 定义了应用的名称
  7. activity 标签定义了一个 Activity ,你的每一个 Activity 必须在这里定义,否则不能运行 .
  8. Android:name 定义了 Activity 的类名 , 这里的 .HelloWorld 是以上面的 Package 定义为基础的,也就是 Package(com.flysnow) 加上这个 android:name(.HelloWorld) 要能定位到这个 Activity(com.flysnow.HelloWorld) ,否则就是找不到 .
  9. android:label 定义了该 Activity 的标题  
  10. intent-filter 定义一个 Intent 过滤器,用于标记对应的 Activity ,以便 Android 系统能找到该 Activity ,定义的是隐性的 Intent ,主要使用两个子标签 action category 来区分每个 Intent

 

最后的 <uses-sdk android:minSdkVersion="8" /> 就是定义应用的最低 SDK 的级别,前面讲过,,,想看的可以参见 Android教程之三:第一个Android应用,HelloWorld

 

三:小结

 

为了把 Android 项目的各个部分说清楚,啰嗦的多了一点,希望个为看官耐心看完 .

下节预告, Activity 的生命周期

 

 

  • 大小: 13.6 KB
  • 大小: 6.3 KB
23
0
分享到:
评论
7 楼 Csloving.com 2012-07-25  
LZ好文,新手深感受益。
6 楼 vvv_110 2011-11-29  
好文章   继续期待
5 楼 luck_dream 2011-10-26  
多谢楼主分享。
4 楼 leeyesong 2010-11-26  
写得很好,继续更新啊。
3 楼 suixinsuoyu12519 2010-11-25  
   
2 楼 mycream 2010-11-24  
1 楼 chenleijava 2010-11-19  

相关推荐

    史上最详细的Android-Studio系列教程.pdf.zip_android_android studio_android

    这个史上最详细的Android Studio系列教程,无疑是学习Android应用开发的宝贵资源。 一、Android Studio的基础设置与安装 Android Studio的下载可以在Google的官方网站上找到,它提供了Windows、macOS和Linux等多个...

    IT教程:老罗Android开发视频教程 Android入门介绍【9集全】

    "老罗Android开发视频教程 Android入门介绍【9集全】"是一个针对初学者的系列教程,旨在帮助那些对Android编程感兴趣的朋友们快速掌握基础知识。这个教程可能由知名的IT教育者老罗(这可能是指罗永浩,一位在中国...

    Android学习系列教程实例.pdf

    Android学习系列教程实例文档涵盖了Android开发的核心知识点。它详细地介绍了从基础到高级技术的各个方面,旨在帮助开发者深入理解Android系统架构、开发过程以及优化技巧等。 首先,文档回顾了Android的发展历史,...

    2015最新Android基础入门教程PDF版打包合集

    3. **Android Studio项目创建**:从新建项目开始,你将学习如何设置项目结构,理解AndroidManifest.xml文件的作用,以及如何创建Activity和布局资源文件。 4. **UI设计**:Android的界面设计主要通过XML布局文件...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    新版Android开发教程&笔记四--Dalvik ADB

    ### 新版Android开发教程&笔记四--Dalvik ADB #### Android虚拟机Dalvik解析 随着Google发布的Android SDK,不仅带来了新的开发环境和技术规范,更重要的是引入了一个全新的虚拟机技术——Dalvik虚拟机。这一技术...

    Android开发教程笔记完全版 pdf

    Android开发是全球最受欢迎的移动应用开发平台之一,广泛应用于智能手机、平板电脑以及各种智能设备上。这份"Android开发教程笔记完全版"涵盖了Android开发的基础到高级主题,旨在帮助开发者全面理解并掌握Android...

    android开发入门教程

    ADT(Android Development Tools)插件为Eclipse提供了一系列开发Android应用所需的工具和向导。 #### 创建Android项目 创建Android项目是构建应用的第一步。可以通过两种方式创建:使用Eclipse IDE搭配ADT插件,...

    菜鸟Android开发系列之:线性布局

    本系列教程将深入探讨线性布局的使用方法和技巧,帮助初学者更好地掌握Android界面设计。 1. 线性布局介绍 线性布局是最基础的布局,通过`&lt;LinearLayout&gt;`标签定义。它可以设置垂直(默认)或水平排列子视图,通过`...

    史上最详细的Android Studio系列教程pdf

    虽然Android Studio在学习和适应方面会有一些成本,比如与Eclipse不同的快捷键、目录结构以及Gradle的学习等,但是随着开发者们逐渐熟悉这款工具,它所带来的便利性和高效性将大大超出预期。此外,尽管Android ...

    史上最详细的Android-Studio系列教程pdf

    Android Studio的项目结构清晰明了,包括src、res、build.gradle等关键目录。src包含源代码,res存储资源文件,如布局、图片、字符串等。在设置中,开发者可以配置项目的编译版本、图标、签名等信息。 三、编写代码...

    Android开发教程笔记完全版.rar

    7. **数据存储**:Android提供了多种数据存储方式,如Shared Preferences(轻量级键值对存储)、SQLite数据库(结构化数据存储)、文件存储以及Content Provider。 8. **网络编程**:Android应用常常需要与服务器...

    Android核心分析系列教程

    ### Android核心分析系列教程知识点概览 #### 一、Android核心分析之——分析方法论探讨之设计意图 在这一章节中,作者强调了研究Android的重要性,并指出研究Android不仅仅是学习其技术细节,更重要的是理解其...

    黑马程序员Android视频教程

    - **实践操作**:跟随教程完成一系列实战项目,如购物应用、社交应用等。 - **持续集成与部署**:学习如何利用Jenkins等工具实现自动化构建和部署流程。 通过上述内容的学习,可以全面掌握Android应用开发的基础...

    Androidstudio开发安装教程.pdf

    * 配置项目结构,例如项目名称、包名、项目路径等。 * 编写Java代码,例如MainActivity.java。 * 编译和运行应用程序。 Android Studio的安装需要先安装JDK,并配置Java环境变量,然后安装Android Studio,最后配置...

    Android应用开发入门教程(经典版).pdf

    - **软件结构**:Android系统的架构可以分为四层:Linux内核层、系统运行库层、应用框架层、应用程序层。 - **Linux内核层**:提供核心系统服务,如内存管理、进程管理、网络堆栈、驱动模型等。 - **系统运行库层*...

    Android官方培训教程

    这是学习Android开发的第一步,通过这个过程,开发者可以熟悉开发环境和基本的项目结构。 #### 用户界面(UI)和布局 在Android开发中,用户界面是非常关键的一部分。文档提到了创建交互式UI、使用布局管理器(如...

    Android NDK 开发教程二

    ### Android NDK 开发教程概览 #### 一、引言 随着移动互联网技术的不断发展,Android 应用开发已成为软件行业中不可或缺的一部分。为了满足不同层次的开发需求,Google 提供了多种工具和技术栈,其中 Android NDK ...

Global site tag (gtag.js) - Google Analytics