分类目录归档:开发工具

Vysor – 无需 root,用 Chrome 完全控制 Android 设备

Vysor是一款 Chrome 应用,能够在 Chrome 里通过 USB 直接控制 Android 设备,无需 root。@Appinn

Vysor 的设置非常简单,只需要在 Chrome 里安装 Vysor,打开 Android 设备的 USB 调试模式,用 USB 线连接电脑与 Android 设备,就可以控制了。

在 Chrome 里,你能实时看到 Android 的界面,并且可以通过鼠标拖动、点击屏幕,还有其他快捷键:

  • ESC 返回按钮
  • F1 菜单按钮
  • Home 返回桌面
  • 鼠标右键 返回按钮
  • 鼠标中建桌面

第一次连接 Vysor,会自动在 Android 设备中安装一个应用,然后点击信任连接的电脑,就能在 Chrome 操作了,非常简单。

而在连接成功后,你完全可以将 Android 设备放到一边,Vysor 支持点亮屏幕(只需在黑屏上点一下鼠标右键),滑动输入密码,键盘打字,如果再配合PushBullet 将系统通知推送到 Chrome 里,真的 Android 与 电脑合一了…

鉴于需要安装 Chrome 应用,推荐个工具访问 Chrome 网上应用店。

青小蛙使用体验,Chrome 端的显示比较顺滑,处于完全可以接受的状态,两端几乎实时同步,没有延时。

Android Studio常用快捷键

[Android Studio] Android Studio常用快捷键

(会持续更新)这边讲的常用快捷键是指做完Keymap到Eclipse后的,不是纯Android Studio的,这边主要讲下比较常用的一些快捷键:

Ctrl+O:快捷查找当前类中的函数,变量

Alt+Enter:导入包

Ctrl+E:查看最近打开过的文件

Ctrl+Shift+E:查看最近编辑过的文件

Ctrl+G / Ctrl+Alt+Shift+G:查询变量或者函数或者类在哪里被使用或被调用,后者是前者的复杂表现,可以选择查询范围等。

Alt+H:查找功能,全局查找

F4:查看类继承关系

F2:查看文档说明(函数使用说明)

double Shift:全局查找,这个查看和Alt+H稍稍有些不同,这个是全局文件查找,到文件名称层面。

Ctrl+Shift+R:快速定位到你所想打开的文件。

