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是如何解析布局文件的,也许可以有方法。
更多相关文章
- Android平台如何确定deconfig及dtsi的总结
- static 和 visibility hidden 的区别
- [Android从头再来]Android(安卓)JNI相关开发
- android Activity的四种启动模式
- Android(安卓)OOM ,回收布局文件中ImageView占用的内存.Bitmap O
- android分包原理--MultiDex
- Android资源加载机制
- Android(安卓)6.0 读写SD卡权限问题(续)
- [Android(安卓)SQLite]数据存储与访问 - 内部存储