Android 引用外部项目库笔记

转载 2015年11月18日 11:13:27
项目中要集成其他项目由于集成项目庞大不想机械的copy,就想将集成的项目做成项目库,这样以后集成项目升级,本项目里面升级扩展也方便。
集成步骤和方法:
1.库项目的结构一个库项目是一个包含了源码和资源的项目,它可以被其他的项目引用,从而让其他项目使用它包含的代码和资源。多个Android应用程序项目可以引用同一个库项目,同一个Android应用程序项目也可以引用多个库项目。

2.库项目创建和使用

库项目就是一个完整的android项目我们只需要配置一下他的lib属性就可以了就可以作为一个lib项目来使用。步骤:右键需要作为lib的项目---》Properties---》android----》

Library----在isLibrary的前面勾选复选框即可。

Android <wbr>引用外部项目库笔记

我们在其它android的项目中怎么使用库项目了?,也很简单:

跟上面的步骤一样,只是在Library中不是选择Is Library 而是 add 添加一个Lib项目

例:

Android <wbr>引用外部项目库笔记


lib项目中使用的过程中需要注意的事项 

在使用库项目的时候,因为Android项目结构及编译工具的特殊性,我们需要注意一些要点,列举如下:

      1.工作项目和库项目的资源名称,如果名称重复,编译器会优先使用工作项目(也称为子项目)的资源,这个特点在项目中也可以利用,比如自己想要替换资源文件的东西,只需要命名相同就可以了;

       2.无法将一个库项目导出为一个jar文件;

       3.库项目的Android系统版本必须等于或低于工作项目的系统版本;

    4.每一个库项目都会生成一个R文件,工作项目被编译时,将会合并工作项目和库项目的R文件,如果R文件中有常量同名,将使用工作项目R文件中的常量;如果引用了多个库项目,库项目中的R文件有常量重名,将根据库项目被引用的顺序来确定常量的使用优先级。


库项目使用的场景

库项目确实为重复代码代码带来了很大的好处。但是并不是什么情况下都是适用的,就像前面提到的适合做一些特定逻辑上的处理,比如新浪微博我们开发新浪的一些功能可以使用新浪微我们提供的lib项目,它里面主要封装了一些接口的操作。我们只需要调用就可以了,这种场景库项目来对指定的接口完成指定的事情。如果使用同一个lib项目时接口有很大的改变就不适合使用lib,因为在lib项目中封装的逻辑处理是不能改变的包括接口的调用。和异常的一些处理。我们必须之前做好足够的设计。在对各种android的控件定义格式的尽量使用style来完成,来方便不同子项目来调用同一个库项目修改控件属性的修改性。


最后说一下资源冲突问题有上面注意点:

1.工作项目和库项目的资源名称,如果名称重复,编译器会优先使用工作项目(也称为子项目)的资源,这个特点在项目中也可以利用,比如自己想要替换资源文件的东西,只需要命名相同就可以了;

我们知道本项目的优先级最高。但要注意一点的是string里面的国际化问题。一般集成的项目都很完善国际化分辨率什么的都支持,自然自己的项目就支持了这些功能,这样就会出现你在string里面定义了一个key跟项目库里面的key一样但结果值缺以项目库的为准的现象,为什么?因为手机去找value-zn(一般手机默认是语言是中文)的资源了,由于你本来项目里面没有国际化,所以自然去项目库里面找资源了,最容易出现的问题就是app_name总是项目库的名字。


还有一点要提醒的是
在清单文件中声明库组件
在应用项目的清单文件中,你必须加入应用使用、从库项目输出的所有组件的声明。例如,你必须声明全部的<activity>,<service>,<receiver>,<provider>等等,及<permission>,<uses-library>,和类似的元素。必须通过它们的包全名来声明引用的库组件。简单的说就是AndroidManifest.xml文件是要从项目库里面都copy过来的。copy过来的activity等标签包名要写全名例如:
<activity
   android:name="org.sipdroid.sipua.ui.InCallScreen"
   android:excludeFromRecents="true"
   android:label="@string/app_name"
   android:launchMode="singleInstance"
   android:taskAffinity="" >

</activity>

转载自:http://blog.sina.com.cn/s/blog_783ede0301016ip2.html

Android 引用外部项目库笔记

项目中要集成其他项目由于集成项目庞大不想机械的copy,就想将集成的项目做成项目库,这样以后集成项目升级,本项目里面升级扩展也方便。 集成步骤和方法: 1.库项目的结构一个库项目是一个包含了源码和资源...

android 项目库的 使用(引用其他工程)

使用库项目开发 库项目示例代码 SDK中包含了一个叫做TicTacToeMain 的样例应用程序,它展示了相关的应用如何使用Android库项目的代码和资源。TicTacToeMain应用使用...

Facebook登录 分享Android项目库

  • 2016年01月08日 15:55
  • 4.83MB
  • 下载

Android-UI相关开源项目库汇总

抽屉菜单 MaterialDrawer ★7337 - 安卓抽屉效果实现方案Side-Menu.Android ★3865 - 创意边侧菜单FlowingDrawer ★1744 - 向右滑动流...

Android开源项目库汇总

最近做了一个Android开源项目库汇总,里面集合了OpenDigg 上的优质的Android开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等,感兴趣的可以到GitHub上给个star。抽屉...

[Android]发布自己的项目库到jcenter

本文属于学习分享,如有雷同纯属巧合 前言 闲来无聊,看到鸿洋大神的Android 快速发布开源项目到jcenter,在学习和使用bintray-release发布一般项目到jcenter的过程...

Android 公共库(项目库) 的建立方法

本文转自:http://trinea.iteye.com/blog/1512905,感谢作者! 本文主要介绍在android工程中如何将共用代码建成公共包方便其他工程引用、引用后的工程结构分析、...
  • llyrike
  • llyrike
  • 2013年03月25日 18:03
  • 342

最全最新的Vue相关开源项目库汇总

这可能是目前最新的 Vue 相关开源项目库汇总 阅读 11788 收藏 655 2017-03-08 原文链接:github.com 零基础掌握无人驾驶,限时报名中h...

.NET 使用 NuGet 管理项目库

NuGet使用 NuGet 管理项目库Phil Haack 无论多么努力,Microsoft 也没办法提供开发人员所需要的每一个库。 虽然 Microsoft 在全球的员工人数接近 90,000,但全...
  • sleks
  • sleks
  • 2014年11月30日 08:32
  • 2011

手把手教你----使用Nuget管理自己的项目库

什么是NuGet 为什么用NuGet 怎么使用NuGet STEP1 在NuGet官网上注册并获取API Key STEP2 下载NuGetexe STEP3 设置API Key SETP4 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 引用外部项目库笔记
举报原因:
原因补充:

(最多只允许输入30个字)