Ctrl+K:选中一个变量后,快速定位到下一个使用该变量的地方(不过这个快捷键现在还存在一些bug,具体请看:Android Studio keymap到Eclipse后,查找下一个相同变量快捷键Ctrl+K失效

Alt+↑:光标所在位置那行代码往上移动

Alt+↓:光标所在位置那行代码往下移动

Ctrl+D:删除光标所在位置那行代码

Ctrl+X:剪切光标所在位置那行代码

Alt+Shift+↓/Ctrl+C:复制光标所在行代码到下一行

Ctrl+Shift+R:修改名称

Alt+←:后退,定位到上个查看或者编辑的地方

Alt+→:往前定位,比如你定位到上个点后,想回去,就可以用这个快捷键

Ctrl+/:当行注释,反注释再按一次即可

Ctrl+Shift+/:模块注释,反注释再按一次即可,注意这边的”/“不能用小键盘的

Ctrl+Shift+小键盘/:折叠代码(Ctrl+Shift+小键盘*这个不灵了,今天没空了,后面会针对这个问题做解决,并更新上来),当然笔记本没小键盘,你可以自己改快捷键

Ctrl+Alt+S:打开settings界面

Ctrl+Alt+Shift+S:打开Project Structure界面

Alt+Shift+X:运行(Run)

Alt+Shift+D:调试运行(Debug)

Ctrl+F9:编译工程

Ctrl+Shift+K:push文件到Server(git)

Debug类快捷键

F5:但不调试进入函数内部。

F7:由函数内部返回调用处。

F8:执行到下一个断点,没断点则执行完成。

Ctrl+Alt+F8/双击鼠标:直接查看选中位置的值,这两个快捷键稍稍有点区别,具体区别请看这:Android Studio 调试过程中快捷查看断点处变量值(Ctrl+Shift+I无效)?

这里有一个Android Studio的新的快捷功能,查看当前类中有哪些函数变量没被用到,哪些写法不合理。Eclipse没有的,很有用,下图中Inspect Code with Editor Settings就是是,你可以自己配置你所想用的快捷键,配置过程中,如果发现你想配置的快捷键被使用了,怎么看明白和哪些冲突,怎么解决,请戳这:Android Stuido如何查看快捷键冲突?

分类: Android Pro

摘自:http://www.cnblogs.com/0616–ataozhijia/p/3870064.html

这些小工具让你的Android开发更高效

本文为作者「Tikitoo」投稿,应该多少受我点影响,Tikitoo也是一位自学的Android工程师,并且完全通过自学找到一份还不错的工作。互联网爱好者,并且是简书专题的运营者,点击「阅读原文」可以跳转到作者的博客。

在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效。

1. Vysor

Vysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用。

2. Vector Asset

Android Studio 在1.4 支持了VectorAsset,所谓VectorAsset;它可以帮助你在Android 项目中添加Material Icon 和SVG 图片来作为一个Drawable 资源来使用。不过唯一一点的缺陷就是没有搜索功能,如果你想精心挑选Material Icon ,可以打来网页版来选择,也可以下载SVG 和Png 格式。对于VectorAsset 的好处,它的文件更小,更容易适配不同的屏幕。

3. Stetho

Stetho 是一个Android 开发调试小工具,它可以让你使用Chrome Develop Tools 来可以来查看Sqlite 数据库和SharePreferences,而且可以查看网络连接的数据。在Chrome 输入框输入「chrome://inspect」,点击inspect 就可以开始了。如果使用OkHttp 需要添加拦截器StethoInterceptor。

4. OctoTree

OctoTree 是一个浏览器插件,它可以让你在Github 看代码时,左边栏会出现一个树状结构,就像我们在IDE 一样。当我们看一个项目的结构,或者想看具体的某个文件,这样就会很方便。

5. Chrome ADB

Chrome ADB 是一个使用Chrome 来调试Android 的小工具,它除了提供了安装,卸载,清理数据的基本功能,而且还提供了主页,返回,锁屏的虚拟键功能,也可以看各个应用占用的内存(不得不点名批评一下微信,关闭都还占用100M 内存,不知道你要干嘛)。它还有Android 的App,两者交互一定更有意思。

6. TinyPng

TinyPng 是一个图片压缩工具,可能有些人感觉这个工具应该给设计师使用,我觉得也是。不过有些时候,设计师给你出了个1920* 1080 的启动页,一张图片,1M 左右,我也是泪奔了,感觉设计师说话的时间,估计我们都压缩完了,自己动手,丰衣足食。而且它还提供了API,对不同语言都还有提供了插件,比如Java 就提供了Maven 的支持。

7. PostMan

PostMan 是一个API 调试工具,它提供Chrome App 和Mac App,除了提供基本的API 测试功能, 它还可以添加各种的Auth 认证,响应结果可以选择不同类型,比如HTML,JSON 等,可以设置通用的Header,还可以将之前测试的添加到一个集合,而且也可以同步到服务器,而且最近还添加了团队服务,想想服务器端写完测试你就能看到结果,而不是给你API 文档(当然API 文档还是要有的),这画面太美,我不敢想象。当然它的功能也远远不止这些,它还有专业版,想尝试更多的东西可以体验一下。

8. Genymotion 虚拟机

刚开始做开发的时候,每次使用官方的虚拟机,都想吐槽一下,但是发现了Genymotion 之后,这一切都变化了,它的速度几乎可以和真机媲美了,当然如果有真机,当然还是推荐使用真机测试。据说官方模拟器2.0 很快,不知道是不是又吹牛逼。

9. Json2POJO

Json2POJO 是可以将一个Json 字符串转换成Java 的POJO 类的网页工具,而且可以选择转换器,比如我们使用Retrofit 可以选择Jackson,Gson,而且可以选择重写get,set 方法,还有hashcode,equals 和toString 方法,可以省去了不少手写的时间。

10. Android Pixel

AndroidPixel 是一个简单的将不同的分辨率的换算工具,只要你有一个尺寸的大小,其他的尺寸大小就可以得出,当然dp 这样的单位,可以解决一部分问题,但是大多还要需要微调,这时AndroidPixel 就起到了作用。这个工具来自上一个公司同事告诉我的。

11. Android Arsenal

Android Arsenal 主要是推荐Github 上一些流行的Android 开源项目,基本上最近热门的Android 开源项目都会出现在这里,它还对不同类库进行了分类。

12. AndroidAssetStudio

Android Asset Studio 是一个在线制作工具,它可以制作Iocn,ActionBar,点9 图等等,简单的操作,大大提高了我们开发的效率。

13. WiFi ADB

WiFi ADB 是一个通过无线网络来使电脑和手机连接的手机App(可以去Google Play 搜索类似的),当我们做测试的时候,只需在手机上打开,电脑只需在命令行输入「adb connect xxx.xxx.xxx.xxx:5555」,电脑可以连接手机,就可以通过无线网络来调试开发的应用。

14. ES Explorer

ES Explorer 是一款文件管理器,但实际它又不仅仅是一款文件管理器,在获得Root 之后,它的功能更强大了,它可以浏览受限制的文件目录;而且提供了一系列小工具,比如下载器;还有集成了众多云储存服务。

微信公众号不支持链接,可以点击「阅读原文」查看。

友情提示:

之前的书籍奖励的两位同学「纪红阳」、「.」,没错,第二个中奖的用户微信名称就是一个点,不知道你们给我回复了收获地址被淹没了还是压根忘记回复了,请加我微信吧「stormzhang」,微信好友已经太多了,其他人一概不加,忘见谅!

 

摘自:http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=402858357&idx=1&sn=5dd38f4dcc5d7680e6daf7b3d1105b63#rd

Git 常用命令

1. 超实用 Alias

alias g="git"
alias gb="git branch"
alias gco="git checkout"
alias gcmsg="git commit -m"
alias gamend="git commit --amend -C HEAD"
alias gst="git status"
alias log="git log --oneline --graph --decorate --color=always"
alias logg="git log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)—     %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative"

 

2. 取回远端 master 与本地 master 分支合并

gco master

g fetch --all 或者
g fetch origin master

g reset --hard origin/master(本地没有修改,所以完全覆盖也没关系) 或者
g rebase origin/master(本地有修改还没push)

 

3. 推送分支到远端

假设现在所在的分支是 import,指定推送到远端分支 codecloud-import

g push origin import:codecloud-import

假如远端的 liujin-import 分支已经不需要,可以直接覆盖掉

g push -f origin import:codecloud-import

 

4. 追加文件到某个 commit

有时候修完某功能并提交了 commit 之后才发现还有一点小修改,这时候又不想再提交一个commit,可以追加这个文件到前一个commit,步骤如下:

it add 你要追加修改的文件
git commit --amend -C HEAD 或者 gamend

 

5. 查找包含某文件的 commit

git log 文件路径
git show commit_id

or

git log --follow filename(绝对路径)

 

6. 把一个 commit 分拆为两个 commit

老大常说要养成一个小改动对应一个commit的习惯,但是有时候写得太乱懒得去分割就把很多改动做成了一个commit,这样子增加了以后维护的难度,所以要把一个 commit 分拆为多个 commit 怎么办呢?

首先把你要分拆的 file reset 了:

git reset HEAD~1 path/to/file
# This doesn't delete your changes to path/to/file

接着修改当前这个 commit 的 message,命令是:

git commit --amend -v
# -v参数是打开editor编辑

然后就可以把 reset 出来那个 file 新建一个 commit,命令是:

git commit -v path/to/file

 

7. 删除某些 commit

git rebase -i HEAD~10

 

8. 追加修改到之前某个 commit

假如 gst 发现已经有文件被修改,这时候需要把修改暂存起来。

git stash

接着找到你需要追加修改的那个commit id,如4b739bb

g rebase 4b739bb~ -i 或者
g rebase -i HEAD~5 #列出最近5个commit

这时候会自动打开编辑器,把你需要修改的 commit 前面的 pick 改成 edit,保存,关闭编辑器,这时候会回到终端,再输入:

g stash pop

把暂存的修改读出来,然后做修改,g add .,最后

g rebase --continue

 

9. 查找含有特定关键字的 commit

git log –grep
最基本的用法
git log –grep=frotz –grep=nitfol –since=1.month
查找一个月以内commit log message里含有 frotz 或者 nitfol 的 commits

git log –grep=frotz –author=Linus
查找指定作者

git grep -l -e frotz –and -e nitfol
查找同一行含有 frotz 和 nitfol 的文件

git grep -l –all-match -e frotz -e nitfol
查找文件里面含有 frotz 和 nitfol 的文件(不局限于同一行)

 

10. 清空 git working copy 还没追踪的文件

git clean -f

git clean -f -d
如果还想删除目录

git clean -f -X
如果只是想删除忽略的文件

git clean -f -x
如果想删除忽略和非忽略的文件

 

11. 清理本地仓库

长时间做一个项目,经常需要 git fetch,这样做每次都会拉回远端的全部分支。
即使远端有些分支已经删除,但是运行git branch -a还是会显示已删除的分支,
长时间下来这个列表就会很长很长,这时候就需要清理一下本地的仓库了:

git remote prune origin
# `prune`会删除任何不存在于远端仓库的分支,这样运行 `git branch -a`命令的时候顿时就清静了

 

12. 创建追踪远端分支的本地分支

gb dev origin/r1-dev
#Branch dev set up to track remote branch r1-dev from origin.

13. 分支移动

g branch -f master HEAD~3
# 把 master 分支强制移到 HEAD 前面第三个 commit

 

14. Revert一个 Merge

git revert -m 1 M -> W

---o---o---o---M---x---x---W
              /
      ---A---B

 

15. 获取短的 commit hash

git rev-parse --short HEAD

 

16. commit 了以后才记起来忘了创建 .gitignore, 垃圾文件都已经提交

比如说一个nodejs项目,一开始的时候就忘记了创建.gitnore文件忽略掉node_modules的内容,所以其中的内容就已经被提交了。

即使紧接着你在.gitignore加了一行node_modules, 已经被提交的文件是不会自动删除的。

这时候你就需要做的就是:

git rm --cached path/to/ignored
#nodejs案例就是
git rm -r --cached node_modules

 

17. 提交所有被删除的文件

$ git add -u

这个命令告诉 git 自动更新已跟踪的文件, 包括被删除的已跟踪文件。

如果你用的是 git 2.0

$ git add -u :/

友情提示:从 git 2.0(2013年中)开始,以上命令会 stage 整个 working tree 的文件。
如果你只是想 stage 当前目录的文件,应该这么用:

$ git add -u .

 

18. 撤销上一次 git add . 操作

这种情况通常是因为忘记添加.gitignore文件,或者一时手快把一些非必要的文件(如node_modules)跟踪了, 解决办法:

git reset

该命令会 unstage 你上一个 commit 增加的所有文件。

如果你只想 unstage 某些文件:

git reset --

还可以 unstage 文件里某处的改动:

git reset -p

摘自:http://finalshares.com/read-7236?jike-24

最常用的Java库一览

http://www.importnew.com/7530.html

本文由 ImportNew – 邢 敏 翻译自 programcreek。如需转载本文,请先参见文章末尾处的转载要求。

写在前面:

1) 本文列出的名单是根据我自己的调查,并结合个人的经验。有可能是它们不恰恰是最流行的,但至少众所周知的。

