把自己的程序打成jar包

我们写程序的时候往往需要把自己的程序打包成jar 包,给第三方调用。Eclipse让我们非常方便的可以导出jar 包。但是当程序里需要用到res里的资源时,往往就会出现问题。因为统自动生成的 R 类如果被打到 jar 包中后,就失去了索引资源的作用。导致封装成 jar 包的 view 无法获取对应资源。因为 R 类的属性值是在应用编译打包时由系统自动分配的。 R 类打包之后失效,实际是因为 R 类的内部类里面的属性失效,因为打包之后这些属性的值就固定了,但是实际项目中这些值是在编译时有系统自动分配的,无法在编译前固定。
本文就提供一种方法,解决这个问题。
首先建立一个AndroidJar项目。这个项目将来就是要打成jar 包的项目。
结构如下:

然后再建立一个AndroidJarTest项目。这个项目就是应用jar 包的项目。
AndroidJar写好后,就是导出jar 包。相信大家都非常熟悉,步骤如下:
1.选中AndroidJar,右键选择export
2.选择 jar file 。只需导出源码。如图:

1.然后点击finish。就可以导出jar包了。
AndroidJarTest项目对jar包的应用方法。
     1.AndroidJarTest项目下建立一个libs文件夹,再把刚才导出的jar包放到里面。再把jar包加到java build path的路径里。

2.因为刚才只是把AndroidJar的源码打成了jar包。但是资源并没有打包。所以现在要把AndroidJar项目里的资源。拷贝到AndroidJarTest的项目下。具体就是res下的文件。因为太简单,这里就不演示怎么拷了。
2.最后要在AndroidJarTest的AndroidManifest.xml里注册AndroidJar里的activityservicereceiver。很多广告插件都是这么做的。相信大家都非常熟悉。
[mw_shl_code=java,true] <application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".AndroidJarTestActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<!-- AndroidJar 里的activity,service和receiver-->
<activity
android:name="com.song.test.FirstActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>

<activity
android:name="com.song.test.AndroidJarActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>

<service android:name="com.song.test.service.HelloService" >
</service>

<receiver android:name="com.song.test.receiver.ToastReceiver" >
<intent-filter >
<action android:name="MAKE_TOAST_ACTION" />
</intent-filter>
</receiver>
<!-- AndroidJar 里的activity,service和receiver-->
</application>
[/mw_shl_code]
    在AndroidJarTest里就只要一个其他的activity。它负责跳转到AndroidJar里。AndroidJar里就三个按钮分别是启动一个服务,每隔10秒就发出一个广播,然后广播接收到后就弹出一个toast,“大家好,我是苍老师!”和一个停止服务。最下面一个就是跳到一个有苍老师的界面。


程序相当简单。其中根据资源创建view,和根据资源找到相应字符的核心类为ResManager。大家可以下载源码,研究研究。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值