android jar包

参考文档:1:jar包中包含资源,资源放在assets文件夹中http://my.oschina.net/u/614511/blog/76957

               2:jar包中不包含资源,资源放在主工程的res中 http://my.oschina.net/handsomeban/blog/150220

            3:jar包中不包含资源,新建一个目录存放资源 http://blog.csdn.net/wletv/article/details/8547797

             3方案获取资源方法:http://riddickbryant.iteye.com/blog/436693  

             下面两篇说出了原理,不方便使用。

               http://blog.csdn.net/p106786860/article/details/12152011

               http://blog.csdn.net/xiaanming/article/details/9257853

例一:

 在Android中可以将资源文件放在assets目录(可以有子目录)中和程序一起打包为jar,在其他项目引用时可以只引用jar包,不需要导入资源文件,在编译应用时会将jar包assets目录中的文件跟应用中的assets目录中的文件合并,如果jar中的文件和应用中的文件重名在编译的时候会报错“Error generating final archive: Found duplicate file for APK”提示有重名文件。

然后就可以应用中通过如下方法获取资源文件

1 Drawable.createFromStream(am.open("login_btn_src_pressed.png"), "login_btn_src_pressed") 

其中的am对象为AssetManager实例,通过Activity.getAssets()获得,用来访问assets目录资源

android中各个平台提供的SDK的jar包就是这样弄的。

第二中方案就是把代码导成jar包,然后将资源相应的添加到主工程的目录下就可以了。

例三:新建一个工程,在工程中scr文件夹下创建com/lj/jartest/JarTest.java

         在src目录下新建目录resource,在resource目录下存放图片ic_launcher.png

        不可在项目根目录下新建文件夹存放资源,即跟src同一层级的文件夹,这样会找不到。

        资源也可以按android的存放方法存放,即放在res目录下对应的文件夹下。

        在JarTest.java中创建方法:

  

public Bitmap getBimtap(Context context) {
		InputStream is = getClass().getClassLoader().getResourceAsStream(
				"resource/ic_launcher.png");
		return BitmapFactory.decodeStream(is);
	}

 

           将工程src文件夹导成jar包,将jar包加入主工程,主工程可以通过getBitmap(Context context)方法获取到Bitmap对象. 布局资源可以用java代码实现,或许可以研究一下android是如何解析布局文件的,也许可以有方法。

猜你喜欢

转载自892848153.iteye.com/blog/1991289