排球Android网络库

时间:2013-05-20 22:54:29

标签: android http android-networking android-volley

关于在我的项目中使用Volley,我几乎没有问题:

  1. 可以在任何Java项目中使用此库吗?还是只使用Android?
  2. 我看到多个分支here,并且没有关于哪个分支开始的文档。我应该使用哪个分支开始?
  3. 如何将此库集成到您自己的项目中?什么方法更好:将Volley作为一个独立的库项目并旋转一个jar并将其放入项目中或复制项目中的所有源代码?

19 个答案:

答案 0 :(得分:205)

$ git clone https://android.googlesource.com/platform/frameworks/volley
$ cd volley
$ android update project -p .
$ ant jar

然后,将bin/volley.jar复制到您的libs/文件夹中,然后离开!

source

答案 1 :(得分:73)

Volley lesson中,Google会指示将Volley添加到我们的项目中作为Android库项目或.jar文件。

以下是使用 Android Studio Eclipse 创建Volley .jar文件的方法:

注意:

在这两种情况下,我建议将.jar文件重命名为Volley最新提交的日期,即volley_20150319.jar,以保持版本简单。


Android Studio:

  1. 通过Git克隆Volley存储库。
  2. 将项目导入Android Studio。 (我通常在Android Studio中导入时选择项目的gradle文件)
  3. 构建项目。 (我必须更改gradle构建设置以反映最新的构建工具和gradle版本,但它通常是最新的。)
  4. 在文件资源管理器中,导航至[your local path to volley]/build/intermediate/bundles/
  5. debugrelease文件夹中,您都会找到名为classes.jar的JAR文件。
  6. 将任一JAR文件复制到libs/文件夹中。
  7. Gradle sync,你就完成了。

  8. 蚀:

    1. 通过Git克隆Volley存储库。
    2. 将项目导入eclipse。
    3. 右键点击该项目,然后选择导出...
    4. 选择 Java / JAR文件
    5. 我们只对 src 文件夹感兴趣,而不是其他任何内容。确保仅选择它的最简单方法是取消选择项目,然后选择里面的 src 文件夹。
    6. 检查导出生成的类文件和资源选项。
    7. 可选:如果您希望Javadoc可见,请选择导出Java源文件资源
    8. 创建JAR文件并将其放在libs/文件夹中。

答案 2 :(得分:48)

  

1)此库是否也可用作普通Java项目中的网络库,或者仅限Android版

仅适用于Android,因为它取决于Android特定的类。您可以通过查看源代码来了解这些内容like RequestQueue

  

2)我在这里看到多个分支,没有关于哪个分支开始的文档。我应该使用哪个分支开始?

来自Google I | O演示文稿的说明只是克隆了git repo,默认情况下会从master分支中提取。

  

3)如何将此库集成到您自己的项目中?哪种方法更好:将Volley作为一个独立的库项目并旋转一个jar并将其放入项目中或将所有源代码复制到项目中?

Google I | O演示文稿中的说明是将源代码添加到您的项目中。就个人而言,我发现这是一种奇怪的方法。

答案 3 :(得分:41)

您可以下载volley.jar

来源:AndroidHive

Volley.jar复制到libs

,然后

右键点击volley.jar ->添加为库

enter image description here

答案 4 :(得分:25)

The Volley library is now published by the Android Open Source Project:

In [52]: %timeit sum(power(1.1, 100))
100000 loops, best of 3: 7.67 µs per loop

In [51]: %timeit sum(powernumba(1.1, 100))
The slowest run took 5.64 times longer than the fastest. This could mean that an intermediate result is being cached 
100000 loops, best of 3: 2.64 µs per loop

答案 5 :(得分:16)

<强>更新 Volley现已正式发布,可通过JCenter获得。以下是如何导入它:

compile 'com.android.volley:volley:1.0.0'

牺牲方式:

如果您正在使用Gradle,则可以从here导入Volley。

dependencies {
    compile 'com.mcxiaoke.volley:library:1.0.+'
}

注意

  

对于Changelog,这是一个非官方镜像(有一些小错误修正,请参阅android volley library。),源代码将定期与官方排球库同步。

答案 6 :(得分:13)

多种方式

由于关于单一方法的答案很多,但没有一种方法可以比较不同的方法来获得凌空运行,我也把我的两分钱放进去。随意编辑/增强这个答案。

