shadowsocks-android的源码编译

mingming 2015-09-16

  最近公司在做一个手机app 3g/4g全局代理上网的功能,由于客户端开发组缺人,我自告奋勇来帮忙写安卓的这一块sdk代码。因为我写的远程代理服务器是基于socks5协议,所以决定在客户端借鉴同样基于socks5协议的shadowsocks来做。为了研究shadowsocks,首先必须得把客户端代码的工程给搭建起来。按以下的步骤,一小时之内(包括下载时间,视你的网速而定),各位看客应该也能很快的编译自己的shadowsocks-android工程。

【以下操作都是在win7 64bit上进行】

  1.  因为shadowsocks是发布在github上的,所以得先下载一个git的客户端工具,地址:http://www.git-scm.com/download/,安装完成后,在安装目录找到git-bash.exe执行,git-bash在win上模拟了一个linux环境,它的操作指令与linux基本无差别。需要注意的是如果在git-bash环境中需要访问win的系统盘,只需输入 "cd d:",这样就能进入D盘根目录。
  2. 在git-bash环境中,新建一个目录shadowsocks,进入这个目录,执行git clone https://github.com/shadowsocks/shadowsocks-android.git 开始下载源码主干部分
  3. 主干部分下载完成后,进入下载的shadowsocks-android目录,执行git submodule update --init,下载它的分支部分。
  4. 因为它的sdk部分的代码是用的scala语言,所以要安装一个scala语言环境和构建工具sbt和(请自行百度,安装配置跟jdk没什么区别,scala是基于jvm编译的)。
  5. 安装android sdk和ndk,ndk版本需要android-ndk-r10d+,sdk我用的版本是21
  6. 设置安卓的sdk和ndk的环境变量,`ANDROID_HOME`,`ANDROID_NDK_HOME`
  7. 需要打包安装的话,要key文件,我只是需要研究源码,所以跳过此步
  8. 在shadowsocks-android目录下执行,./build.sh 编译ndk库
  9. 最后执行 sbt clean android:package-release,编译app,最后的源码目录是这个样子shadowsocks-android\src\main
  10. shadowsocks-android的源码编译 
  11. 题外话, 要注意的是,我在使用eclipse+scala插件、eclipse-scala(官方ide)时,scala编译均有莫名其妙的问题,google了很久,解决方案很复杂难得看了,这两个ide反正支持不是很好,推荐使用intellij idea编译scala,还有尽量不要使用java和scala混合编译,在类型构造比较复杂的情况下,运行期会出错。

相关推荐