带资源

关于安卓工程导出带res资源文件的jar的总结

笑着哭i 提交于 2019-11-30 06:16:32
安卓项目导出成jar,自带的res资源不能正常使用,网上各说纷纭,总结一下归纳为五类,但是没有一种能够提供直接将res文件夹打包进jar,并能够使用R文件引用的方式。 打包时包含res文件夹,并通过R文件的反射获取资源: 此种方式最坑爹了,根本就是想当然。 因为jar中的res与应用的res合并是在生成APK时, 此时应用中对R文件中id的引用已经替换为常数,R文件不会在合并后再次更新,所以对jar中res的引用会报错。 打包时,将资源放在asset文件夹内,通过AssetsManager获取指定资源: 目标应用和jar中的assets文件夹会合并,所以可以通过获取该应用的此类文件夹来获取目标资源, ---缺点是如果是图片资源,不能与屏幕适配, 如果有一种适配屏幕的算法,那么此法应该是可行的 另外就是资源会被暴露给二次开发者 使用library项目 参见博客地址: 【这才是正解!】Android 自定义类库打包jar! 谁说不可以打包res 文件? 此类方法不能混淆代码,生成的jar包根本没有资源文件,而 官网说明 也指出此方式不能导出jar文件(并非那篇博客中所说的可以使用bin目录下的jar包),也就是说发布时需要提供library源项目,也就是说你所谓的库代码直接暴露给别人了,这恐怕不是广大开发者所希望的。 在引用此lib的目标项目中会看到一个包含已经编译成class