将其添加为库 - (快速解决方案)

  1. androidhive
  2. 下载
  3. 将其放入[MyProjectPath]/app/libs/文件夹
  4. 在其上的Android Studio right-click中选择Add As Library...
  5. 来自git的源文件 - (一个相当官方的解决方案)

    1. 下载/安装git client(如果您的系统尚未安装)   (通过git clone https://github.com/git/git的其他信息... sry bad one,但无法抗拒^^)
    2. 执行git clone https://android.googlesource.com/platform/frameworks/volley
    3. com文件夹从[path_where_you_typed_git_clone]/volley/src复制到项目app/src/main/java文件夹(或者将其集成,如果您已经有com文件夹!! ;-))

      文件会立即显示在Android Studio中。对于Eclipse,您必须right-click文件夹中的src并先按refresh(或F5)。

      通过git进行操作是android教程(look here)中正式建议的内容。

    4. 通过“非官方”镜子进行Gradle - (动态解决方案)

      1. 在项目的src/build.gradle文件中添加以下排球依赖:

            dependencies {
                compile fileTree(dir: 'libs', include: ['*.jar'])
                // ...
        
                compile 'com.mcxiaoke.volley:library:1.+'
            }
        
      2. 点击文件顶部应显示的Try Again,如果不是,则点击Build

        这里的主要“优势”是,这将使版本保持最新状态,而在其他两种情况下,您必须手动更新凌空。

        在“不利方面”,它不是正式来自谷歌,而是第三方每周镜像。

        但是这两点都与你需要/想要的相关。 此外,如果您不想要更新,只需将所需的版本放在那里,例如compile 'com.mcxiaoke.volley:library:1.0.7'

答案 7 :(得分:11)

如果您使用GIT进行自己的代码管理,为什么不简单地将它作为子模块添加到项目...

git submodule add https://android.googlesource.com/platform/frameworks/volley -b master Volley

这样,随着Volley代码库的更新,更新很简单......

git submodule git pull

您可以在自己的项目中扩展主要的Volley类进行修改,这样您就不必每次更新Volley框架时都不得不编写更改。

答案 8 :(得分:8)

这是一个针对Volley Http请求的小型快速入门,它非常易于集成。

  • 您需要一个应用程序范围的Volley RequestQueue:

    1. private static RequestQueue reqQueue;
    

您可以将它放在Application类中,并通过getRequestQueue()使其静态可用。

  • 然后你已经可以使用RequestQueue.add()方法用Volley执行第一个请求。

    2. reqQueue.add(...)
    
  • 使用JsonObjectRequest查询单个对象,使用JsonArrayRequest查询对象列表。

    queue.add(new JsonArrayRequest(URL, new Listener<JSONArray>() {
    
        @Override
        public void onResponse(JSONArray response) {
            //SUCCESS
        }}, new ErrorListener() {
    
        @Override
        public void onErrorResponse(VolleyError error) {
            //ERROR
        }}));
    
  • 请记住在服务器端正确设置Http Expires标头,以便Volley可以利用它的集成缓存功能

答案 9 :(得分:2)

这是Android Studio ang Gradle的另一种方式:

您需要项目的build.gradle中的下一个(在您的应用程序结构级别):

repositories {
    maven {
        url 'https://github.com/Goddchen/mvn-repo/raw/master/'
    }
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:20.+'
    compile 'com.android:volley:1.+'
}

答案 10 :(得分:1)

首先从Git克隆项目

$git clone https://android.googlesource.com/platform/frameworks/volley
  • 在日食中导入截击。
  • 右键点击您的项目 - &gt;属性 - &GT;机器人
  • 添加库 - &gt;选择凌空 (如果你没有在那里看到凌空,请点击排球库,转到属性和android并点击库)
  • 将volley添加为库后,您可以在应用程序中开始使用它。

你应该知道的一些基本排球类

  • 请求队列
  • JsonArrayRequest
  • JsonObjectRequest

首先使用排球,你需要创建RequestQueue的对象

RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());

第二 - &gt;使用JsonArrayRequest或JsonObjectRequest

发出请求
JsonArrayRequest mJsonRequest = new JsonArrayRequest(url, 
            new Listener<JSONArray>() {

                @Override
                public void onResponse(JSONArray response) {
                    // here you can parse response and use accordingly
                }
            }, new ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    // here you will receive errors and show proper message according to error type

                }
            });

最后将请求放入队列中。即

mQueue.add(mJsonRequest);

我还建议你制作一个SingleQuery of RequestQuery。

答案 11 :(得分:1)

向Android Studio 1.0.2添加Volley jar(或任何jar)现在变得相当容易。在Android Studio外部,将volley.jar复制到<yourproject>/app/libs(应该已经存在)。由于默认的Gradle设置包含以下行:

 compile fileTree(dir: 'libs', include: ['*.jar'])

......现在一切都已设置完毕。这可能看起来不是这样,因为默认的项目结构视图(File -> Project Structure)没有显示libs目录。要查看它,您需要使用项目结构视图上方的微调器将Android更改为Project

您可以看到它正在构建应用程序(可能没有必要),然后开始输入这样的代码:

 RequestQueue request

您会看到Android Studio会提示您完成RequestQueue (com.android.volley)

答案 12 :(得分:1)

如果你愿意,也很容易得到一个调试版。

git clone https://android.googlesource.com/platform/frameworks/volley

然后在另一个目录中创建一个新的Android工作室项目(只是一个常规应用程序项目)。完成后,添加一个新的子模块(文件|新模块)。选择导入现有项目选项,并将其指向您检出凌空的目录。一旦完成,你可以制作你的模块,它将创建一个aar文件。

答案 13 :(得分:1)

