加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

第一个Android的应用程序目录结构分析

发布时间:2021-11-24 19:14:04 所属栏目:教程 来源:互联网
导读:结构图: 从上往下一一介绍: 1、 src文件夹一看就是放源代码的,自己编写的!! 2、 gen下有跟src中一样的包文件,包文件有一个R.java类,它是自动生成的一个类;该目录不用我们开发人员维护, 但又非常重要的目录 。 该目录用来存放由 Android 开发工具所

结构图:
 
 
 
 
 
从上往下一一介绍:
 
1、  src文件夹一看就是放源代码的,自己编写的!!
 
2、  gen下有跟src中一样的包文件,包文件有一个R.java类,它是自动生成的一个类;该目录不用我们开发人员维护, 但又非常重要的目录 。 该目录用来存放由 Android 开发工具所生成的目录 。 该目录下的所有文件都不是我们创建的,而是由ADT 自动生成的。该目录下的 R.java 文件非常重要;
 
R.java 文件中默认有 attr 、 drawable 、 layout 、 string 等四个静态内部类 , 每个静态
 
内部类分别对应一种资源, 如 layout 静态内部类对应layout 中的界面文件, 其中每个静态内部类中的静态常量分别定义一条资源标识符,如 “ publicstatic final int main =0x7f030000; ” 对应的是 layout 目录下的 main.xml文件。具体的对应关系,如下图。
 
 
 
现在已经理解了 R.java 文件中内容的来源 , 也即是当开发者在 res/ 目录中任何一个子目录中添加相应类型的文件之后, ADT 会在 R.java 文件中相应的匿名内部类当中自动生成一条静态 int 类型的常量,对添加的文件进行索引。如果在 layout 目录下在添加一个新的界面,那么在 public static final class layout 中也会添加相应的静态 int 常量。相反的 , 当我们再 res 目录下删除任何一个文件 , 其在 R.java 中对应的记录会被 ADT 自动删除 。再比如说我们在strings.xml添加一条记录,在R.java 的 string 内部类中也会自动增加一条记录。
 
R.java 文件会给我们开发程序带来很大的方便 , 比如在程序中我们使用 “ public staticfinalint icon =0x7f020000; ”就可以找到其对应的 icon.png 这幅图片。
 
R.java 文件除了有自动标识资源的 “ 索引 ” 功能之外 , 还有另一个主要的功能 , 当 re s目录中的某个资源在应用中没有被使用到 , 在该应用被编译的时候系统就不会把对应的资源编译到该应用的 APK 包中,这样可以节省 Android 手机的资源。
 
3、  android 2.1/ 存放 Android 自身的 jar 包。
 
4、  assets/该目录用来存放应用中用到的类似于视频文件、 MP3 一些媒体文件。
 
5、  res/  res 是 resource 的缩写 。 我们称该目录为资源目录 。该目录可以存放一些图标、界面文件、应用中用到的文字信息。
 
res/目录下有三个 dawable 文件夹 —— drawable-*dpi, 区别只是将图标按分辨率高低来放入不同的目录 ,drawable-hdpi用来存放高分辨率的图标, drawable-mdpi 用来存放中等分辨率的图标, drawable-ldpi  用来存放低分辨率的图标 。 程序运行时可以根据手机分辨率的高低选取相应目录下的图标。这些文件夹下放一些png扩展名的图片,png是透明的压缩的图片;专门针对网络制出的图片,因为它的尺寸很小效果很好!!移动平台上一般都用png;
 
如果是老版本的,比如是1.5版本的,res下的drawable只有一个文件夹,过去的版本没有分辨率之分,如果想改变老版本的,所这三个文件添上就可以了!!
 
res/目录下layout/的文件main.xml是布局文件,
 
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 ”翻译成中文是 “ 线性布局 ” ,所谓线性布局就是在该元素下的所有子
 
元素会根据其 “ orientation ” 属性的值来决定是按行或者是按列逐个显示。
 
<TextView > 元素
 
该元素与 HTML 中的 < label> 元素比较相似。也是一种显示控件。
 
其属性 text 指定在该元素上面显示的文字内容。建议将该文字内容在 strings.xml 文件;
 
values/下有一个strings.xml文件,用来定义字符串和数值 , 在 Activity 中使用 getResources().getString(resourceId)或getResources().getText(resourceId) 取得资源。
 
HelloWorld 项目的 strings.xml 文件内容如下:
 
<? xml version = "1.0" encoding = "utf-8"?>
 
< resources >
 
< string name = "hello" > Hello World,HelloActivity! </ string >
 
< string name = "app_name" > Android ,你好! </string >
 
</ resources >
 
每个 string 标签声明了一个字符串,name 属性指定其引用名。
 
为什么需要把应用中出现的文字单独存放在strings.xml 文中呢?
 
原因有二,一是为了国际化,二是为了减少应用的体积,节省空间;

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读