如何使用jenkins android编译Android源码

两天热门文章
最新推荐文章jenkins,jenkins ci,jenkins 使用,jenkins 下载,jenkins 安装,jenkins是什么,jenk..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口1785人阅读
正忙于工作,却被打断要给市场部门打个包?
测试部门要求每天有新的版本,可以验证bug?
策划要求每天有新的版本,可以跟进审查?
每次集成版本,总担心合并带来问题,要把主要模块手动跑个遍?
如果你遇到这些情况,还不得不手动打包,人工测试,那这篇文章正适合你。
持续集成(continue intergration,简称CI)系统,就是一个可以定时从源代码管理系统下载代码,调用编译器编译链接,调用测试工具测试,部署产物,并通知相关人员的自动化系统。
它的本质只是一个定时器,时机一到,就调用设置好的动作。
它需要跟其他各种系统打交道(代码管理、编译、测试等),是一个调度者。
它的实现可以很简单,比如使用windows的任务计划工具、unix的cron这些定时服务,定期调用一些脚本即可。
更方便的做法,是直接使用一些持续集成工具,简化脚本的编写。使用者往往只需要填写一下集成的周期,项目的SVN地址,项目工程文件的路径,测试文件的路径,产物的路径,通知者的email地址等,就可以让一套系统建立起来。
比较常用的持续集成工具,有Jenkins、Hudson、TeamCity等。
这里介绍下使用Jenkins,对一个cocos2dx手机网游的持续集成实践。
项目目前支持3个平台,windows、android、iOS,希望可以每日构建出这三个平台的版本。策划、测试人员也可以按需要随时构建版本
版本采用网页下载的形式提供给项目组成员
项目构建成功时,发送邮件给策划、测试;构建失败时,发送邮件给开发
版本构建成功并不只是编译通过,还希望跑一些集成测试,自动测试通过后,才认为版本构建成功
1.持续集成CI服务器的安装
Jenkins在各系统下的安装配置,网上的资料很多,这里就不再赘述了
因为要构建windows和iOS版本,因此在一台windows笔记本和一台mac air上各自安装了对应的Jenkins版本
2.Windows版本的构建
安装msbuild插件,使用这个插件,只要填入项目sln文件路径即可完成windows版本的编译工作
3.构建产物发布与邮件通知
目前我们使用批处理脚本,将exe和资源打包成zip文件的方式生成windows版产物
使用Jenkins的artifacts功能,在网页上提供产物的链接
使用Jenkins的Email Notification功能,当构建不成功时,发送邮件给开发人员
使用Email-Ext插件,当构建成功时,发送邮件给产品人员
4.android版本的构建
首先使用ant,完成apk的批处理生成、打包功能(网上资料很多)
在Jenkins里使用批处理脚本,构建并发布android版本产物
5.ios版本的构建
在mac上的jenkins安装xcode插件,类似msbuild插件,原则上填入项目文件路径即可完成编译链接工作,但因为需要使用keychain签名,遇到了一些麻烦。
mac上的jenkins,会在os x上新建一个jenkins用户,并使用这个用户的keychain进行签名
目前采取的方式,从之前成功签名的用户keychain里,导出证书、私钥对给jenkins用户的keychain;将可用账户的provision profile拷贝到jenkins用户的Library/MobileDevice目录下。做完这些,就签名成功了。
目前使用两个jenkins主机,提供多个版本的构建。其实jenkins提供master/slave模式,只需要在master上安装jenkins,并添加slave节点,即可以进行分布式编译。
6.游戏的自动化测试
使用CI,自动构建部署只是第一步;在构建过程中,运用自动化的手段,对产物进行测试,对代码进行检查,才能最大化的发挥持续构建的威力。
项目主要使用lua开发,选择了luaunit作为测试框架,输出xml测试报告。在jenkins中指定测试报告的目录路径,就可以自动在测试失败时通知开发人员了。
目前的手游项目,只编写了一些简单的集成测试脚本。在脚本中对游戏的主要界面进行跳转,并在脚本中检查跳转是否成功;在脚本中调用一些功能函数,检查执行过程中是否产生异常。
这种测试方式,要求使用构建好的客户端产物作为测试主体,使用特殊的测试方式跑游戏。
使用Jenkins搭建一个CI系统并不是一件很困难的事情,相比它带来的好处,很值得进行尝试。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:98357次
积分:1567
积分:1567
排名:第10959名
原创:51篇
评论:65条
(1)(2)(1)(2)(2)(1)(1)(3)(3)(1)(2)(1)(2)(3)(1)(1)(1)(3)(1)(1)(1)(2)(1)(2)(2)(1)(2)(4)(1)(1)(4)持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。其中包含一些代码静态检查工具,自动打包和自动测试功能。
持续集成流程
启动Jenkins
1、& 安装jdk
从略,建议1.6或以上版本,配置好环境变量。
2、& 安装tomcat
从略,安装完调试下tomcat是否正常。
3、& 安装ant
下载zip包,解压后配置好环境变量。
4、& 安装jenkins
下载war包,命名为Jenkins,拷贝到tomcat/webapps目录下。
5、& 安装Android SDK
下载安装,完成后配置好Android_SDK_HOME环境变量。此步骤主要用于进行android自动化测试,若不进行此项可略过。
安装完成后启动tomcat/bin/startup.bat文件(linux下是startup.sh),在浏览器输入http://localhost:8080/jenkins,8080为tomcat端口,即可访问jenkins服务器。
配置Jenkins
1、& JDK配置
新增JDK,指定JDK名字和JAVA_HOME
2、& ANT配置
新增ANT,指定ANT名字和ANT_HOME
3、& Maven配置
从略,本文未使用到Maven,具体配置方法参考Google。
4、& Subversion
选择1.6版本SVN,勾选Update default Subversion credentials &cache after successful authentication
5、& 邮件通知
填写SMTP server、Default user E-mail suffix、System Admin E-mail Address、Jenkins URL、勾选Use SMTP Authentication,填写User Name、Password、Use SSL、SMTP port、Chareset(UTF-8) 、Default Content Type(默认)、Default Recipients(默认收件人),配置完成后可进行测试邮件。
6、& Jenkins URL
配置该URL,用于别人访问。
&&&&&& 插件管理
1、& Hudson Subversion Plug-in,jenkins的svn插件。
2、& Android Emulator Plugin,android模拟器插件。
3、& JUnit Attachments Plugin,junit测试报告附件插件。
4、& Email-ext plugin,邮件扩展插件。此处说明下,默认Jenkins只会发送构建失败的邮件,我们需安装此插件才能自定义不同场景。
5、& Deploy to container Plugin远程发布插件。
自动化测试
打包源工程
Android程序
本小节讲诉如何打包一个Android工程,当前使用的是ant进行编译源码。
1、& 首先构建一个自由风格的Job。
2、& 添加源码路径,选择所使用的版本控制器,输入源码路径。
3、& 构建触发器可根据需要选择是否定时构建。
4、& 构建环境,此处Jenkins安装了Android Emulator Plugin插件,可以启动已有模拟器或添加新的模拟器,本文案例中使用真机调试。
5、& 构建,卸载手机中原程序 adb –s uninstall com.XXXXXX
6、& 生成bulid.xml文件,-p后面跟工程所在的本地jenkins下路径
android update project -n *** c:\被测工程Job路径\workspace
7、& Ant进行编译程序,并安装到当前手机中
ant debug install -f&c:\被测工程Job路径\workspace\build.xml
8、& 构建后操作,本案例中构建完成后自动启动构建下一个测试Job
Bulid other projects,选择测试工程的Job.
打包测试工程
Android程序
本小节讲诉如何构建一个Android测试工程,包括邮件发送和测试报告展示。
1、& 构建步骤1-7和Android程序章节一样,从略。
2、& 本文案例中测试程序是通过命令行启动运行的,所以在此处增加一个批处理运行。P.S. adb shell am instrument -w -e class com.megafon.test.MegafonTest#testDeleteContact com.megafon.test/android.test.InstrumentationTestRunner ,此处是通过批处理来单独运行一个个的测试用例。避免了Junit3的无序执行的问题。
3、& 删除Workspace中原来存在的测试报告文件,一般不删除也会覆盖。
如何让测试程序生成xml格式的测试报告,其他文章会重点介绍。
4、& 从手机中拷贝测试报告,最终测试是在手机上运行,所以报告也生成在手机中,使用adb pull命令把测试报告全部拷贝到workspace下制定目录。
5、& 构建后操作,发布测试报告,如果报告中包含附件,此处使用到JUnit Attachments Plugin插件。
6、& 邮件通知,此处使用到Email-ext plugin插件,前面的默认,直接使用我们在系统管理里面设置的默认值。
7、& 点击右下角高级按钮,可选择不同场景下发送邮件。
8、& 测试结果展示,在本次构建的控制台可以显示当前所有的构建日志。
9、测试报告点击Test Result可以显示所有测试记录。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:62912次
积分:1487
积分:1487
排名:第11739名
原创:54篇
转载:249篇
(3)(18)(11)(13)(1)(21)(60)(31)(5)(1)(3)(7)(5)(6)(5)(17)(35)(2)(2)(8)(7)(6)(18)(1)(20)Jenkins 插件 - 拨云剑文章搜索
为您找到共 264 篇相关文章.
/kingzzm/archive/.html
 上一篇blog 介绍了插件开发中要注意的一些问题, 我们再来介绍插件开发完成后,如何上传到jenkins 的插件中心(这里假设你的代码是放在github 上的,使用svn或其他版本管理工具的请参考其他文章)。
   组织授权
    首先去到 google group(被伟大的GFW 和谐了,只能翻墙访问,如何翻墙不在这里讨论)的 jenkins 开发列表(jenkinsci-)里发帖告诉组织者,你开发的插件id 是什么,插件功能是做什么的,还有你的github 用户名是什么。组织者如果觉得没问题,就会在 jenkins 的github 上给你创建一个以你插件名称命名的代码库,然后在 github 上将你拉入 jenkins 的组织,这样就可以在这个代码库上添加你的插件代码了。如果你在github
