当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 下面是HelloAndroid项目在eclipse中的目录层次结构:由上图可以看出项目的根目录下共有九个文件(夹),下面就这九个文件(夹)进行详解:1.1src文件夹和assets文件夹:每个An

 下面是HelloAndroid项目在eclipse中的目录层次结构:

由上图可以看出项目的根目录下共有九个文件(夹),下面就这九个文件(夹)进行详解:

1.1src文件夹和assets文件夹:

每个Android程序都包含资源目录(src)和资产目录(assets),资源和资产听起来感觉没有多大差别,但在存储外部内容时用资源(src)比较多,其中它们的区别在于存放在资源(src)下的内容可以通过应用程序的R类进行访问,而存放在资产(assets)下的内容会保持原始文件的格式,如果需要访问,则必须使用AssetManager以字节流的方式来读取,用起来非常的不方便。为了方便使用,通常文件和数据都会保存在资源(src)目录下

1.2res(Resource)目录:资源目录

可以存放一些图标,界面文件和应用中用到的文字信息,下图为res目录截图:

1.2.1 drawable-*dpi文件夹:将图标按分辨率的高低放入不同的目录,其中draeable-hdpi用来存放高分辨率的图标,drawable-mdpi用来存放中等分辨率的图标,drawable-ldpi用来存放低分辨率的图标

1.2.2 values文件夹:用来存放文字的信息

(1)strings.xml:用来定义字符串和数值

Hello World, Hello 3G

Android1.1

哥想你了

按钮1

按钮1

 

每个string标签生命了一个字符串,name属性指定它的引用值

(2)为什么要把这些出现的文字单独放在strings.xml文件中?

答案:一是为了国际化,如果需要将文件中的文字换成别的国家的语言,就可以只需要替换掉一个strings.xml文件就可以了

二是为了减少应用的体积,例如,我们要在应用中使用“哥想你了”这句话1000次,如果我们没有将“哥想你了”定义在strings.xml文件中,而是直接在应用中使用时写上这几个字,那么我们就会在应用中写4000个字。4000个字和4个字占用的内存可是有很大差距的啊,况且手机的内存本来就小,所以应该是能省就省

(3)另外还有arrays.xml,color.xml等定义数组,颜色的,都最好用单独的一个xml文档

1.2.3 layout文件:用来存放界面信息

本例中的布局文件是自动生成的“main.xml”

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical">

 

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/test"/>

 

元素:线性布局的意思,在该元素下的所有子元素都会根据他的”orientation”属性来决定是按行还是按列或者按逐个显示进行布局的

元素:是一种显示控件,他的”text”属性指定了在这个元素上显示的内容

1.3 gen目录:gen目录下只有一个自动生成的“R.java”文件

/*AUTO-GENERATED FILE. DO NOT MODIFY.

*

* This class was automatically generated bythe

* aapt tool from the resource data itfound. It

* should not be modified by hand.

*/

packagecn.csdn.android.demo;

public final class R {

public static final class attr {

}

public static final class drawable {

public static final int ic_launcher=0x7f020000;

}

public static final class id {

public static final int button1=0x7f050000;

public static final int radioButton1=0x7f050001;

public static final int toggleButton1=0x7f050002;

}

public static final class layout {

public static final int main=0x7f030000;

}

public static final class string {

public static final int app_name=0x7f040001;

public static final int hello=0x7f040000;

public static final int start=0x7f040004;

public static final int startButton=0x7f040003;

public static final int test=0x7f040002;

}

}

R.java文件:默认有attr,drawable,layout,string这四个静态内部类,每个静态内部类对应一中资源,如layout静态内部类对应layout中的界面文件,string静态内部类对应string内部的string标签。如果在layout中在增加一个界面文件或者在string内增加一个string标签,R.java会自动在其对应的内部类增加所增加的内容。

R.java除了自动标识资源的索引功能外,还有另一个功能,就是当res文件中的某个资源在应用中没有被用到,在这个应用被编译时,系统不会把对应的资源编译到应用中的APR包中。

1.4 AndroidManifest.xml 功能清单文件

每个应用程序都会有一个AndroidManifest在它的根目录里面。这个清单为Android系统提供了这个应用的基本信息,系统在运行之前必须知道这些信息,另外,如果我们使用系统自带的服务,如拨号服务,应用安装服务等,都必须在AndroidManifest.xml文件中声明权限

AndroidManifest.xml的功能:

命名应用程序的Java应用包,这个包名用来唯一标识应用程序;[!--empirenews.page--]

描述应用程序的组件,对实现每个组件和公布其功能的类进行命名,这些声明使得Android系统了解这些组件以及它们在什么条件下可以被启动

决定哪个组件运行在哪个进程里面

声明应用程序必须具备的权限,用以访问受保护的API,以及和其他进程的交互

声明应用程序其他的必备权限,用以组件之间的交互

列举application所需要链接的库

以HelloAndroid项目的功能清单为例子进行讲解:

package="cn.csdn.android.demo"

android:versionCode="1"

android:versionName="1.0">

 

android:icon="@drawable/ic_launcher"

android:label="@string/app_name">

 

android:label="@string/app_name"

android:name=".HelloActivity">

 

 

 

 

1.4.1 元素

package="cn.csdn.android.demo"

android:versionCode="1"

android:versionName="1.0">

元素是AndroidManifest.xml的根元素,”xmlns:android”是指该文件的命名空间,“package”属性是Android应用所在的包,“android:versionCode”指定应用的版本号,如果应用不断升级,则需要修改这个值,”android:versionName”是版本的名称,这个可以根据自己的喜爱改变

1.4.2 元素

 

android:icon="@drawable/ic_launcher"

android:label="@string/app_name">

 

android:label="@string/app_name"

android:name=".HelloActivity">

 

 

 

元素是一个很重要的元素,开发组件都会在此下定义

元素的”icon”属性是用来设定应用的图标,其中“@drawable/ic_launcher”的意思是:在R.java文件中的drawable静态内部类下的icon,如下图所示

元素的“label”属性用来设定应用的名称,其中“@string/app_name”和上述的一样,也是R.java文件中的string静态内部类下的app_name

1.4.3 元素

 

android:label="@string/app_name"

android:name=".HelloActivity" >

 

 

元素的作用是注册一个activity信息,当我们在创建“HelloAndroid”这个项目时,指定了“Created Activity”属性为“HelloActivity”,然后ADT在生成项目时帮我们自动创建了一个Activity,就是“HelloActivity.java”;

元素的“name“属性指定的是Activity的类名,其中“.HelloActivity”中的“.”指的是元素中的“package”属性中指定的当前包,所以“.HelloActivity”就相当于“cn.csdn.android.demo.HelloActivity.java”,如果Activity在应用的包中可以不写“.”,但是为了避免出错,还是写上这个点把

1.4.4元素

 

如果直接翻译的话是“意图过滤器”,组件通过告诉它们所具备的功能,就是能响应意图类型,在intent中设置action, data, categroy之后在对应的intentfilter中设置相同的属性即可通过过滤被activity调用

1.5 应用要求运行的最低Android版本

1.6 存放Android自身的jar包

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