3

我是 android 开发的新手,想创建一个带有节俭客户端的应用程序,该客户端在我的网络上使用节俭服务器。我已经得到了 thrift 定义文件和 thrift 编译器生成的 java 代码。

  1. 我需要如何开始?如何将 thrift 库添加到我的项目中?我是否需要自己编译它,如果是的话,我应该如何实现它以与 android 兼容?

  2. 我可以直接使用类似这样的自动生成功能吗

    public void getProduct(int productID, org.apache.thrift.async.AsyncMethodCallback resultHandler)
    

    对我的服务进行异步调用以便我遵循 android 最佳实践?或者使用此功能是否会以任何方式阻止我的应用程序,或者在 android 上是否有另一种优于此功能的方法?

我使用当前版本的 googles ADT (eclipse)。我的应用程序只需要在 android 4+ 设备上运行(我将 minSdkVersion 设置为15)。

4

2 回答 2

9

很抱歉堆积一个老问题。截至 2016 年 2 月,有一个特定于 Android 的 Thrift 编译器和客户端:https ://github.com/Microsoft/thrifty 。

它生成的类使用尽可能少的方法(比 Apache 实现小得多),并且生成的客户端默认是异步的。

于 2016-03-02T07:32:12.827 回答
7
  1. 是的,您需要自己构建适用于 Android 的 thrift-lib。Android 有自己的 httpcore,没有使用方法。在这里您可以找到如何更改 thrift-library:here 指令 之后只需将 jar 文件添加到 libs 文件夹并将其添加到构建路径中。

  2. 例子

    THttpClient hclient = new THttpClient("your/endpoint/url");
    TProtocol protocol = new TBinaryProtocol(hclient); // it depends on your data-format
    Service.Client client = new Service.Client(protocol);
    Product product = client.getProduct(int productID);
    

您需要将其作为 Android AsyncTask 执行:安卓开发者

于 2013-11-12T13:39:17.880 回答