2) 我会不断更新这个列表,使之更加完整和准确。感谢您的意见。

一个典型的Java项目依赖于第三方库。本文总结的Java库适用于各种应用,比较流行并且广泛使用。其中一些还提供简单的示例(来自ProgramCreek)。

Java SDK 肯定是使用最广的库,所以本文的名单焦点是流行的第三方库。该列表可能并不完善,所以如果你觉得有什么应该出现在列表中的,请留下您的评论。非常感谢!

1、核心库

  • Apache Commons Lang:来自Apache的核心库,为java.lang API补充了许多常用的工具类,如字符串操作、对象的创建等。
  • Google Guava:来自谷歌的核心库,包括集合(Collection)、缓存(Caching)、支持原语(Primitives)等。(示例)

2、HTML、XML Parser

  • Jsoup:一个简化了的 HTML操作的库。(示例)
  • STaX:一组可以高效处理 XML的API。 (示例)

3、Web框架

  • Spring:Java平台上众所周知的开源框架和依赖注入容器。(示例)
  • Struts2:来自Apache的流行Web框架。 (示例)
  • Google Web Toolkit:Google提供的开发工具库,主要用于构建和优化复杂的Web程序用。 (示例)
  • Strips:使用最新Java技术构建的Web程序框架,推荐使用。
  • Tapestry:面向组件的框架,用于使用Java创建动态、健壮、扩展性高的Web应用程序。