上已经有了自己插件的代码库,也可以将地址告诉组织者,这样他会 fork 你的代码库,如果是这样的话你需要在更 ...
http://blog.csdn.net/passionboyxie/article/details/9795509
阅读次数(96)
Jenkins是一个CI工具。它可以持续编译,运行你的代码;运行UT或集成测试;将运行结果发送至邮件,或展示成报告。。。
这样做的最终目的是:
让项目保持健康的状态。如果任何checkin break了build,每个人都会在最短的时间内通知到,然后问题被fix。接下来的开发将建立在一个健康正确的基础上,而不是任由问题累积,最后失控。
最后,你的项目随时可以被deliver给用户,因为,你的项目每一天都在健康,茁壮的生长。这就是CI的意义所在。
Jenkin和cruisecontrol
Jenkins和cruisecontrol都是CI工具,二者在CI中发挥的作用完全一致。
而Jenkins作为新一代的CI工具,渐渐开始取代cruisecontrol。二者都是java程序,但:
1,Jenkins提供更为友好的用户界面,而cruisecontrol在界面方面糟糕的几乎等于没有。
2,Jenkins内置的功能提供了极大的便利,不论是新建一个build,还是日常使用,你需要做的大部分时候仅仅是在用户界面上点击而已。
在cruisecontr ...
/duanxz/archive//2954376.html
官网首页就提供了windows版本的Jenkins安装包。可以自己下载一个用于学习。安装后自动打开http://localhost:8080,就可以看见Jenkins的界面。
要运行Jenkins的其它配置:
1,Jenkins是java程序,因此需要安装JDK。
2,同时运行job需要提供repository,也就是存放Jenkins定期poll源代码的地方。可以去github免费注册一个。
3,如果想在Jenkins中使用ant,maven等,则还需要单独安装。但不是必须的。
启动Jenkins
Jenkins天生支持unix-like system。
好吧,Jenkins是一个java程序,所以要运行它,只需要:
$ java -jar jenkins.war
我们也可以使用nohup命令,让Jenkins在后台运行。
之后打开URL
http://blog.csdn.net/tiangwan2011/article/details/7597080
阅读次数(3265)
简介: 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。本文正是从持续集成的基本概念入手,通过具体实例,介绍了如何基于 Jenkins 快速搭建持续集成环境。
持续集成概述
什么是持续集成
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。
持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。
持续集成的核心价值在于:
持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时 ...
/chenying99/archive//2558685.html
持续集成概述
什么是持续集成
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。
持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。
持续集成的核心价值在于:
持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;
持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能;
持续集成还能利于软 ...
http://blog.csdn.net/agileclipse/article/details/8747456
阅读次数(147)
这篇文章大概写于三个月前,当时写了个大纲列表,但是在CSDN上传资源实在不方便,有时上传了莫名审核不通过,如果以前有人上传过,也会导致上传失败。现在把之前工作中找到的好东西和各位分享。现在不搞这些了,也算是个归档吧。内容主要涉及Hudson/Jenkins的使用,维护,以及插件开发,开发的东西更多些吧。
首先说下Jenkins能干什么?说下两个典型的应用场景。
1. Git/Repo + Gerrit + Jenkins 打造强大的Android持续集成环境。用户上传代码到Gerrit进行code review和入库,用户上传代码操作和入库都可以触发Jenkins获取代码进行自动构建。Jenkins也可以定时构建,构建结果可以通过邮件自动发送给相关人员。当然用户提交代码到Gerrit时,Gerrit也会自动发邮件给具有代码检视权限的人员。
2. SVN/Git + Jenkins 以apk代码为例,Jenkins可以监测SVN/Git等代码配置库,一旦有人提交代码,就会自动获取代码进行构建,构建结果可以通过邮件在内的多种方式通知人员。
以下是之前文章的内容,稍作补充。
http://blog.csdn.net/feiniao1221/article/details/
阅读次数(58)
现在这个项目里,我们使用了jenkins (原hudson, http://www.jenkins-ci.org/ )作为CI server,开源肯定是最基本的考虑,此外这个决定是受到了前任老大的影响,jenkins是java生态圈中的一个不错的选择,现在我们这个项目采用的是.net技术,能否很好的用起来呢,有点儿担忧,一路见佛杀佛见魔杀魔,磕磕碰碰,到现在基本是搭建起来了。基本的组合是,jenkins + svn + msbuild + mstest +psexec,在这个搭建的过程中,也碰到了不少问题,有些问题解决了,有些问题绕过了,有些问题到现在都无法很好的解决。现在把这个过程简要的写下来,算是一点总结,也希望能够对大家有点儿参考作用。
jenkins服务器的选择
最开始我们的jenkins服务器是运行在linux上的,纯粹是安装java开发的需要来搭建的,众所周知,.net需要使用nant / msbuild进行构建,最致命的是依赖于.net framework, 仅仅这一点我们就只能把jenkins搬到windows 上,而出于谨慎的考虑,我 ...
/lovvver/archive//2429531.html
我们使用Jenkins作为持续集成的主要工具。它一直工作的很好,但是今天我发先两台Jenkins不能升级/安装 插件。
没有找到办法修复这个问题,因为我们并没有改变设置,以前一直都工作的很好。
在Google上搜索了一会儿,我发现我可以手动安装插件。让我们开始吧。
参考wiki: https://wiki.jenkins-ci.org/display/JENKINS/Plugins
下载网址在 http://updates.jenkins-ci.org/download/plugins/
通过SSH登录Jenkins server, 我们在Ubuntu server上安装了Tomcat7. Jenkins home folder位于/usr/share/tomcat7/.jenkins
进入Jenkins home目录里的plugins目录
下载plugin的hpi文件,比如:
然后通过Tomcat的Admin页面重新加载Jenkins应用。去Jenkins页面观察是否插件已经被安装。我没有看到pathignore插件被安装了,为什么?
因为path ...
http://blog.csdn.net/csfreebird/article/details/7899629
阅读次数(2170)
在网上貌似没有找到Jenkins的中文的太多的文档,有的都是关于Hudson的一些零零散散的,所以自己边学习边实践总结了以下系列文章,希望有助于大家对于Jenkins的使用。 本系列文章是基于我3年多的SCM+build release经验,总结了最常用的最基本功能,文章基本上来自于Jenkins官方网站的英文帮助的翻译和实际的例子和操作的截图,让大家能够快速直观地学习Jenkins。
Jenkins是Continous Integration Server,是Hadson的继续。 类似的产品: CruiseControl,BuildBot,TeamCity,BuildForge, ElectricCommander等。
[个人觉是Jenkins在开源的CIServer中的理想的选择。]
http://jenkins-ci.org/
Jenkins的突出特点:
开源免费;
跨平台,支持所有的平台;
master/slave支持分布式的build;
web形式 ...
/itech/archive//2260009.html
在网上貌似没有找到Jenkins的中文的太多的文档,有的都是关于Hudson的一些零零散散的,所以自己边学习边实践总结了以下系列文章,希望有助于大家对于Jenkins的使用。 本系列文章是基于我3年多的SCM+build release经验,总结了最常用的最基本功能,文章基本上来自于Jenkins官方网站的英文帮助的翻译和实际的例子和操作的截图,让大家能够快速直观地学习Jenkins。
Jenkins是Continous Integration Server,是Hadson的继续。 类似的产品: CruiseControl,BuildBot,TeamCity,BuildForge, ElectricCommander等。
[个人觉是Jenkins在开源的CIServer中的理想的选择。]
http://jenkins-ci.org/
Jenkins的突出特点:
开源免费;
跨平台,支持所有的平台;
master/slave支持分布式的b ...
http://blog.csdn.net/kingviker/article/details/8332643
阅读次数(494)

我要回帖

更多关于 android软件反编译 的文章

 

随机推荐