Android R.java类的手动生成

Android中的资源和R.java类

在Android项目中的res目录中包含了项目使用的各种资源,这些资源全部都分布在res目录下的各个子目录中。每个资源都有两个属性,一个是资源的名字,一个是资源的类型。此外,res目录下的资源在编译后都会有一个对应的id。

R.java类(以下简称R类)是Android中一个非常重要的类,其中定义了res目录中全部资源的id。在代码中通过R类获取到资源的id后,即可调用Android API来获取和使用对应的资源。例如:

ImageView imageView = (ImageView)findViewById(R.id.imageView);
TextView textView = (TextView)findViewById(R.id.textView);
imageView.setImageResource(R.drawable.bg)
textView.setText(R.string.app_name)

R类的生成

R类并不包含在项目代码中,而是由Android SDK在编译阶段通过aapt工具生成的。一般情况下,开发者不需要关注R类的生成,直接在代码中使用即可。然而在某些情况下需要由开发者手动生成R类,并放到项目代码中。

为什么需要手动生成R.java类

Android library

Android 项目根据用途的不同分为app项目和library项目。app项目用来生成可以在Android系统上运行的apk程序,提交到应用市场给用户使用。而library项目并不会生成apk,而是生成一个sdk,提供给其他开发者使用。

对library项目来说,如果library工程中包含了资源,如layout,drawable,string,dimen等,那么需要将这些资源文件和编译后的代码一起放到sdk中。对Eclipse library工程,是将整个res目录原样放到sdk中。对Android Studio的library工程,会将整个res目录打包到aar文件中。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值