请猛击这里 查看以上面框架之间的比较。

4、图表、报表、图像

  • JFreeChart:用于创建如条形图、折线图、饼图等图表。
  • JFreeReport:创建于输出PDF格式的报表。
  • JGraphT:创建图像,其中只包含由线段连接的点集。

5、窗口

SWT与Swing的比较

6.、GUI框架

7、自然语言处理

  • OpenNLP:来自Apache的自然语言处理库。 (示例)
  • Stanford Parser:斯坦福大学提供的自然语言处理库。(示例)

如果你是一名NLP专家,请猛击这里 查看更多工具库介绍。

8、静态分析

  • Eclipse JDT:由IBM提供的静态分析库,可以操作Java源代码。(示例)
  • WALA:可以处理jar包文件(即字节码)的工具库。(示例)

9、JSON

  • Jackson: 用于处理JSON数据格式的多用途的Java库。Jackson 旨在快速、准确、轻量、对开人员友好之间找到最好的平衡点。
  • XStream:一个简单用于对象和XML互相转换的库。
  • Google Gson:一个专门用于Java对象和Json对象相互转换的工具库。(示例)
  • JSON-lib:用于 beans、maps、collections、java arrays、XML 和 JSON 之间相互转换操作的工具库。

10、数学

  • Apache Commons Math:提供数学计算和数值统计需函数的工具库。

11、日志

  • Apache Log4j:风行一时的日志记录操作库。 (示例)
  • Logback:当前流行的log4j项目的继任者。
  • SLF4J(The Simple Logging Facade for Java): 各种日志框架的一个简单的外观或抽象(如java.util.logging 、logback、log4j等),允许用户在部署时加入需要的日志框架。

