参考:http://www.cnblogs.com/0616--ataozhijia/p/4094952.html

以API 19为例:

系统默认提供的android.jar整体大小为:21.8 MB

手动删除资源文件后, android.jar大小为: 2.6 MB

从中可以确定: jar包中是可以放入资源文件的

那么 jar包中的资源是如何被调用的??

以纯java方式: 见参考

以Android方式: 参考:http://blog.csdn.net/liguangzhenghi/article/details/8858544

1、jar被包含进其他项目后,最终生成的apk文件中包含jar中的资源(目录结构也是一样的),这个可以通过zip打开jar和apk查看。

2、jar中的资源应该也是被jvm管理起来的,但是由于其实际id与原始jar项目中产生的id不一致,导致使用原始jar项目中的资源id不能访问到实际资源。只能通过getClass().getClassLoader().getResourceAsStream()的方式进行访问。

对于使用jar方式进行组件开发,有以下需要注意:

1. jar包中一般只包含代码不包含资源。

2. 如果要在jar中包含资源,则资源文件不应该放在默认的res目录下(因为导入其他项目后可能出现重名冲突),应该在package目录下创建专用的资源目录,如此通过pakcage的不重名来确保导入后资源不冲突。同时,jar中代码不能直接使用R类中资源id进行访问,应该通过getClass().getClassLoader().getResourceAsStream()进行加载。

3. 字付串资源可以定义成常量的方式来使用。

更多相关文章

  1. android 存储数据与文件
  2. Android短信编解码方式
  3. android 实用sax 读取xml文件内容 附源码
  4. android遍历sd卡中的所有文件
  5. Android 实现多个Audio文件的顺序播放
  6. 解决 Android 下载中文文件名问题
  7. android如何静默方式来安装apk

随机推荐

  1. Mysql慢查询优化方法及优化原则
  2. 分享几道关于MySQL索引的重点面试题
  3. CentOS7.x卸载与安装MySQL5.7的操作过程
  4. mysql中mysql-bin.000001是什么文件可以
  5. mysql提示got timeout reading communica
  6. 关于Mysql自增id的这些你可能还不知道
  7. 详解mysql集群:一主多从架构实现
  8. 浅谈MySQL中四种常用存储引擎
  9. 详解mysql5.7密码忘记解决方法
  10. MySQL联表查询的简单示例