Android很多应用的版本号最后都带了编译的版本号。比如说V1.0.0.125,后边的125就通常使用每次编译之后build history的号码,它是逐次增加,这样就可以区分每个细分的编译版本号,而不用人为的手动修改编译的版本号。对于软件开发和测试验证很有帮助。

以下就以Jenkins编译为实例,讲述如何让你的android project代码引用到Jenkins 编译之后的版本号.

1. 在build script的同级目录下新建一个文件“version.properties”,里边是版本的组成。${env.BUILD_NUMBER}就是我们编译环境里边的编译版本号。

VersionMajorNo = 1
VersionMinorNo = 0
VersionPatchNo = 0
VersionBuildNo = ${env.BUILD_NUMBER}
VersionFull    = ${VersionMajorNo}.${VersionMinorNo}.${VersionPatchNo}.${VersionBuildNo}

2. 既然要在应用里边显示,我们就得在你的应用中,新建一个“Version” class,在需要显示版本号的地方调用它的静态方法就可以显示版本号了,但这里并不是我们想要用到的版本号。

public class Version
{
   public static String getFullVersion()
   {
      return "1.0.0.0"; //这个版本号不是Jenkins编译最终的版本号
   }
}

3. 这一步很关键,关系到第一步中得到的版本信息替换到第二步的Java类文件中去。

在Ant build script中,我们首先要加载“version.properties”这个property 文件,所有在Ant build script的顶部我们要加一行加载这个property file的脚本。

<property file="./version.properties"/>

然后我们需要把我们得到的版本信息重新输出到JAVA Version这个类的文件当中,Ant 脚本如下:

<echo file='\com\quest\spotlightexpress\data\Version.java'>
    package com.quest.spotlightexpress.data;
    public class Version
    {
        public static String getFullVersion()
        {
            return "${VersionFull}";
        }
    }
</echo> 

这样我们编译出来的程序就能使用Jenkins编译时的版本号了。 如果我们编译时的版本号${env.BUILD_NUMBER}是125,则在程序里边显示的版本号是 1.0.0.125 大功告成,你去试一试吧

 

 

  

posted @ 2014-05-28 17:16 wuminxss 阅读(1852) 评论(0) 推荐(0)
摘要: 这两天在做一个Windows Azure blob存储备份的的一个小功能,但是每次使用CloudBlockBlob.UploadFromStream上传本地文件到Blob Storage,总是不成功报出一个“Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host."的异常来。在网上Google了一下,听有人说是上传的文件太大了,把FileStream分段上传就OK了,于是做了如此尝试,但是发现仍然报出了同样的错误。一时 阅读全文
posted @ 2014-02-20 10:30 wuminxss 阅读(374) 评论(0) 推荐(0)
摘要: 类似了Android里边的MVC模式, Windows Phone 有自己的Model-View-ViewModel模式,这种模式的作用就是为了Data和UI分离开来。 阅读全文
posted @ 2013-08-19 15:01 wuminxss 阅读(399) 评论(0) 推荐(0)
摘要: Android NumberPicker外观属性的修改方法 阅读全文
posted @ 2013-07-30 12:20 wuminxss 阅读(5484) 评论(0) 推荐(0)
摘要: Android 并没有提供接口给开发者改变Picker(这里包括TimePicker和DatePicker)的默认的外观,一般情况下只能修改其背景。搜索了一些相关资料,发现很少有关于Picker外观修改的内容,这里抛砖引玉吧,看能不能提供一些思路。 阅读全文
posted @ 2013-07-10 19:51 wuminxss 阅读(40522) 评论(1) 推荐(0)
摘要: 网上摘录的常用日期格式化转换符 阅读全文
posted @ 2013-07-09 15:42 wuminxss 阅读(1280) 评论(0) 推荐(0)
摘要: Windows Phone 8开发队硬件以及系统要有一定要求,在Win7上通过虚拟机搭建Windows Phone 8的开发环境可以让你先睹为快。此博客解决Hyper-V服务不能再虚拟机上运行的问题,希望可以对想做同样尝试的朋友有所帮助。 阅读全文
posted @ 2013-06-25 16:55 wuminxss 阅读(8641) 评论(6) 推荐(2)
摘要: LRU是Least Recently Used的简写,翻译成最近最少使用算法,在内存管理上面很使用。字面上就很好理解,下边引用一个百度百科的例子来理解一下:假设 序列为 4 3 4 2 3 1 4 2物理块有3个 则首轮 4调入内存 4次轮 3调入内存 3 4之后 4调入内存 4 3之后 2调入内存 2 4 3之后 3调入内存 3 2 4之后 1调入内存 1 3 2(因为最少使用的是4,所以丢弃4)之后 4调入内存 4 1 3(原理同上)最后 2调入内存 2 4 1利用LinkedHashMap类,覆写removeEldestEntry方法,实现一个最简单的LRU算法: public s... 阅读全文
posted @ 2013-05-16 15:38 wuminxss 阅读(481) 评论(0) 推荐(0)
摘要: 在Android开发过程中遇到的一些不常见的问题,备忘录至此。一、手机链接eclipse没有反应 console提示 “adb server is out of date.”http://blog.csdn.net/id19870510/article/details/8489486二、设置ProgressDialog的大小的问题, new ProgressDialog以后getWindow.setLayout设置大小无效,必须在show之后调用getWindow.setLayout才有用。 阅读全文
posted @ 2013-04-19 11:02 wuminxss 阅读(124) 评论(0) 推荐(0)
摘要: 在Android开发过程中,不同的项目之间总会复用到一些有用的代码,这里记录下来,方便以后使用。一、Android判断点击区域是否在指定的View之内 @Override public boolean onInterceptTouchEvent(MotionEvent ev) { Rect rect = new Rect(); View.getGlobalVisibleRect(rect); if (rect.contains((int)ev.getRawX(), (int)ev.getRawY())) { ... 阅读全文
posted @ 2013-04-12 17:42 wuminxss 阅读(177) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示