12、Office

  • Apache POI:利用其提供的APIs,可以使用纯Java代码操作各种基于微软OLE2合成文档格式的文档。
  • Docx4j:一个用于创建、操作微软公开的XML文件的库(支持Word docx、 Powerpoint pptx和Excel xlsx)。

13、日期和时间

  • Joda-Time:如有质量问题包退包换的Java日期和时间类。

14、数据库

  • Hibernate、EclipseLink、JPA
  • JDO
  • jOOQ
  • SpringJDBC、Spring Data
  • Apache DbUtils

15、开发工具

  • Lambok: 旨在减少代码编写的Java开发库。

开发者必备:测试网站速度的五个免费在线工具

http://www.csdn.net/article/2013-11-04/2817380-website-speed-testing-tools

摘要:网页性能很大程度上决定了用户体验,最终可以决定网站的成功。虽然大家都知道提高浏览速度的重要性,可很多时候不知道什么元素拖了后腿。本文将介绍测试网站速度的五个免费在线工具,帮你设计出高效的网站。

如果你认为一个网站建成后,工作就已经完成,你就大错特错了。你需要不断监测其可用性和可访问性,一个小问题,可能毁了一切。而网页载入速度对于一个网站来讲至关重要,试想一下,你喜欢进一个需要很长时间才载入完毕的网站吗?而且,搜索引擎对网页载入速度也提出了要求。“The web should be fast。”据悉,网站若没有在4秒内读取出来,大多数的访客就会选择离开,甚至Google也将网页载入速度作为网站排名的众多因素之一,唯有提升网站效能才能让你的网站访客更多、更快乐。

国外开发/设计网站DesignInstruct推荐了5个最具代表性的测试工具,将帮助你确保你的网站正常、高效工作。

1. Pingdom Website Speed Test

Pingdom是一个免费的网站速度测试工作,不仅是看起来非常棒,而且尽可能多的呈现出你的网站的各方面信息。它可测试网站加载速度,对页面和大小进行分析。测试完成后会得到一份非常详细的测试报告,包括图片、CSS等,告诉你哪些地方出现问题。

2. Load Impact

Load Impact是一款在线网站压力测试工具。只需要输入网址进行测试,其便可以统计出加载网站的一些详细载入数据。包括整体加载和站内图片,javascript, CSS等代码载入。测试完成之后,网站还可以存储测试过的统计数据。(注:如果你未注册该网站使用进行测试,那么你的网站性能信息可能会被公开在网上。)

测试有两种方案,虽然免费方案能够测试的虚拟访客比较少(免费仅能够测试10、20、30、40、50人同时在线上),但一般使用已经足够了!如果不够,可以考虑购买Premium Account服务。不过,其功能可能会对网站产生一定的压力,大家可别用它去DoS别人网站哦。

3. Google PageSpeed Insights

相信有接触前端开发的大神们都听说过Google官方的PageSpeed Tools,这个网页载入速度检测工具有在线版本也有一个 Chrome 扩展,叫PageSpeed Insights。

PageSpeed Insights 的Chrome扩展是由谷歌官方开发的一款可以分析页面载入的各个方面,包括资源、网络、DOM以及时间线等等信息的插件,安装以后会附加到Developer Tools(开发者工具)中。所以安装之后,大家只需要在页面上点击右键——审查元素,就可以在最后一个标签中看到PageSpeed了。

PageSpeed的分析基于一个分为五类的最佳实践列表:

  • 优化缓存——让你应用的数据和逻辑完全避免使用网络
  • 减少回应时间——减少一连串请求-响应周期的数量
  • 减小请求大小——减少上传大小
  • 减小有效负荷大小——减小响应、下载和缓存页面的大小
  • 优化浏览器渲染——改善浏览器的页面布局

去谷歌开发者官网看了看,发现PageSpeed 不仅仅只是个在线工具、插件那么简单,还有开发者使用的API、SDK;甚至还有可以安装在Apache或者Nginx服务器上的开源模块!

4. OctaGate SiteTimer

OctaGate SiteTimer 是一个在线的网页读取速度测试工具,效果图基于AJAX技术,而且它是所有工具里面最直观的;如果你就想知道你的网页里面哪个元素拖了后腿,就跑这个工具。它就一张图,告诉你每个网页元素下载需要时间。

5. GTmetrix

有些网站速度测试工具如Baidu仅提供页面元素加载时间;有些工具如Pingdom提供的Start Time、Connect Time、First Byte和Last Byte细分仍无法满足要求。功能更强大的GTmetrix是国外的一个免费评测网页载入速度的服务,可提供详细报告:显示出网页里每个元件载入、开启或存取的时间;而且会保存每一个网站的记录,方便查看一个网站载入速度的历史变化。

