Android项目中打jar包 和 使用

因为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项目。 这个项目可以起任何的名称,任何的报名,设置其他需要设置的字段等,如图1所示。

接着把项目设置成库项目,步骤如下

  1. Package Explorer中, 鼠标右键项目文件夹,点击 Properties.
  2. Properties 窗口, 选择"Android" ,Library属性显示在右下边.
  3. 把"is Library" 单选框选择上,再点击 Apply.
  4. 点击 OK 关闭Properties 窗口.

     这时,这个项目就变成库项目了。

     当然,java项目也可以让其变成一个库项目,非常简单,执行上面的四步。其他程序项目就可以引用库项目了。

    图 1.使一个项目为库项目

    创建manifest文件

    一个库项目的manifest文件也和标准的android应用程序一样,声明所有共享的组件。

    比如APIDemo中的TicTacToeLib 这个例子,库项目声明了Activity GameActivity:

<manifest>
  ...
  <application>
    ...
    <activity android:name="GameActivity" />
    ...
  </application>
</manifest>
    第二步 引用库项目

    如果你开发的应用程序想要包括库项目中的代码和资源,非常简单,引用步骤如下

  1. Package Explorer中, 鼠标右键项目文件夹,点击 Properties.
  2. Properties 窗口, 选择"Android" ,Library属性显示在右下边.
  3. 点击Add ,打开了Project Selection对话框.
  4. 从可用库项目列表选择一个项目,然后点击 OK.
  5. 对话框关闭之后点击 Apply (在Properties窗口).
  6. 点击 OK 关闭Properties 窗口.

    完成以上六步,Eclipse 会重建项目,把库项目中的内容包含进去。 如图2所示

      图 2.让项目引用一个库项目

      如果你想增加多个库项目的引用,使用up和down可以设置他们的相对的优先级和合并顺序。工具在合并引用的库的时候顺序是从低优先级(列表的下面)到高优先级(列表的上面)。 如果不只一个库定义了相同的资源ID,这个工具选择资源时会选择高优先级的资源。应用程序自身拥有最高的优先级,自身的资源zThe application itself has highest priority and its resources are always used in preference to identical resource IDs defined in libraries.

 

      在menifest文件中声明库中的组件

      在manifest文件中必须增加对在当前程序中用到的库项目中的所有的组件。比如,你必须声明任何用到的 <activity>, <service>, <receiver>, <provider>等,<permission>, <uses-library>,和其他类似的元素。

声明库项目中的组件时,必须使用包含包名的类全名。

      在TicTacToeMain例子中,声明库Activity GameActivity :

<manifest>
  ...
  <application>
    ...
    <activity android:name="com.example.android.tictactoe.library.GameActivity" />
    ...
  </application>
</manifest>

    需要了解更多关于androidManifest的信息请参阅 AndroidManifest.xml.


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值