A. 如何一步步实现androidCI
一步步实现Android CI
Android上的CI构建链与其它平台一致,依然包含Compilation, Testing, Inspection,
Deploying阶段,每一个阶段的Feedback的都保持对整个团队透明。
2、添加Function Test
Android为大家提供了一套集成测试框架Android integration testing
framework。但此框架未集成Cucumber,这导致每增加一个Function Test都需要较大的开发和维护工作。这样高成本的实现Function
Test将大大延缓开发进度,最终因为项目进度的原因导致Function Test被丢弃。产生这样的后果那必然是不愿意看到的。
目前Android平台下已经出现多种Functiong Testing测试工具,如Native Driver, Robotium,
Calabash等。在尝试对比后,最终选择了Calabash Android作为解决方案。Calabash
Android是Cucumber在Android平台的实现,使用Ruby书写Function Test,并提供了一组操作Anadroid App元素的API。
3、添加UI Test
Android在新近退出了UI测试工具UIAutomator。此工具仅支持Android4.1及以上平台,鉴于目前市场上2.3和4.0版本仍占主导的情况来看,目前还无法满足大家的需要。另外应用该工具实现UI测试的开发成本还较高,笔者暂不推荐使用此工具,但应该关注其发展。
另外基于录制回放机制的测试方法同样可以进行UI测试。但录制回放的方法在面对功能快速迭代时,维护工作会急剧增加,而这个维护成本可以说是很难承受的,所以在此也不会将这种测试方法集成至CI中。
目前来看Android中UI测试还无令人满意的方法。若对UI成功比较看重,可以投入精力应用UIAutomator进行UI测试。
Best Practice:
*
将测试按照单元测试,组件测试,功能测试和系统测试进行划分。单元测试应该在每次提交时触发执行,其它的测试根据运行时间长短和重要程度可以每次提交触发执行或者定时周期执行。
* 将运行较快的测试优先执行。
* 让功能测试能够重复执行。否则维护成本太高,会被舍弃。若是后台数据导致不可重复,可以将数据抽象成为数据集,在每次运行前进行重置。
* 书写测试时每一个assert只做一种判断,这样可以明确每次测试的目的,并且可以快速定位测试失败愿意。
步骤 3:持续检查持续检查是对于代码本身检测和反馈。检测主要通过对代码静态分析验证代码风格,编程规范,代码复用,代码语言中的Best Practice等多个维度的代码质量。
Sonar作为一个开源的代码质量检测工具,涵盖了7项代码质量检测方式。这充分满足Android平台下对于代码质量的检测分析。Sonar分为两部分一部分是代码分析工具,另一部分是数据分析展示的Server。
Best Practice:
* 将测试覆盖率,代码分析结果透明化
* 持续降低代码复杂度
* 持续的促进设计的演进
* 持续的维护代码结构
* 持续减少代码重复
步骤 4:持续部署
由于Android App采用用户手动从Appstore自行下载安装的方式发布,使得Android
App无法直接部署至用户手机中。另外Appstore需要对于上线的App进行审核,不能持续进行Release。因而Android中持续部署将以持续发布可安装包为目标。
在以上目的下,只需根据自身项目资源找到合适的安装包管理工具即可。如本文采用Dropbox来管理所有安装包。
Dropbox作为一个云存储平台,在Android终端设备上可以轻松下载存放在其中的文件,同时上传安装包也可以交由Dropbox自己完成。
步骤 5:持续反馈
反馈是所有改进的开始,必须要让所有人获取到他们所关心的反馈信息,才能实施改进。持续反馈的目的就是让所有人都掌握项目健康状况。项目所有人事实都是有意愿知道项目当前的健康状况的,那CI就应该将项目的情况做到透明,并将不同的反馈通知到各相关的成员。
CI不同阶段产生了不同维度的反馈,如单元测试报告,测试覆盖率等。本实践中将这些反馈都透明的展示在项目首页中。之所以没有将这些反馈再以邮件的方式通知所有人,是因为团队成员已经养成了查看CI的习惯。
如果说只给所有人发一封邮件说明项目状况,那必然是告诉所有人“CI所有步骤是否都返回正确?”。这样一个反馈,包含了编译正确,所有测试通过,安装包已经准备完毕等重要信息。有必要让所有人都知道这个信息,特别是在CI执行失败的时候。Jenkins自身已经提供一个简单有效的透明化方法,以项目为蓝色表示通过,红色表示有步骤失败。
反馈的通知方式有很多种,不一定要采用邮件通知的方式。可以寻找更加有趣的方式,如果播放音乐和设置警报灯。在每一次Build成功或失败后都播放一段有趣的音乐,打开不同颜色的警报灯,这两种方法都是是一种简单有效的方式,可以让项目所有人都获取到最为关键的信息。
B. android用什么软件敲代码
敲代码用的软件有:Android studio,WebStorm,Intellij IDEA,source inshght,Vscode。
1、Android studio
对UI界面设计和编写代码有更好地支持,可以方便地调整设备上的多种分辨率。同样支持ProGuard工具和应用签名。不过,目前版本的Android Studio不能在同一窗口中管理多个项目。
C. android手机上看代码有什么好软件
在安卓手机上的话我推荐920文本编辑器。
对于编辑器我没有太多要求,只要有行号、代码高亮、多窗口就行了,920编辑器完全符合我的要求。
软件名称:920编辑器
软件简介: 920文本编辑器(920 Text Editor)是一款运行于Android手机上功能强大的文本编辑器。 特色功能: 多标签,你可以在不同的标签打开不同的文件,方便你在不同的文本之本切换编辑 语法高亮 显示行号 显示空白字符(制表符,换行符) 自动检测打开的文件编码,同时你也可以转换当前文件编码 方便的工具栏,你可以快捷进行文件新建、打开、保存、另存为、撤销/重做、一些常用符号、返回上次编辑位置等等 最近打开的文件历史列表 正则查找、替换或替换全部 更改字体和字体大小 “自动换行” 开关等等。
下载链接:http://hexianghui.net/resource/11.html
注:我提供的是汉化版的,网络提供的是英文版。
好了,安卓代码编辑器软件的介绍就到这里了,祝你学有所成!
D. Android有没有像类似于 IOS 的 cocoapods这样的包管理工具
每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库。比如
java: maven,Ivy
Ruby: gems
Python: pip, easy_install
Nodejs: npm
随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods。
CocoaPods简介
CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过一年多的发展,现在已经超过1000次提交,并且持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。
拿我之前开发的粉笔网iPhone客户端为例,其使用了14个第三方开源库。在没有使用CocoaPods以前,我需要:
把这些第三方开源库的相关文件复制到项目中,或者设置成git的submole,然后这些开源库通常需要依赖系统的一些framework,我需要手工地将这些framework一一增加到项目依赖中,比如ASI网络库就需要增加以下framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics and zlib。
对于RegexKitLite这个正则表达式库,我还需要设置-licucore的编译参数
手工管理这些依赖包的更新。
这些体力活虽然简单,但毫无技术含量并且浪费时间。在使用CocoaPods之后,我只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后执行pod install。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。
E. Android Studio有哪些非常好用的插件
android-postfix-plugin可根据后缀快速完成代码,这个属于拓展吧,系统已经有这些功能,如sout、notnull等,这个插件在原有的基础上增添了一些新的功
AndroidAccessors快速生成get和set方法的插件,其实系统的也有类似功能,这个更快。
Lifecycle-Sorter
可以根据Activity或者fragment的生命周期对其生命周期方法位置进行先后排序, 快捷键Ctrl + alt + K
JsonOnlineViewer
可实现直接在android studio中调试接口数据,可以选择请求类型,自定义请求头及请求体,json数据格式化后展示
CodeGlance
可用于快速定位代码,类似于Sublime编辑器右侧定位视图
idea-android-studio-plugin
IntelliJ IDEA / Android Studio plugin with some tools and usability improvements
folding-plugin
可以给资源文件分组,并且不移动文件,也不会创建文件夹:Android File Grouping Plugin
Android Drawable Importer
为了适应所有Android屏幕的大小和密度,每个Android项目都会包含drawable文件夹。任何具备Android开发经验的开发人员都知道,为了支持所有的屏幕尺寸,你必须给每个屏幕类型导入不同的画板。Android Drawable Importer插件能让这项工作变得更容易。它可以减少导入缩放图像到Android项目所需的工作量。Android Drawable Importer添加了一个在不同分辨率导入画板或缩放指定图像到定义分辨率的选项。这个插件加速了开发人员的画板工作。
Android ButterKnife Zelezny
用于在活动、片段和适配器中,从所选的XML布局文件生成ButterKnife注入。该插件提供了生成XML对象注入的最快方式。
Android Holo Colors Generator
开发Android应用程序需要伟大的设计和布局。Android Holo Colors Generator则是定制符合喜好的Android应用程序的最简单方法。Android Holo Colors Generator是一个允许你为你的应用程序随心所欲地创建Android布局组件的插件。此插件会生成所有必要的可在项目中使用的相关的XML画板和样式资源。
Android Parcelable code generator
生成实现了Parcelable接口的代码的插件。在你的类中,按下alt + insert键弹出插入代码的上下文菜单,你会看到在下面有一个Parcelable,如下所示。选择它之后,就会在你的类当中插入实现了Parcelable接口的代码。从此不用再手动写Parcelable代码
AndroidCodeGenerator
可以生成ViewHolder和findView方法的代码。尤其是在Adapter实现类的getView当中很有用。
Android Layout ID Converter
生成findView代码的使用方法。
SelectorChapek for Android
生成Selector的插件。你需要在drawable文件夹中右键,在弹出的菜单中选择Generate Android Selectors,如下所示,它就会根据你的几个drawable文件夹里的资源的命名,帮你生成Selector代码。当然,你的资源文件需要根据约定的后缀来命名。比如按下状态为_pressed,正常状态为_normal,不可用状态为_disable,等等
genymotion-gradle-plugin
不同于图形化的genymotion插件,这个允许你通过脚本来配置,创建device。
sdk-manager-plugin
SDK管理插件,自动检测更新并下载。
otto-intellij-pluginotto事件导航工具。
dagger-intellij-plugin
dagger可视化辅助工具。
eventbus-intellij-plugin
eventbus导航插件
eventbus3-intellij-plugin
eventbus导航插件
strings-xml-tools
管理Android工程中字符串国际化的插件
gradle-packer-plugin
Android多渠道打包工具。
gradle-retrolambda
在java 6 7中使用 lambda表达式的插件。
lint-cleaner-plugin
移除Android中无用资源。
dexcount-gradle-plugin方法数计算,对于较大应用避免方法爆棚很有用。
android-unit-test
添加Android单元测试。
robolectric-gradle-plugin
Robolectric测试辅助工具。
maven gradle 依赖支持自动补全。idea-markdownmarkdown插件
详细教程