如果你想将报告设定为不公开、或是储存报告、定时检查网页评分的话,可以免费注册GTmetrix帐户。

测试的工具有很多,上述五个相对具有代表性,下面再简介三个:

  • Web Page Analyzer——可让用户测试网站速度以提升性能,同时可计算网页大小、 复杂度和下载时间。
  • WebPagetest——原本是由AOL开发内部使用的工具,后来在Google Code上开源,是一款非常优秀的网页前端性能测试工具。

如果你喜欢的测试工具不在上述中,也欢迎你在文章评论中发表自己的看法。(文/钱曙光 责编/魏兵)

5款工具助你写出更好的Java代码

摘要:工欲善其事,必先利其器。一名优秀的开发者手里肯定握着不少秘密武器,本文开发者分享了他在开发Java项目时,所用到的5款有助于提高代码质量的工具。

作者在IDR解决方案中,一直寻找方法来编写出更好的代码,后来他们发现,通过使用一些工具使用好的工具不仅可以提高代码质量,还可以提高开发人员的工作效率。在本文,作者将介绍5款在IDR解决方案的(开发语言为Java)中,最常用也最实用的工具给Java开发人员,希望它们帮你开发出更好的代码。

1.FindBugs

顾名思义,FindBugs是一款帮助开发者发现bug的工具,它是一个开源项目,遵循GNU公共许可协议,运行的是Java字节码而不是源码。

它是一款静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比来发现可能存在的问题,这些问题包括空指针引用、无限递归循环、死锁等。

FindBugs在发现错误后,会进行等级划分,它把发现的错误分为四个等级:

 

  1. scariest(恐怖的)
  2. scary(吓人的)
  3. troubling(令人困扰的)
  4. of concern(值得关注的)

 

FindBugs是一个独立的GUI应用程序,有多种使用方式,可以作为Eclipse、NetBeans、IntelliJ IDEA插件使用,也可以从命令行、Ant、Maven使用。

2.Apache Ant

Apache Ant是由Apache软件基金会所提供的一款开源软件,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,主要用于Java环境中进行软件开发,它还可以用于构建C或C++应用程序,也可以针对目标任务运用在多种软件开发过程上。

Apache Ant有大量商用或开源的“antlibs”供大家使用,它非常灵活,因为他对编码约定或目录布局都是没有任何限制的。Apache Ant被广泛运用在各种Java IDE环境中,如Eclipse、NetBeans、IntelliJ IDEA等。

3.JProfiler

JProfiler是一个商业授权的Java剖析工具,由EJ技术有限公司开发,主要是针对Java EE和Java SE应用程序使用。它把CPU、内存和线程分析析组合在一个强大的应用中,从而可以用来分析性能瓶颈、内存泄漏、CPU负载以及线程问题。

JProfiler支持多种剖析模式:本地会话实时分析模式、远程会话实时分析模式、离线分析模式、快照比较、查看HPROF快照。此外,JProfiler既可以作为单独的应用程序使用,也可以作为一个插件使用,也可以在Adobes Coldfusion和Glassfish中作为应用服务器集成的一部分。

4.Bash

全称是Bourne-Again SHell,发布于1989年。它是一个Unix shell或命令式语言解析器,它作为GNU项目,是Bourne shell的一个免费替代。它在GNU操作系统上作为shell被广泛运用,它已是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

它通常被用作一个命令处理器,通常运行在一个文本窗口,它还可以从文件中读取各种命令、支持通配符的文件名、piping、命令替换、变量、控制结构等用来进行条件或迭代测试。

5.Sonarqube

Sonarqube是一个开源平台,是一款代码质量管理和环境搭建工具。它目前支持25种以上语言,包括Java、C/C++、C#、PHP、Flex、JavaScript、Python、PL/SQL、COBOL等,此外,它还可以作为Android开发的一部分。

它提供了完全自动化的分析工具,并且可以与Maven、Ant、Gradle和其它集成工具很好地集成,也可以与Java IDE进行很好的集成。它还可以用于报告重复的代码、编码标准、单元测试、代码覆盖率、复杂的代码、潜在的bug、评论、设计和架构。

来自:IDR solutions

http://www.csdn.net/article/2013-09-06/2816856-5-tools-to-help-you-write-better-Java-Code

积少成多:十大高效原型设计工具

摘要:本文为开发者介绍了对开发者最有效的原型工具。免费的工具现在越来越多,如何在众多工具中找到最有效,最适合自己的工具成为了开发者的难题,答案就在这里。

