java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

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 生成视图,这样视图就和逻辑控制的代码分离了便于管理。
源码



    



* 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 ,声明使用的权限等等,



    

                
            

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);


This entry was posted in JAVA and tagged , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/android-demo-file/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

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

  1. 97world says:

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

Leave a Reply to 97world Cancel reply