Android中库项目、jar包等的使用方法
来源:互联网 发布:10492 知乎 编辑:程序博客网 时间:2024/06/04 18:55
在软件开发过程中,程序代码的复用,是非常重要的概念。我们总是需要使用一些现有的模块、包、框架,或开发自己的模块、包、框架,来实现对程序代码的复用。比如在JavaWeb编程过程中,经常使用的Struts和Spring等框架,就可以大大简化我们的开发过程,提高开发效率。
在开发Android应用程序的过程中,同样有这方面的需求。Android系统包含的Android应用程序开发框架,已经是一个可以很好的提高开发效率的框架,但它并不能满足我们的所有需要。比如我们再开发某一类应用程序时,会发现这一类应用程序,会有大量的代码是重复的,这时,就需要我们优化设计并采用某种方式,实现重复代码的复用,使开发此类应用程序变得简单。
类似开发其他Java应用一样,我们可以将可复用的代码,打成一个jar包,供所有需要的项目使用。这样,可以解决很大一部分代码复用的问题,比如在不同应用中可以复用的核心算法等。
但是,如果可复用代码包含了大量的资源,包括图片、音乐文件甚至界面布局等的时候,代码的复用就会变得麻烦起来,因为这些东西不能被一起打包到jar包里面,供需要的项目使用。而没有这些资源,可复用的代码又无法运行。在这种情况下,最好的解决办法,就是使用Android2.2之后的SDK支持的库项目(Lib Project)。
一个库项目是一个包含了源码和资源的项目,它可以被其他的项目引用,从而让其他项目使用它包含的代码和资源。多个Android应用程序项目可以引用同一个库项目,同一个Android应用程序项目也可以引用多个库项目。
创建库项目和引用库项目是很容易的事情。我们以Eclipse环境下的开发为例。如果要创建库项目,只需要在创建普通Android项目完成后,打开设置项目属性的面板,在Android选项卡下选中Is Library复选框即可(如下图所示)。
现有的项目引用库项目的时候,也只需要打开项目属性设置面板,在Android选项卡下添加需要引用的项目(如下图所示)。
完成以上操作后,我们就成功的创建了一个库项目,或在现有项目中引用了一个库项目,是不是很简单?
当然,在使用库项目的时候,因为Android项目结构及编译工具的特殊性,我们需要注意一些要点,列举如下:
1.工作项目和库项目的资源名称,尽量不要重复,如果重复,编译器会优先使用工作项目的资源;
2.无法将一个库项目导出为一个jar文件;
3.库项目的Android系统版本必须等于或低于工作项目的系统版本;
4.每一个库项目都会生成一个R文件,工作项目被编译时,将会合并工作项目和库项目的R文件,如果R文件中有常量同名,将使用工作项目R文件中的常量;如果引用了多个库项目,库项目中的R文件有常量重名,将根据库项目被引用的顺序来确定常量的使用优先级。
- Android中库项目、jar包等的使用方法
- 在Android持续集成项目中android.jar前加载自己的jar包
- Android项目proguard代码混淆遇到的一系列问题,外部jar,Gson包等
- Android项目proguard代码混淆遇到的一系列问题,外部jar,Gson包等
- 开发Android 项目需用到的jar包,开源工具类,plugins等
- Eclipse中使用fat-jar打包包含jar包的Android项目
- 修改项目android的jar包版本
- 开发android项目的常用jar包
- 项目中加入jar包的区别
- Android Studio 项目中引入jar包及so包
- Android开发,Android项目打jar包,以及Http请求整合框架的使用(后付文件和使用方法)
- jar包中含有Android图片文件以及按钮等selector.xml的替代方案
- jar包中含有Android图片文件以及按钮等selector.xml的替代方案
- 自己封装的Android sqlite-helper.jar包使用方法
- Android动态加载外部jar包及jar包中图片等资源文件
- Android导入开源库及jar等文件到基于Android Studio构建的项目中
- 如何将Android项目(此Android项目也包含其他jar包)以jar包的形式整合到核心项目中去
- Eclipse中Android项目的Android Private Libraries不自动引入libs下的jar包
- iOS 6.1 evasi0n jailbreak
- A Mathematical Curiosity
- C#图片存入数据库
- Linux/Unix环境下的make命令详解
- iOS单例学习笔记整理
- Android中库项目、jar包等的使用方法
- 留住你的用户:8款第三方移动推送服务
- iOS利用单例实现不同界面间的数据传输
- 改善C++ 程序的150个建议学习之建议26:用引用代替指针
- 我对计算机类专业教学中一些问题的看法
- 静态方法调用
- rman 使用catalog备份的演示
- Deep Learning in NLP (一)词向量和语言模型
- android 中一个工程引用另一个工程