从下面Android代码可以得到一些有限的提示:
Service to communicate to the Google Location Server (GLS) via MASF server
// Methods exposed by the MASF server
private static final String REQUEST_QUERY_LOC = "g:loc/ql";
private static final String REQUEST_UPLOAD_LOC = "g:loc/ul";
可以认为,MASF是一个中继服务器,客户端和MASF服务器交互,然后MASF服务器再和Google真正的服务器交互。
客户端和MASF服务器交互通过HTTP协议,数据格式是protocol buffer,已经有jar包:
https://github.com/android/platform_external_googleclient/blob/master/googleclient-lib.jar
在请求的数据中,可以指定请求的服务的URL,版本号等信息。
一些定义:
public static final short PROTOCOL_VERSION_0_0 = 0;
public static final short PROTOCOL_VERSION_0_1 = 1;
public static final short SERVICE_VERSION_0 = 0;
public static final short SERVICE_VERSION_1 = 1;
public static final short SERVICE_VERSION_2 = 2;
public static final int BLOCK_TYPE_REQUEST_HEADER = 1;
public static final int BLOCK_TYPE_REQUEST_PLAIN = 256;
public static final int BLOCK_TYPE_REQUEST_MULTIPART = 257;
public static final int BLOCK_TYPE_RESPONSE_NON_MULTIPART = 33024;
public static final String ENCODING_GZIP = "g";
public static final String ENCODING_NOP = "n";
public static final String ENCODING_NONE = "";
MASF交互解析
本文解析了MASF(中继服务器)在Android系统中与GoogleLocationServer间的交互过程,客户端通过特定HTTP请求与MASF服务器通信,再由MASF服务器与Google服务器进行数据交换。文中详细介绍了请求方法、数据格式及协议版本等关键信息。
723

被折叠的 条评论
为什么被折叠?



