学员作品 学员心得 技术园地 潮人地 Android(安卓)培训 杭州电脑(计算机)培训 杭州网络营销培训 杭州JAVA培训
返回首页

Android培训教程:Android开发中创建Project及结构说明

时间:2012-03-21 10:01来源:未知 作者:杭州华育 点击:
杭州华育安卓Android培训开发免费教程:Android开发中创建Project及结构说明

Android培训教程:Android开发中创建Project及结构说明

 

 

 

1、创建Project
  当然第一步就是打开我们的Eclipse软件,File->New->Android Project,出现如图界面:

  选择我们需要的android版本。

  我们来解释下各项所代表的意思和其作用:

  Project name:工程名,可以随意填写。
  Contents:这个询问你是否需要在一个已有的工程或者源文件的基础上新建工程,当然我们这里选择Create new project in workspace。
  Location:存放工程文件的目录。
  Build Target:所建工程主要面向哪个版本的平台,目前较新为4.0,我们选择2.3。
  Application name:应用程序的名字,以后如果你的程序要被人使用,那么别人看到的就是这个名字。当然APP name可以在Layout\values\string.xml文件中修改,在此处不能为空。
  Package name:也就是存放我们源文件的地方。我想有java开发经验和C#开发经验(类似于namespace)的人对此一定不陌生,其较大的作用就是能够防止类名冲突,使软件的整体结构清晰明了。
  Create Activity:一个APP中,必须有一个Activity文件,在新建一个Project时,系统会默认为你创建一个Activity。
  Min SDK Version:应用程序可以运行的API较低版本。在Android平台中,API级别和平台版本是一一对应的,从较老版的Android 1.0到现在的Android 4.0 级别一共有14个级别,详细的可以查看官方的帮助文档。也就是说,我们的这个值和我们选择的Android版本是有直接关系的,在上面我们选择2.3版本,所以Min SDK Version=9 。当然这个值可以修改,但是在配置文件中会有告警,而且如果运行在低版本(如1.5)上,有可能导致应用程序崩溃。

  2、Project结构解析
  在Project创建好后,如下图所示:

  工程文件展开后,跟路径下一共包含8个文件及文件夹。
  src:存放用户编写的源文件的位置,里面默认包含了一个和我们APP name一直的**Activity.java文件。

  //引用的包名
  package LiB.Demo;
  import android.app.Activity;
  import android.os.Bundle;
  //创建一个Activity较首要的因素就是要该类继承自Activity类,关于Activity将在笔记三种详细介绍
  publicclass MytestAppActivity extends Activity {
  /** Called when the activity is first created. */
       @Override
  publicvoid onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  //请看gen 的介绍
           setContentView(R.layout.main);
       }
   }