免费的工具其实有很多,但是哪款工具可以名副其实地提高你的效率呢?我们会在接下来的时间为大家总结出移动和Web原型设计的工具。拥有一个原型设计的工具库对于开发者,特别是对那些需要立刻针对客户反馈进行修改的开发者来说,可以提高他们的工作效率。开发者也可以根据客户的不同需求设计出不同版本的原型设计。

Pencil

Pencil是一款开源的手绘风格原型图绘制工具,可以用来绘制各种架构图和流程图。Pencil向开发者提供一个免费、开源的GUI原型工具,具备了多种原型设计模板、多页背景文档、跨页超链接、富文本编辑支持等功能,安装十分简单。

Balsamiq Mockups

使用Balsamiq Mockups有一种画画的感觉,而且由于这一切是数字化的,“画家”们可以简单地进行修改。一个开发团队需要对界面设计进行反复地修改。有了Balsamiq Mockups,产品经理、开发者甚至是客户可以坐在一起,用同一个工具共同修改。达成统一之后,开发者再进行代码的编写。

Lumzy

作为一款针对Web和应用的原型工具,Lumzy无需注册、无需下载,可以在浏览器上进行原型设计的工具。功能全面但并不复杂,这就是Lumzy最大的特点。

Jumpchart

Jumpchart其实不仅仅是一个项目管理软件,它基于Web,用于快速规划和创建原型。除了所需的项目管理功能,还可用它来追踪与Web设计相关的任务。Jumpchart有一个免费版本,不过功能受限。

Mockup Builder

Mockup Builder是一款原型设计工具,支持网页、桌面应用、移动应用。此工具具有UI模型,交互的线框图,页面布局,客户端原型甚至站点地图和屏幕导航等功能。这是一款完全免费的开发工具。

UXPin

UXPin是一款大众化的原型设计工具。UXPin公司里面经验丰富的UX设计人员提供了一系列完整实用的设计元素和模式,对新手有极大帮助。UXPin的目标是帮助项目经理为各种方案和设备开发响应式的线框图和UI原型。

iPlotz

iPlotz可以帮助你迅速创建一个可以点击的界面和网页原型的布局。iPlotz是基于Flash/Flex平台上的产品原型设计软件,允许你直接将各种元件通过鼠标的拖拽至画布上构建自己的Web项目;另外iPlotz还提供了基于Adobe AIR的客户端软件,从而能够方便用户在Windows、Mac OS X和Linux等不同平台上使用这款软件。

MockFlow

不仅是页面布局,MockFlow为开发者提供了一系列的写作Web创新服务,它是完全基于Web浏览视窗的产品。MockFlow内置了许许多多经常使用到的Widget控件,能够有效地帮助用户提高对传统软件以及富互联网应用软件的快速设计和交互式用户界面实体模型的规划进程。

Cacoo

Cacoo是一款用户在线绘图工具,允许你在线创建站点的原型、UML统一建模和框架图等。这款工具基于Flash技术,具有良好的用户体验。与此同时,Cacoo还支持实时的同步协作功能,允许多个用户同时对同一幅电子图表进行在线远程协作编辑等。

Creately

Creately在线图表制作协作平台是一款优秀的绘制产品原型的在线工具。Creately拥有50种图表、上千种样品构成的库和强大的协作功能,因此用起来很方便。

(文/侯亭 责编/张宁)

文章来源:smashingapplumzyCreately

http://www.csdn.net/article/2013-09-03/2816802-10-useful-prototype-tool

直接拿来用!10段超有用的Git命令行代码

 

摘要:本文分享了10条非常有用且先进的Git命令行语句,无论是运用在团队环境或是在私人项目中,你都可以直接来拿用。

本文分享了10条非常有用且先进的Git命令行语句,无论是运用在团队环境或是在私人项目中,你都可以直接来拿用。

1.  在最后提交中更改Export(Export changes done in last commit 

这个命令通常会使用定期发送已更改的项目,以方便其他人审查/集成。

 

1
git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)

 

2.  在两次提交之间更改Export文件(Export changed files between two commits)

同样地,如果你需要在两次提交之间更改文件,可以选择以下这段代码。

 

1
git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff --name-only OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE)

3. 克隆一个特定的远程分支(Clone a specific remote branch) 

 

如果你想从远程资源库中克隆一个特定的分支,而无需克隆整个资源库分支,那么下面的这段代码将对你有用。
 

 

 

1
2
3
git init 
git remote add -t BRANCH_NAME_HERE -f origin REMOTE_REPO_URL_PATH_HERE 
git checkout BRANCH_NAME_HERE

4.  从不相关的本地资源库中应用补丁(Apply patch from Unrelated local repository) 

这里有个快捷方式可帮助你实现。

 

1
2
view plaincopy to clipboardprint?
git --git-dir=PATH_TO_OTHER_REPOSITORY_HERE/.git format-patch -k -1 --stdout COMMIT_HASH_ID_HERE| git am -3 -k

