Android工程依赖:android中打包带有Activity以及资源文件的jar包在工程中调用

来源:互联网 发布:马龙职业生涯数据 编辑:程序博客网 时间:2024/04/19 02:01

这是因为android的特殊性,android不仅有java文件还有res文件,需要研究如何将资源以及activity文件打包成jar文件供其他 项目调用,最终多方尝试,找到如下两种方案。方案二是从android的官方文档中找到的完美解决方案。方案二更优,方案一要求两个工程包名最好一样,而 方案二不需要包名一致。
  方法一
1将A工程 的src文件夹下面所有的内容 导出 jar包。
2保留 res下的 图片,xml 等资源文件, 还有 AndroidManifest.xml 的内容。
3将A工程的jiar包 导入到B工程中, res中的文件放到相应的文件夹下面。 AndroidManifest里面的Activity复制到B的对应文件。
这个时候存在两个工程 包名 不相同的情况, 容易出错, 最好两个工程保持一致。
这样完成了 B 工程 对 A工程的集成。

  
   方法二:(android的官方文档)
 将其中一个项目设置为引用的库,在另一个项目中添加这个库引用。
  简单点的做法是
  在被引用项目A中的project-properties 中添加一行 android.library=true
  在引用的项目B 中添加android.library.reference.1=../A
  其中 1表示引用的包的序号,“../A”表示引用的项目的路径
  具体做法如下:
第一步,把普通的android project设置成库项目
  库项目也是一个标准的android项目,因此你先创建一个普通的android项目。 这个项目可以起任何的名称,任何的报名,设置其他需要设置的字段等,。
  接着把项目设置成库项目,步骤如下
在Package Explorer中, 鼠标右键项目文件夹,点击 Properties.
在Properties 窗口, 选择"Android" ,Library属性显示在右下边.
把"is Library" 单选框选择上,再点击 Apply.
点击 OK 关闭Properties 窗口.
  这时,这个项目就变成库项目了。
  当然,java项目也可以让其变成一个库项目,非常简单,执行上面的四步。其他程序项目就可以引用库项目了。
  605x419
   图 1.使一个项目为库项目
创建manifest文件
  一个库项目的manifest文件也和标准的android应用程序一样,声明所有共享的组件。
  比如APIDemo中的TicTacToeLib 这个例子,库项目声明了Activity GameActivity:
  <manifest> ... <application> ...<activity android:name="GameActivity" /> ...</application> </manifest>
第二步 引用库项目
  如果你开发的应用程序想要包括库项目中的代码和资源,非常简单,引用步骤如下
在Package Explorer中, 鼠标右键项目文件夹,点击 Properties.
在Properties 窗口, 选择"Android" ,Library属性显示在右下边.
点击Add ,打开了Project Selection对话框.
从可用库项目列表选择一个项目,然后点击 OK.
对话框关闭之后点击 Apply (在Properties窗口).
点击 OK 关闭Properties 窗口.
  完成以上六步,Eclipse 会重建项目,把库项目中的内容包含进去。
 
  让项目引用一个库项目
  如果你想增加多个库项目的引用,使用up和down可以设置他们的相对的优先级和合并顺序。工具在合并引用的库的时候顺序是从低优先级(列表的下面)到高优先级(列表的上面)。 如果不只一个库定义了相同的资源ID,这个工具选择资源时会选择高优先级的资源。应用程序自身拥有最高的优先级,自身的资源zThe application itself has highest priority and its resources arealways used in preference to identical resource IDs defined in libraries.
  在menifest文件中声明库中的组件
  在manifest文件中必须增加对在当前程序中用到的库项目中的所有的组件。比如,你必须声明任何用到的 <activity>, <service>, <receiver>,<provider>等,<permission>,<uses-library>,和其他类似的元素。
  声明库项目中的组件时,必须使用包含包名的类全名。
  在TicTacToeMain例子中,声明库ActivityGameActivity :
  <manifest> ... <application> ...<activity android:name="com.example.android.tictactoe.library.GameActivity"/> ... </application> </manifest>
  需要了解更多关于androidManifest的信息请参阅AndroidManifest.xml.

 

阅读全文
0 0
原创粉丝点击