ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 14019|回复: 0
上一主题 下一主题
[教程]

Android开发之旅:HelloWorld项目的目录结构

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-28 16:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2   图1、HelloWorld项目目录结构下面将分节介绍上面的各级目录结构。顾名思义(src, source code)该文件夹是放项目的源代码的。打开HelloWorld.java文件会看到如下代码:   
   
  1. package helloworld.test;   
       
    import android.app.Activity;   
    import android.os.Bundle;   
       
    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);   
        }   
    }
复制代码
  
   
   可以知道:我们新建一个简单的HelloWorld项目,系统为我们生成了一个HelloWorld.java文件。他导入了两个类android.app.Activityandroid.app.Activity类:因为几乎所有的活动(activities)都是与用户交互的,所以更多的关于Activity类的详细信息此系列以后的文章将做介绍,如果你想了解更多请参阅相关文档。android.os.Bundle类:从字符串值映射各种可打包的(Parcelable)类型(Bundle单词就是捆绑的意思,所有这个类很好理解和记忆)。如该类提供了公有方法——public boolean containKey(String key),如果给定的key包含在Bundle的映射中返回true,否则返回false。该类实现了Parceable和Cloneable接口,所以它具有这两者的特性。该文件夹下面有个R.java文件,R.java是在建立项目时自动生成的,这个文件是只读模式的,不能更改。R.java文件中定义了一个类——R,R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R类定义该项目所有资源的索引。看我们的HelloWorld项目是不是如此,如下图:   图2、R.java对应res   
   
该文件夹下包含android.jar文件,这是一个Java 归档文件,其中包含构建应用程序所需的所有的Android SDK 库(如Views、Controls)和APIs。通过android.jar将自己的应用程序绑定到Android SDK和Android Emulator,这允许你使用所有Android的库和包,且使你的应用程序在适当的环境中调试。例如上面的HelloWorld.java源文件中的:import android.app.Activity;   
import android.os.Bundle;这里两行代码就是从android.jar导入包。包含应用系统需要使用到的诸如mp3、视频类的文件。资源目录,包含你项目中的资源文件并将编译进应用程序。向此目录添加资源时,会被R.java自动记录。新建一个项目,res目录下会有三个子目录:drawabel、layout、values。drawabel-?dpi:包含一些你的应用程序可以用的图标文件(*.png、*.jpg)layout:界面布局文件(main.xml)与WEB应用中的HTML类同,没修改过的main.xml文件如下(HelloWorld的就没有修改过):   
   
   
  1. <?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>
复制代码
  values:软件上所需要显示的各种文字。可以存放多个*.xml文件,还可以存放不同类型的数据。比如arrays.xml、colors.xml、dimens.xml、styles.xml   
项目的总配置文件,记录应用中所使用的各种组件。这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。AndroidManifest.xml将包含如下设置:application permissions、Activities、intent filters等。
如果你跟我一样是ASP.NET出生或者学过,你会发现AndroidManifest.xml跟web.config文件很像,可以把它类同于web.config文件理解。
如果你不是,你可以这样理解——众所周知xml是一种数据交换格式,AndroidManifest.xml就是用来存储一些数据的,只不过这些数据时关于android项目的配置数据。
HelloWorld项目的AndroidManifest.xml如下所示:   
  1. <?xml version="1.0" encoding="utf-8"?>   
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"   
          package="helloworld.test"   
          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>   
    </manifest>
复制代码
                                                                     
   
关于AndroidManifest.xml现在就讲这么多,此系列后面的文章将单独详细介绍。记录项目中所需要的环境信息,比如Android的版本等。 HelloWorld的default.properties文件代码如下所示,代码中的注释已经把default.properties解释得很清楚了:   
  1. # This file is automatically generated by Android Tools.   
    # Do not modify this file -- YOUR CHANGES WILL BE ERASED!   
    #   
    # This file must be checked in Version Control Systems.   
    #   
    # To customize properties used by the Ant build system use,   
    # "build.properties", and override values to adapt the script to your   
    # project structure.   
       
    # Indicates whether an apk should be generated for each density.   
    split.density=false   
    # Project target.   
    target=android-7
复制代码
  
   

上一篇:在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱
下一篇:制作可独立分发的Android模拟器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2025-4-28 04:48 , Processed in 0.065322 second(s), 15 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2025 ZNDS.Com

快速回复 返回顶部 返回列表