gen:这个文件夹是有android开发工具自动生成的,里面有一个R.java文件。会自动更具我们在res文件夹中放入的资源分类的创建一个全局优先的ID。

  /* AUTO-GENERATED FILE.  DO NOT MOD
   *
   * This class was automatically generated by the
   * aapt tool from the resource data it found.  It
   * should not be modified by hand.
  */
  //在上面这段话中应该看出来了,R.java是有开发工具自动生成,不需要我们去修改,如果修改后将导致我们的APP找不到需要的资源ID而报错
  package LiB.Demo;

  publicfinalclass R {
  publicstaticfinalclass attr {
       }
  publicstaticfinalclass drawable {
  publicstaticfinalint icon=0x7f020000;
       }
  //在 MytestAppActivity中的setContentView(R.layout.main)方法的参数
  //对应res\layout\main.xml
  publicstaticfinalclass layout {
  publicstaticfinalint main=0x7f030000;
       }
  //对应res\values\string.xml
  publicstaticfinalclass string {
  publicstaticfinalint app_name=0x7f040001;
  publicstaticfinalint hello=0x7f040000;
       }
   }

  android 2.3 :SDK的jar包,有兴趣的朋友可以帮助文档上去看看。

  assets & res:这两个文件中存放的都可以是APP的资源文件,优先不同的是res中的资源会在R.java中由开发工具编译并自动生成一个优先的ID,而在assets中就会保存成原来的格式而不会在R.java中生成优先ID,如果要引用在assets文件夹中的资源,则需要使用getAssets()方法以及InputStream等文件操作方面的知识。所以一般较大的资源文件都建议放在assets文件夹中。

  res文件夹中drwable-*的三个文件夹放置的使我们的图标。分别对应高、低、中三个不同的分辨率,手机会根据自己的分辨率来选择合适的图标已达到较好的显示效果。

  res\layout:存放被编译为屏幕布局(或屏幕的一部分)的XML文件。文件名对应R.java中的字段名。新建布局文件New->Android XML File->Layout。

  <?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"
      <!-- 为TextView创建一个ID,在R.java中将自动生成其ID的优先值,方便引用 -->
      android:id="@+id/textView_1"
      />
  </LinearLayout>

  res\values:在layout中只能存放屏幕布局的xml文件,而在values中可以存放很多种可以编译的xml文件。新建文件New->Android XML File->values。建议较好在以后的Android学习或者开发过程中,把布局文件上需要的值都统一放到values中,这样方便修改。

  androidManifest.xml:当Android启动一个应用程序时,它必须首先知道这个程序的存在,并且要知道这个程序将会访问到那些设备或者数据,这个应用程序本身的一些配置属性如它的APP name,Logo之类的。manifest文件就是配置这些信息的。当你的应用程序请求访问蓝牙或者WIFI时,就需要在manifest文件中配置响应的属性。关于manifest文件的详细信息,可以查看官方帮助文档。

    <?xml version="1.0" encoding="utf-8"?>
  //在pakeage中指定了应用程序要使用的包名以及程序版本
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="LiB.android_1" android:versionCode="1" android:versionName="1.0">
  //API等级
        <uses-sdk android:minSdkVersion="9" />
  //在application节中定义了程序的Logo,程序名,默认启动的Activity
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".Android_1Activity" android:label="@string/app_name">
  //intent-filter——intent过滤器,这个将在后面的笔记中介绍,现在需要知道的就是action为动作,category为动作类型,当配置了以下过滤器后,activity中注册的Android_1Activity文件将作为默认启动的Activity文件
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    </manifest>

  default.properties:开发工具自动生成,说明这个应用程序所针对的Android平台版本。

  proguard.cfg:在说这个前我想说说前两天看到的一篇博文,说是愤怒的小鸟被反编译成了源码,我也很感兴趣的看了下,很不幸,里面的类名什么的都是被混淆过的,都是abc什么一类的没有具体意义的名字。我们文件夹中多出的这个proguard.cfg文件就是ADT自带的混淆代码的脚本配置文件。如果你以后开发了一个很牛的软件,然后不想让人家知道了里面具体的实现代码,那么这就是一个很好的东西了。关于如何使用这个配置文件,还在研究中。

  3、运行Project,右键Android_1,Run as->Android Application。如果没有错误,那么稍等片刻如下图所示:

  是的,我们有落入了Helloworld的俗套中,如果你不想落入俗套,那么试着修改下程序。

  4、关于SDK中自带的帮助文档,在..\android-sdk-windows\docs\reference\中打开classes.html,可以按照索引来查看所需要的东西。这个SDK的帮助文档全部是英文的,但是看起来也不算很费劲。

(责任编辑:杭州华育 ;杭州java培训,网络营销培训,杭州计算机培训,it培训,详询客服报名咨询
分享到:
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
提交报名信息

2017年杭州将加大力度经济转型,吸纳更多的技术人才落户杭州,软件人才需求量更是大幅提升,针对目前杭州IT行业人才需求“井喷”现象,华育软件杭州实训基地与杭州155家IT名企合作,建立人才培养与输送关系,启动“Eduask国家高端IT紧缺人才培养工程”。7月针对杭州地区18-28岁大中专生待业青年发放68个技能实训名额(应届大中专毕业生优先),经短期专业岗前实训后推荐进入企业,起薪4500-8000元,五险一金。

姓名: * 性别:
学历: 电话: *
所在地: *
您目前状况:
留言:
*