如何发布带静态资源的库——android 篇
1.首先要使用 android sdk 提供的命令行工具处理已有的项目:
cd YourProjectDir
android update project -p ./
2.上一步生成的 build.xml 中,会有一个对 custom_rules.xml 的引用,这个引用是可选的,没有 custom_rules.xml 也不会影响编译。但这个文件正好是用来添加自定义编译步骤的,要把 assets 资源添加到 jar 包中,就要创建这个文件。在工程目录下创建 custom_rules.xml 后,将以下内容添加到其中:
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
<target name="-post-compile" if="${project.is.library}">
<echo>Post Compile: add assests from ${asset.absolute.dir} to ${out.library.jar.file}</echo>
<jar destfile="${out.library.jar.file}" update="true">
<zipfileset dir="${asset.absolute.dir}" prefix="assets" excludes="**/*.java ${android.package.excludes}"/>
</jar>
<echo>Post Compile: rename ${out.library.jar.file} to ${out.absolute.dir}/${standalone.jar.file}.jar</echo>
<delete file="${out.absolute.dir}/${standalone.jar.file}.jar" quiet="true"/>
<rename src="${out.library.jar.file}" dest="${out.absolute.dir}/${standalone.jar.file}.jar"/>
</target>
</project>
其中standalone.jar.file 是定义在 local.properties 中的一个配置,表示你要生成的 jar 包的名字,当然你要写在别的地方也不是不行。这段代码做的事情就是在 compile 之后打一个 jar 包,把 assets 目录中的文件都压缩到 jar 包的 assets 目录中。然后将老版本的 jar 包删除,并将刚生成的 jar 包改成我们要的名字。这样打出来的 jar 包中会包含 assets 资源,apk 可以直接引用。为了不产生命名冲突,建议将 jar 包中的 assets 资源都放在一个以库名称命名的子目录中,这样 apk 中的资源就不会和库里的资源冲突了。
3.为了使用 eclipse 调试,我们还需要配置 eclipse 工程(手上的项目暂时还不方便切换 android studio,以后再说),实现调用 ant 自动编译。首先你的 path 环境变量里肯定要有 ant,windows 平台建议安装 winant,mac 平台直接安装 ant 就好。然后要配置 eclipse,达到每次修改原文件都自动调用 ant 编译的效果。具体方法是点击 project->properties,选择 builders,添加一个 builder,配置如图所示。然后把所有默认的 builder 都不选,只勾选新添加的 builder 即可。
注意,这种做法的前提是我的工程并不算大,自动编译还能跟上修改,如果是大工程,还是不要自动编译了。
如何发布带静态资源的库——android 篇的更多相关文章
- 国内站点经常使用的一些 CDN 静态资源公共库加速服务
web开发人员们的福利来了..旨在为大家提供更快很多其它更好的静态资源库的CDN载入库方案! CDN公共库是指将经常使用的JS库存放在CDN节点,以方便广大开发人员直接调用. 与将JS库存放在serv ...
- CDN-常用静态资源公共库
js.css 等静态资源可以放在自己的服务器上,或者引用网络上的公共库使用(CDN) CDN 读取失败时从本地加载 <script src="https://code.jquery.c ...
- 使用django发布带图片的网页(上)
如何使用django发布带静态图片的网页呢? 在settings.py里加入下面内容 STATIC_ROOT = os.path.join(os.path.dirname(__file__),'sta ...
- 百度静态资源库CDN库, cdnjs库,引入JS
不适用本地引入js文件,而使用其他服务器引入JS文件,1,减轻服务器压力2,速度快3,可以缓存 cdnjs库,更新比较快https://cdnjs.com/ cdn库 引入JS文件如:jquerybo ...
- Charles学习(四)之使用Map local代理本地静态资源以及配置移动端代理在真机上调试iOS和Android客户端
前言 问题一:我们在App内嵌H5开发的过程中,肯定会遇到一个问题就是我不想在chrome的控制台中调试也不想在模拟器中调试,我想要在真机上调试,那么如何解决这个问题呢? 问题二:我们期待调试时达到的 ...
- 转转hybrid app web静态资源离线系统实践
一.前言 目前的转转app是一个典型的hybrid app,采用的是业内主流的做法: 客户端内有大量业务页面使用webview内加载h5页面承载. 其优点是显而易见的,即:web页面上线频度满足快速迭 ...
- H5静态资源本地化实践
现在很多app都是通过webview内嵌H5的页面,这种方式的好处就是无需发版就能更新线上的内容,而且可以做到多平台的统一开发,节约开发成本.但是这种模式也带来了一定的问题,web开发很大程度依赖于网 ...
- Python资源 --Python库
环境管理 管理 Python 版本和环境的工具 pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. virtualenv – 创建独立 Python 环境的工 ...
- nginx静态资源缓存策略配置
1. 问题-背景 以前也经常用nginx,但用的不深,通常是简单的设置个location用来做反向代理.直到今天给客户做项目碰到缓存问题:客户有个app,只是用原生做了个壳,里面的内容都是用h5写的, ...
随机推荐
- XML中的转义字符
HTML中<, >,&等有特别含义,(前两个字符用于链接签,&用于转义),不能直接使用.使用这三个字符时,应使用他们的转义序列,如下所示: & 或 & &a ...
- plain framework 1 1.0.4 更新 稳定版发布
PF由于各种因素迟迟不能更新,此次更新主要是更新了以往和上个版本出现的内存问题,该版本较为稳定,如果有用到的朋友请更新至此版本. PF 1.0.4 修复1.0.0.3更新后产生的内存问题,可能导致网络 ...
- url中的特殊符号含义
1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http://twitter.com/username改版后,就变 ...
- 简单轮播js实现
<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8" ...
- SQL Server 中使用数据类型表示小数
在使用的时候发现一个问题,由于编程的习惯,当数据库中需要存储小数的时候,就想当然的使用了float类型,可结果太让人意外了. 数据库中存储了0.5没问题,当使用0.6的时候,得到的确是0.599999 ...
- python学习之路 第一天
1.Python 3 安装. 2.Python 开发工具 PyCharm安装. 3.print("hello world!") #打印hello world! 注:Python ...
- 关于我-dinphy简介
别 名:孜_行 英文名:dinphy QQ交流群:588266650 兴趣爱好:听音乐.打篮球.热衷于诗词文学 专 业:计算机 了 解:windows及Linux.android的基本 ...
- oracle Entity db.Database.SqlQuery ORA-01843: 无效的月份
原因是oracle的日期格式化格式和本地语言环境的日期格式不一致导致的. 一般情景为oralce格式为英文格式 本地服务器或者开发机的环境为中文环境. 使用Dbcontext 实例一般不会有问题. 但 ...
- BZOJ 3158: 千钧一发
3158: 千钧一发 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1201 Solved: 446[Submit][Status][Discuss ...
- BZOJ 1176: [Balkan2007]Mokia
1176: [Balkan2007]Mokia Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 2012 Solved: 896[Submit][St ...