- A+
Android开发是时下非常吃香的一个岗位,毕竟当下 Android占市场比例份量那么大,使用 Android操作系统的人满大街都是,那么学习 Android开发时也要学习加速器的相关知识,本文主要讲关于Android 加速器 的编程。
加速器的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用购买路由器等硬件设备。加速器技术原是路由器具有的重要技术之一,目前在交换机,防火墙设备或Windows2000等软件里也都支持加速器功能,一句话,加速器的核心就是在利用公共网络建立虚拟私有网。虚拟专用网(加速器)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。
关于Android 加速器编程,网上的资料比较少,本人最近有一个关于在Android平台下开发加速器 客户端的项目,在项目刚开始的时候,进行比较艰难,主要是android(4.0之前)的加速器领域鲜有API可供直接调用,也没有官方的说明文档。经过将近一个星期的研究,终于有些头绪,在此本人愿将一些经验与大家共享。
为了研究android 加速器,本人下载一些apk,通过反编译工具apktool,查看了一些代码片段,虽然反编译之后的代码不易于阅读,但是还是提供了一些有用的信息。通过对apk的debug,本人发现很多apk都引入了xink加速器开发包。非常感谢xink加速器的开发者,抽取并封装了Android系统不对外访问的API,并提供了完整的代码,到目前为止可能对于SDK10之后的访问还存在问题,对于SDK14之前可以在此基础上进行一些修改,对于SDK14(Android4.0)后,则无法调用到公开的Android API接口,因此需要另外的研究。
需要注意的是,对于android 4.0之前的版本,如果采用l2tp secret,ipsec 方式,则需要获得root权限,并写入Keystore;对于PPTP和L2tp则不需要,但是因为其采用的是非加密方式,因此安全性要差一些。
关于xink加速器,有兴趣的读者可以到网上进行下载并运行,在此不再重复。
本人的项目要求是用户不需要输入用户名/密码/服务器IP等和加速器设置有关的参数,就可以直接连接到加速器。因此链接加速器的操作要在后台进行,这样就要对账户进行封装。当然本文的代码也可以供非此类情况的使用。
首先建立一个保存加速器 Profile的抽象类,供PPTP,L2tp,L2tpIpsecPsk等扩展,此抽象类如下
PPTP的扩展如下
请自行填入关于PPTP的账户信息,如果没有的话,可以到网上找一个加速器的免费代理,申请帐号。
L2TP IP Sec的代码如下,
请自行填入关于账户的相关信息。
建立好账户的类之后,就是把账户存入Profile,
接着是连接到账户
最后需要对连接的状态进行监听,
本文主要讲了保存加速器 Profile的抽象类,供PPTP,L2tp,L2tpIpsecPsk等扩展的步骤,从而实现Android 加速器 编程。