Android教程二:Android 工程文件说明大全


目录结构如下

1.src
和普通的java工程没什么区别,源码存放位置。

2.gen
ATD自动生成的,里面都有一个R.java。R.java 就是根据资源文件夹 res 生成的。R.java 里放的就是 res 中资源文件索引,用一个常量标记 res 中的一个资源文件,便于我们在代码中引用。
3.Android4.1.2
Android开发包

4.Android Dependencies
Android开发支持包

5.assets

6.bin
生成可以执行的包。里面会找到一个apk文件。熟悉吧。android安装执行文件。

7.libs
类库包,和普通java工程的意义一致,调用的外部包

8.res
其中 drawable 是放图片的,有 drawable-hdpi,drawable-ldpi,drawable-mdpi 之分,对应的是高密度图片,低密度图片,和中等密度的图片,
四种屏幕尺寸分类:: small, normal, large, and xlarge四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)
需要注意的是: xhdpi是从 Android 2.2 (API Level 8)才开始增加的分类.
xlarge是从Android 2.3 (API Level 9)才开始增加的分类.

* xlarge screens 最小 960dp x 720dp
* large screens 最小 640dp x 480dp
* normal screens 最小 470dp x 320dp
* small screens 最小 426dp x 320dp

一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。

http://developer.android.com/guide/practices/screens_support.html

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world"
        tools:context=".MainActivity" />
 
 
</RelativeLayout>

* android:layout_width 定义当前视图占的宽度,这里是 fill_parent 即为充满整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变宽度

* android:layout_height 定义当前视图占的高度,这里是 fill_parent 即为充满整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变高度

android:text 是这是 TextView 要显示的文本,可以是字符串,也可以是一个字符串的引用,这里是一个引用,引用的是 strings.xml 定义好的名字为 hello 的字符串android:layout_centerHorizontal 水平居中

android:layout_centerVertical 上下居中

布局图如下

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

9.AndroidMainfest.xml
AndroidManifest.xml 很重要,每个 Android 项目都有一个,这是Android 的配置文件,我们可以在这里配置应用的属性,定义 Activity ,声明使用的权限等等,

<manifestxmlns:android="http://schemas.android.com/apk/res/android"
    package="com.javaer.an"
    android:versionCode="1"
    android:versionName="1.0"]]>
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15"/>
 
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"]]>
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main"]]>
            <intent-filter]]>
                <actionandroid:name="android.intent.action.MAIN"/>
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter]]>
        </activity]]>
    </application]]>
 
</manifest]]>

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

* android:label=”@string/title_activity_main”]]]]> 这句话,对应values文件夹下Strings.xml来理解比较好理解(values在res目录下)
Strings.xml有个key value

10.ic_launcher-web.png
软件默认图标
11.proguard-project.txt

12.project.properties

就一句话。目标为Android-16
target=android-16

看一下helloword例子的源码

package com.javaer.an;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
 
public class MainActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

一个 Activity 可以想象成一个手机的屏幕,用于展示一屏的内容,所以所有要展示内容的屏幕都要继承 Activity 才能实现,接着覆盖了 onCreate() 方法对该 Activity 进行初始化 setContentView(R.layout.activity_main);

如果你是一名技术人员可加我QQ 2651-0442-02,如果你是java技术人还可以加入QQ群 1784-9136-0
你将得到的不仅仅是技术的交流,还有职业机会,人生解惑.
首发地址:月小升博客http://java-er.com/blog/android-demo-file/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
此条目发表在 JAVA 分类目录,贴了 , 标签。将固定链接加入收藏夹。
既然来了,就评论一下,不会怀孕的

Android教程二:Android 工程文件说明大全》有 1 条评论

  1. 97world 说:

    这个要学习java,想借这个机会写一个android上的应用,你的这几个android教程我要好好看一下了

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">