如何发布带静态资源的库——android 篇

1.首先要使用 android sdk 提供的命令行工具处理已有的项目:

1 cd YourProjectDir
2 android update project -p ./

2.上一步生成的 build.xml 中,会有一个对 custom_rules.xml 的引用,这个引用是可选的,没有 custom_rules.xml 也不会影响编译。但这个文件正好是用来添加自定义编译步骤的,要把 assets 资源添加到 jar 包中,就要创建这个文件。在工程目录下创建 custom_rules.xml 后,将以下内容添加到其中:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="custom_rules">
 3     <target name="-post-compile" if="${project.is.library}">
 4         <echo>Post Compile: add assests from ${asset.absolute.dir} to ${out.library.jar.file}</echo>
 5         <jar destfile="${out.library.jar.file}" update="true">
 6             <zipfileset dir="${asset.absolute.dir}" prefix="assets" excludes="**/*.java ${android.package.excludes}"/>
 7         </jar>
 8         <echo>Post Compile: rename ${out.library.jar.file} to ${out.absolute.dir}/${standalone.jar.file}.jar</echo>
 9         <delete file="${out.absolute.dir}/${standalone.jar.file}.jar" quiet="true"/>
10         <rename src="${out.library.jar.file}" dest="${out.absolute.dir}/${standalone.jar.file}.jar"/>
11     </target>
12 </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 即可。

注意,这种做法的前提是我的工程并不算大,自动编译还能跟上修改,如果是大工程,还是不要自动编译了。

时间: 2024-10-12 21:39:06

如何发布带静态资源的库——android 篇的相关文章

使用jquery静态资源公共库cdn及回退地址

现在互联网巨头都提供的有一些静态资源公共库为广大的开发者们提供了便利: 因为他们有着遍布各地的cdn节点:所以使用这些资源库既可以加速加载资源:又能节省流量:何乐而不为呢? 然而因为有一堵神圣的墙的原因:我等生活在天朝的子民是没办法享用谷歌的资源库了: 不过百度的资源库也是挺不错的:推荐尝试:http://cdn.code.baidu.com/ 这里以jquery为例: <script type="text/javascript" src="//apps.bdimg.c

国内站点经常使用的一些 CDN 静态资源公共库加速服务

web开发人员们的福利来了..旨在为大家提供更快很多其它更好的静态资源库的CDN载入库方案! CDN公共库是指将经常使用的JS库存放在CDN节点,以方便广大开发人员直接调用. 与将JS库存放在server单机上相比,CDN公共库更加稳定.快速.一 般的CDN公共库都会包括全球全部最流行的开源JavaScript.JQuery等库.你能够在自己的网页上直接通过script标记引用这些资源.这样做不仅能够为您 节省流量.还能通过CDN加速.获得更快的訪问速度.注意站点要支持ssl的有些资源慎用.最好

国内网站常用的一些 CDN 静态资源公共库加速服务

web开发者们的福利来了.. CDN公共库是指将常用的JS库存放在CDN节点,以方便广大开发者直接调用.与将JS库存放在服务器单机上相比,CDN公共库更加稳定.高速.一 般的CDN公共库都会包含全球所有最流行的开源JavaScript.JQuery等库,你可以在自己的网页上直接通过script标记引用这些资源.这样做不仅可以为您 节省流量,还能通过CDN加速,获得更快的访问速度.注意网站要支持ssl的有些资源慎用.最好的方法就下载到网站的对应目录,然后代码调用即可. 目前国内的一些比较大的公共C

使用django发布带图片的网页(上)

如何使用django发布带静态图片的网页呢? 在settings.py里加入下面内容 STATIC_ROOT = os.path.join(os.path.dirname(__file__),'static')STATICFILES_DIRS = ( ('css',os.path.join(STATIC_ROOT,'css').replace('\\','/') ), ('js',os.path.join(STATIC_ROOT,'js').replace('\\','/') ), ('imag

百度静态资源(JS)公共库

     例如: chosen http://apps.bdimg.com/libs/chosen/1.1.0/chosen.jquery.min.js classlist http://apps.bdimg.com/libs/classlist/2014.01.31/classList.min.js cookies.js http://apps.bdimg.com/libs/Cookies.js/0.4.0/cookies.min.js dojo http://apps.bdimg.com/l

解决从私库下载下来已经编译好的项目核心部分,改变其编译后的静态资源后无法打包进改变部分的问题

首先,本人使用 idea开发. 情景:在idea上改变从公司私库下载下来的公司产品,核心部分已经是编译后下载下来的,其中包含所有静态资源.             在idea中改变静态资源,添加或者删除或者改变一部分后,在使用maven命令打包或者 直接用 package插件打包无法将改变后的打包进war.(此部分无法install进maven库) 分析:应该是使用maven打包的时候,首先会从maven库中寻找进行打包,而恰好公司产品核心部分是编译后从私库down下来的,所以maven库中肯定

Charles学习(四)之使用Map local代理本地静态资源以及配置移动端代理在真机上调试iOS和Android客户端

前言 问题一:我们在App内嵌H5开发的过程中,肯定会遇到一个问题就是我不想在chrome的控制台中调试也不想在模拟器中调试,我想要在真机上调试,那么如何解决这个问题呢? 问题二:我们期待调试时达到的效果就是和Charles学习(二)之使用Map local代理本地静态资源在Mac上调试移动端中实现的效果相同,也就是说代码更改手机端页面实时更新,这个问题如何解决? 方案 问题一解决方案:使用真机,需要一台iPhone和一台Android,在真机上安装测试包 问题二解决方案: 配置移动端代理 | 

Nginx(一):静态资源web服务器配置详解

一.Nginx概述 1.Nginx简介 解决基于进程模型产生的C10k问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万现状.2006年俄罗斯编写.全称为engine X,缩减合并称为nginx.  官方站点:http://nginx.org/. 2013年发出企业版Nginx Plus 二次发行版:tengine, OpenResty- - 2.Nginx的特性 1) 模块化设计.较好扩展性:早期不支持模块的动态装卸载 2) 高可靠性:基于master/worker模式 mast

转转hybrid app web静态资源离线系统实践

一.前言 目前的转转app是一个典型的hybrid app,采用的是业内主流的做法: 客户端内有大量业务页面使用webview内加载h5页面承载. 其优点是显而易见的,即:web页面上线频度满足快速迭代的业务需求,不受客户端审核和发版的时间限制,也可以将各个业务线的开发工作分摊到各个业务的fe团队上,使得个业务线可以并行开发. 而缺点,则不言而喻的在于客户端内webview加载h5页面,准确来说是web应用的性能和体验,是肯定不及客户端的.本篇文章中,笔者将会梳理立足于本团队内,根据团队的特点和