android jar打包,代码,资源共享的问题

已经完成好的android项目或者是一个模块,怎样整合到新的一个项目中。一般使用作为library库或者导出jar代码供给其他项目使用。也可以两种方法结合来用。下面介绍几种情况:

1.把项目直接作为library库,然后在其他项目要使用,add就行。这样的方法方便,快捷。可以引用里面的代码,各种资源。涉及到activity跳转,uses-permission权限,广播等需要在AndroidManifest注册。其中,activity需要完整的原始路径。缺点是,暴露源码。详细方法:http://blog.csdn.net/chenrunhua/article/details/8822906

 

2.直接导出项目src下面代码生成jar代码包。但不包含资源,activity。只是纯粹的代码,供其他项目调用。就算把资源以及activity一起打包jar。也是用不了,其中资源的打包,要经过处理,特别的调用才能用。因为一个android项目里面需要加载的资源都有系统自动生成的唯一的id。如果打包在jar里面的资源,没有经过处理,肯定找不到id。用一个简单的补充的方法就是,代码生成jar了放在新项目libs文件夹下,其他资源,activity直接复制到新项目中。或者,其他资源,activity所在项目作为library,在src下的activity可以删掉了。这样是不暴露代码的源码,只暴露activity。详细方法:http://blog.csdn.net/mengweiqi33/article/details/25824295

 

3.打包代码,activity生成jar。资源,layout那些就复制到新项目中。前提是,打包前要做一下处理,新建一个类,写一个找layout,控件id类,利用反射根据资源名字获取资源ID(其实系统也自带了根据资源名字获取资源ID的方法getResources().getIdentifier("main_activity", "layout", getPackageName());第一个参数是资源的名字,第二个参数是资源的类型,例如layout, string等,第三个是包名字)。所以涉及到UI的layout,控件id都要修改成上面找id形式。之后这个找id的类放在src,代码,activity一起打包。资源,layout复制到新项目。就会找到相对应布局。详细方法:http://blog.csdn.net/hhhccckkk/article/details/9313999

 

4.介绍第四个方法,可以在第三点中基础上修改。打包好的src下面代码,activity的jar。新建一个项目,把jar,资源都放进去。然后把这个新项目做library,其他项目add,就能完整使用。这种方法,不暴露源码,个人觉得也是很方便。复制资源到一个新项目很简单,把res文件夹复制进去替换就行。

 

5.完整打包jar。把src下面全部打包,涉及到的activity的layout全部转换成代码。用viewgroup布局转换成代码。这样把资源放到assets里,一起打包。如果UI元素很少,可以尝试去做。详细方法见解决问题二:http://blog.sina.com.cn/s/blog_6d0ccfd90101959n.html

 

其实,资源是可以打包,只要放在assets文件下,有方法获取bitmap,drawable资源。只是没有办法获取layout以及里面的控件id。所以意义不大。链接:http://blog.csdn.net/mnorst/article/details/9065067

看不同场合,灵活使用不同的方法。

你可能感兴趣的:(android,jar,library,库)