推荐安卓开发神器(里面有各种UI特效和android代码库实例)
开发Android应用的时候,对于可用于多个应用的公用的部分,或是打算发布给第三方进行应用集成的部分,要把这部分打包成类库怎么做呢?
众所周知,Android应用使用ADT打包成apk,apk中包含了运行程序所需要的一切,包括:class、asset、res、AndroidManifest.xml等。而对于类库项目(library project),ADT生成的jar包里只包含编译生成的class文件,不包含res资源文件,res只能在应用项目打包apk的时候打进apk包。
那考虑自行导出jar如何? 针对类库项目(library project)执行导出(export),导出时把res打上勾,这样导出的jar包里确实包含了res下的资源文件。很不幸,经反复试验得知,即使在jar包里包含了res,目标应用项目在编译时仍然不会对jar包里的res进行处理,打成apk包时是不会包含jar里的res的。这样一来,通过在jar包里包含res以供目标应用项目使用的路走不通了。
先做个总结:
1.android类库(library project)能支持打包成jar,并且jar里的字节码类文件能够成功被打进目标应用项目的apk包里。如果类库中不包含activity等需要界面资源的内容,或者在类库中手工读取资源,而不使用ADT的从res下读取资源的机制,这个类库jar的使用完全没问题,不需特别关注。
2.res下的资源文件打进jar包没有意义,目标应用项目在打apk包时不会从jar中读取res打进apk。猜测不支持从jar中读res的可能的原因是担心资源名与目标应用项目中重复(纯属个人猜测,作不得准)。
打不成jar包,直接把源码给出去又不合适,怎么办?
下面是一个办法:
1.开发类库项目(library project,即Project -> Properties -> Android -> Check "Is Library"),正常编译,生成jar包(在bin下,jar中只包含src下的类生成的字节码,不包含gen下自动生成的类,也不包含res)。假设这个类库叫做mylib,生成的jar名称为mylib.jar。
2.新建一个类库项目(library project,同样设置 Project -> Properties -> Android -> Check "Is Library" ),假设这个类库叫做mylibdeploy,设置其命名空间与mylib相同。在mylibdeploy下新建一个libs目录,把mylib.jar导入到libs目录下。再将mylib项目下的assets、res目录复制到mylibdeploy下。
3.开发目标应用(常规Android project,不勾选“Is Library”),在这个目标应用项目中设置对mylibdeploy的引用。引用方法如下: 打开android应用设置 Project -> Properties -> Android , 点“Add...”按钮选择mylibdeploy。经如此设置后,在目标应用项目中就可以引用mylib中的类了。最后编译、导出成apk,这个apk里会包含mylibdeploy下的res,也会包含相应的gen下自动生成的类编译后的文件。
对于需要向外发布的类库,将mylibdeploy直接发出。可以将其压缩打包成zip或者其它的什么格式,只要使用方能解开就行。使用方(目标应用开发方)按照第3步的方式引用mylibdeploy,就能正常使用mylib.jar,正常打包apk。
当然,在打包jar(上例中的mylib.jar)时,可以根据需要对其进行部分混淆生成不易被反编译的jar包。
这种发布包的办法并不完美,期待ADT的改进,未来也许可以直接发布JAR。
相关推荐
Android 自定义类库打包jar 文档描述如何自定义一个可以供别人使用的jar
android类库的详细介绍!物超所值
Android类库介绍.pdf`
android 开发的核心类库介绍,入门必读
252个E4A类库打包
axure for android的类库,控件。自己搜索网上目前能找到的类库。包括了s4 的壳子,Android 4.0 的一些控件。还有一些其他的控件
C#.NET 封装DLL类库方法,详细介绍了两种将类封装成DLL类库的方法
非常好用的一个文档 不过有点不全 暂时还没有找到一个完全版的中文的
Android SDK类库简介 Android SDK类库简介 Android SDK类库简介 Android SDK类库简介
Android常用类库 包含了APP,Date,Http,Keyboard,MD5,Convert等等常用类型。 (部分来自网上,我只是整理者)
这是一些在Java环境下使用Ajax编程的常用类库组件包,里面主要涉及dom4j、jaxen、commons-httpclient、mysql-connector等JAR包文件。这些都是比较常用的JAVA类库,应该下载收藏。
最新最全的Basic4Android类库,包含库文件&范例。希望对大家有帮助。
本类库是集成了播放类库,效果类库,网页操作类库,系统类库,js命令类库,悬浮窗类库的的压缩包,欢迎下载使用
Android下载器类库,支持多种状态 下载,暂停,等待,完成,错误.zip
PanoramaGL是世界上第一个开源的实现360度全景图像的Android类库。支持球,立方体,圆柱。有重力加速等。
CI中使用其他类库解决方法参考CI中使用其他类库解决方法参考CI中使用其他类库解决方法参考CI中使用其他类库解决方法参考
Calligraphy 是一个用来简化 Android 应用使用自定义字体的类库, 该类库会自动查找应用中的 TextView 并设置其使用的字体。效果图:使用:添加依赖库(Download (.aar))dependencies { compile 'uk.co....
Android引用第三方类库的方法实例,以引用一个图片处理类库为例,演示从调用到使用的过程,包括引入语句、定义,使用等,获取图片转换为Bitmap,把Bitmap图像转换为Drawable,设置背景等。
1.实现android版本更新 2.对kotlin适配,调用更简单 3.自定义接口协议,可以不改变现有项目的协议就能使用 4.支持get,post请求 5.支持进度显示,对话框进度条,和通知栏进度条展示 6.支持后台下载 7.支持强制更新 8....