Comments

抓包要有效率

前段时间一直在做一款社交类答题的App。深有体会的是,不管是前期研究竞品,还是后期和服务端联调,抓包调试都是必不可缺少的环节,而且抓包的效率深深的影响着开发的效率。

由于REST API 的盛行,已经有大量现成的工具可以方便的进行抓包,比如大名鼎鼎的Fiddler, 以及免费且跨平台的Rythem。应用开发者只需要简单的设置代理,抓包信息即可尽收眼底。而非REST API的抓包则相对来说就麻烦了许多,每抓一次包既要碰电脑敲命令,又要弄手机进行测试操作,很是忧桑。因此,为了提升效率,本猿就想到基于tcpdump 重新定制一个工具。想要的效果也不复杂,一个全局的悬浮窗,给出抓包控制按钮即可。这样调试起来,就不用来回切换那么麻烦了。

编译tcpdump

首先的工作当然是编译一个可用的tcpdump。虽然Android NDK 提供了方便的交叉编译工具,但是编译过程还是有不少的坑。比如android 不支持setprotoent以及endprotoent等。详细的编译过程,这里就不做讨论了。这里提供一个arm 版本的tcpdump for android 下载。(基于tcpdump-4.6.2.tar.gz,libpcap-1.6.2.tar.gz)

开发工具

整个工具只有一个界面,一个全局窗口。代码在放在Github 上,当然你也可以直接从Google play下载、使用。噢,前两天看到一个妹纸发了一张图和抓包相关,而且还不错,这里也mark 一下。

Comments

Why this?

  • 有私人项目(不限于代码以及设计方案)
  • 该项目(暂时)不公开
  • 需要版本控制
  • 虽然github 是一个不错的选择,但就项目目前状况而言premium 账号显得并不划算
  • 项目备份以及研发环境的迁移
  • and so on

How

  • 就像stage area是working directory与本地仓库的缓存,本地仓库是working directory与中心仓库之间的缓存
  • 我们把dropbox看成是中心仓库,那么working directory与中心仓库之间的缓存就是本地仓库了
  • 建立本地仓库git init <path to your project>
  • 构建stage areagit add .
  • 初始化提交git commit -m 'repo init'
  • 创建dropbox 中心仓库git init --bare ~/Dropbox/git/center.git
  • 建立远程连接git remote add dropbox ~/Dropbox/git/center.git
  • 备份本地仓库git push dropbox master
  • 拉取中心仓库git pull dropbox master
  • 若开发环境发生了迁移,比如从公司换到了家里,git clone ~/Dropbox/git/center.git

写在最后

  • 好的云存储服务有很多,而dropbox是客户端最完备的一个。本文介绍的方法显然不限于dropbox一家。
  • ~/Dropbox/是dropbox安装后的默认路径,不同的云存储的本地默认地址会不同
  • git子目录是我自己创建的,所以center.git也可以根据需求命名