5.  检查分支是否在其它分支中遭到更改(Check if your Branch changes are part of Other branch)

 

cherry这个命令,能够检查你的分支在其他分支中是否被更改。它会在当前的分支上显示变化,并注明+或-标识符。+代表不存在,-表示在现有的分支中存在。

 

1
2
3
4
view plaincopy to clipboardprint?
git cherry -v OTHER_BRANCH_NAME_HERE
#For example: to check with master branch 
git cherry -v master  <br>

 

6. 启动一个无历史记录的新分支( Start a new Branch with No History)

有时,你想启动一个新的分支,但并不想运行漫长的历史记录,例如,你想将代码放置在一个公共的域中(开源),但又不想共享历史。

 

1
git checkout --orphan NEW_BRANCH_NAME_HERE

7. 从其他分支签出文件但无需切换分支( Checkout File from Other Branch without Switching Branches 

这里将教你如何获取想要的文件。

 

1
git checkout BRANCH_NAME_HERE -- PATH_TO_FILE_IN_BRANCH_HERE

 

8. 忽略追踪文件中的更改( Ignore Changes in a Tracked File )

如果你是在某个团队中工作,他们都在使用同一个分支,也许你会频繁使用提取/合并(fetch/merge),但这有时需要重置特定的配置文件,这就意味着在每次合并后你必须去做更改。现在,使用这个命令,你可以要求Git忽略更改特定文件。

 

1
git update-index --assume-unchanged PATH_TO_FILE_HERE

9. 检查已提交部分是否在发布的版本中遭到更改(Check if committed changes are part of a release)
 

name-rev这个命令可以告诉你已提交到最新版本的某个位置。使用这个代码可帮助你检查,提交的部分是否在已发布版本中遭到更改。

1
git name-rev --name-only COMMIT_HASH_HERE

10. 用复位替代合并(Pull with rebase instead of merge )

当某项特性分支被合并到主流中,此时该分支合并会在Git中以合并提交来进行记录。但是当团队中多个成员在同一个分支上工作时,常规的合并会导致多个合并消息在日志中呈现混乱状态。因此,你可以使用复位(rebase)来保持历史清晰,清除无用的合并消息。

 

1
git pull --rebase

此外,你还可以通过配置一个特定的分支来复位。
 

 

1
git config branch.BRANCH_NAME_HERE.rebase true

英文出自: Webdeveloperplus

 

http://www.csdn.net/article/2013-08-22/2816665-10-useful-advanced-git-commands

基于Java的四大开源测试工具

摘要:成功的应用程序离不开测试人员和QA团队反复地测试,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况。

测试是应用程序生命周期里至关重要的一步,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况。

网络上许多开源的Java测试工具,然而真正经得起时间和实践考验的不多,本文例举了Java里的四大开源测试工具,这四个工具主要专注于前端测试,并且得到了测试人员和QA团队的广泛使用。

 

Apache JMeter——JMeter是一款开源的纯Java测试工具,其主要用于负载测试和性能测试。QA团队使用它来查找和发现相关的性能和负载管理问题,尤其是Web应用程序的性能问题。它可以用于对静态的和动态的资源(文件、Servlet、Perl脚本、Java对象、JDBC数据库连接和查询、FTP、HTTP、JMS、通用的TCP连接、LDAP和OS本地进程访问等)的性能进行测试。它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。

Jmeter架构提供了“out of the box”功能。此外,它还支持各种插件,这些插件可以实现其独特的创新功能,用户可以根据自己的需求进行自定义配置,添加相应地插件。

Selenium ——Selenium是一个开源的自动化测试工具,其主要用于Web应用程序的自动化测试,与其它测试工具不同的是,它可以在许多平台和操作系统上运行,可以直接在浏览器下运行,并且支持所有流行的测试框架和编程语言,如C++、Java、Python、Per和Ruby等。

Sahi ——Sahi是另一个开源的自动化Web测试工具,Sahi可以专门测试动态的AJAX应用程序,还带有非常出色的自动播放效果机制。其主要特点是:独立的平台和浏览器、出色的刻录机、无需等待、无需XPath、内置Java异常交互报告。

Robotium——Robotium是一款测试Android应用程序的开源自动化测试框架,应该说,Robotium是开发者们最常用的一款开源工具。主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium无需测试应用程序源码,并且安装简单、容易编写测试用例。当然,它还可以测试基于浏览器的一些Android应用程序,但前提是有些限制条件。

各位开发者,你们使用哪一款工具呢?

来自: Open Source Testing Tools in Java

http://www.csdn.net/article/2013-07-12/2816206-Open-Source-Testing-Tools-in-Java