使用eclipse Luna你必须:

  • 从GIT克隆它。
  • 将JAVA文件夹下的文件夹COM剪切(复制并删除)到常规Android项目中的SRC文件夹下面。
  • 将project.properties目标更改为15而不是8。
  • 建立项目。
  • 将项目导出为包含源文件的jar文件 - 使用导出工具。
  • 在导出的jar中只保存COM文件夹和META-INF文件夹,删除所有其他文件夹 - 使用zip工具删除jar的内容。
  • 使用此jar作为您的Volley jar项目。
  • 将Volley jar放入目标Android项目的lib文件夹中。

答案 14 :(得分:1)

如果您使用的是Android Studio,则应将此行放在gradle文件中

compile 'com.mcxiaoke.volley:library:1.0.15'

如果你想使用GET方法,你应该有类似的东西。

private void weatherData() {
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(
        Request.Method.GET,
        "URL with JSON data",
        new Response.Listener<JSONObject>() {
             @Override
             public void onResponse(JSONObject response) {
                 try {
                      //Your code goes here      
                 } catch (JSONException e) {
                      Log.e("TAG", e.toString());
                 }
             }
        }, 
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
            }
        });
    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(jsonObjReq);
}

但是如果你想在服务器上发布数据,那么你应该构建一个HashMap,Volley库将这些键/对值转换为JSON对象,然后再将它们发布到服务器中。这是一个例子。

final HashMap<String, String> postParams = new HashMap<String, String>();
postParams.put("username", username);
postParams.put("password", password);

Response.Listener<JSONObject> listener;
Response.ErrorListener errorListener;
final JSONObject jsonObject = new JSONObject(postParams);

JsonObjectRequest jsonObjReq = new JsonObjectRequest(
    "YOUR URL WITH JSON DATA", 
    jsonObject,
    new com.android.volley.Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            Log.d("TAG", response.toString());
            try {
                if (response.getString("status").equals("fail")) {

                } else if (response.getString("status").equals("success")) {

                } catch (JSONException e) {
                     Log.e("TAG", e.toString())
                }
            }
        }, 
        new com.android.volley.Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
             //VolleyLog.d("TAG", "Error: " + error.getMessage());
            //pDialog.dismiss();

        }
    }) {
        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }
    };
    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);

    VolleySingleton.getInstance(getApplicationContext()).
    addToRequestQueue(jsonObjRequest);
 }

答案 15 :(得分:0)

  

Volley可以作为当前项目回购中的git子模块添加。   这个git子模块将指向Volley的官方git repo。   因此,您只需更新子模块即可从官方git仓库获取更新   指针。

     

如果您将Volley添加为主要的库模块,还可以进一步添加   项目,您可以轻松自定义它。它对调试非常有用   目的也是。

要实现此目的,请按照以下步骤操作:

第一步:

在Android应用程序项目GIT Repo中添加volley作为子模块。 git submodule add -b master https://android.googlesource.com/platform/frameworks/volley Libraries / Volley

第二步:

在settings.gradle中,添加以下内容以将volley添加为工作室项目模块。 包括&#39;:排球&#39; 项目(&#39;:Volley&#39;)。projectDir =新文件(&#39; ../ Libraries / Volley&#39;)

第三步:

在app / build.gradle中,添加以下行来编译Volley  编译项目(&#39;:Volley&#39;)

这就是全部! Volley已成功加入该项目。

  

每次您想从Google官方获取最新代码   Volley的回购,只需运行以下命令

git submodule foreach git pull

有关详细信息:https://gitsubmoduleasandroidtudiomodule.blogspot.in/

GIT Repo示例代码:https://github.com/arpitratan/AndroidGitSubmoduleAsModule

答案 16 :(得分:0)

未来读者

我喜欢与Volley合作。为了节省开发时间,我尝试编写一个小方便的库Gloxey Netwok Manager来设置我的项目Volley。它包括 JSON解析器以及其他有助于检查网络可用性的方法。

图书馆提供ConnectionManager.class,其中提供了 Volley String Volley JSON 请求的不同方法。您可以在有或没有标题的情况下发出 GET,PUT,POST,DELETE 的请求。 您可以阅读完整文档here

只需将此行放入您的gradle文件中即可。

依赖项{

   compile 'io.gloxey.gnm:network-manager:1.0.1'

}

答案 17 :(得分:0)

当第二行列出支持库时,我遇到了问题。重新排序这两个陈述对我有用。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.mcxiaoke.volley:library:1.0.6'
    compile 'com.android.support:support-v4:20.+'
}

答案 18 :(得分:0)

我克隆了Volley project并添加了配置文件,这些文件允许使用Gradle构建库。

通过这个,您可以将库安装到本地Maven存储库中,并通过Gradle从Android项目中引用它。

要求

  1. 的Maven
  2. 摇篮
  3. 如何使用

    1. 克隆my repository
    2. 构建并安装Volley库
    3. 在Android项目中引用库
    4. 错误修正

      请注意various clones out there which have improvements for the library。可能需要集成它们并编译您的私有增强版本的库。

      优势

      除了库本身,构建脚本还会生成 JavaDoc 源存档