android src中.java、layout中.xml和AndroidManifest.xml文件是通过什么联系起来的?起什么作用?

 我来答
kurloo
2012-02-22 · TA获得超过105个赞
知道答主
回答量:21
采纳率:0%
帮助的人:20万
展开全部

简单说来就是映射。

你可以看到一个正常的android工程下面有个gen文件夹,其中有个包名.R.java,就类似于map的key-value,R.java中就是存放了一个个key值,比如R.drawable.a就对应了res/drawable/a.png文件,那么我们通过此key就可以获得此图片文件的路径,通过加载图片的方法加载为图片,当然有人有疑惑为什么不加载res/drawable-hdpi/a.png,这个是框架层或者底层读取机器的属性(比如分辨率、密度信息)分辨出究竟加载哪个文件夹下面的文件。

因为同属于一个包,有规范的文件夹命名方式,如果你将values文件夹换成valuess,那么就会报错,这个就规定了路径是写死的,所以我们就可以通过id获取写死的路径下面的文件加载。

对于AndroidManifest.xml中加载res中的资源的原理,跟src中的.java如何加载res中的文件是一个意思。

但是AndroidManifest.xml如何加载src中的.java,看图片,这是一个apk中包含的文件,classes.dex是所有.java文件编译过后组合的一个class文件集合,包括R.java编译过后的class文件,resources.arsc中放的是匹配信息,就相当于map信息,哪个key(就是id)对应哪个value。

程序启动的时候,先读取AndroidManifest.xml文件,知道包名,那么此程序的路径就无所遁形,AndroidManifest.xml中有些R.drawable.icon的id,它是先读取classes.dex中的R class文件,然后根据匹配表resources.arsc知道目标文件是在哪儿,那么就可以加载了。 当然classes.dex中某个控件也想加载资源,那么方式是一样的。

追问
我把一个实例导入到eclipse中,可是出现错误 Unable to resolve target 'android-7',把AndroidMainfest.xml和project.properties中的target值给改了,为什么还是有错误,应该怎么做呀?
hanliwoyaoai
2012-02-22 · TA获得超过416个赞
知道小有建树答主
回答量:593
采纳率:0%
帮助的人:464万
展开全部
android---调用Manifest.xml 启动----> java ----通过系统 ---layout
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淡漠佳阳coff7
2012-02-22
知道答主
回答量:43
采纳率:0%
帮助的人:20.1万
展开全部
layout.xml是布局文件 manifest.xml是系统文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式