齐射的Androidnetworking库

在我的项目中使用Volley我有几个问题:

  1. 这个库可以用于任何Java项目或只是Android?
  2. 我在这里看到多个分支,没有关于哪个分支开始的文档。 我应该用哪个分支开始?
  3. 你如何将这个库集成到你自己的项目中? 什么方法更好:将Volley作为一个独立的库项目,并将一个jar放到项目中,或者将所有源代码复制到项目中?
$ git clone https://android.googlesource.com/platform/frameworks/volley $ cd volley $ android update project -p . $ ant jar 

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

资源

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

以下是如何使用Android StudioEclipse创buildVolley .jar文件:

注意:

在这两种情况下,我build议将.jar文件重命名为Volley的最新提交date,即volley_20150319.jar ,以便简化版本控制。


Android Studio:

  1. 通过Git克隆Volley仓库。
  2. 将项目导入到Android Studio。 (我通常在Android Studio导入时select项目的gradle文件)
  3. build立这个项目。 (我不得不改变gradle构build设置以反映最新的构build工具和gradle版本,但通常是最新的)。
  4. 在你的文件资源pipe理器中,导航到[your local path to volley]/build/intermediate/bundles/
  5. debugrelease文件夹中,你会发现一个叫做classes.jar的JAR文件。
  6. 将JAR文件复制到您的libs/文件夹。
  7. Gradle同步,你就完成了。

蚀:

  1. 通过Git克隆Volley仓库。
  2. 将项目导入到eclipse中。
  3. 右键单击该项目并select导出…
  4. selectJava / JAR文件
  5. 我们只对src文件夹感兴趣,没有别的。 确定只有它被选中的最简单的方法是取消select项目,然后select里面的src文件夹。
  6. 检查导出生成的类文件和资源选项。
  7. 可选:如果您希望Javadoc可见,请select“ 导出Java源文件资源”
  8. 创buildJAR文件并将其放在libs/文件夹中。

1)这个库也可以在普通Java项目中用作networking库,或者仅限于Android Only

它仅适用于Android,因为它依赖于Android特定的类。 您可以通过查看源代码来了解RequestQueue

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

来自Google I | O演示文稿的说明仅仅是克隆了默认情况下从master分支拉取的git仓库。

3)如何将这个库集成到你自己的项目中? 什么方法更好:将Volley作为一个独立的库项目,并将一个jar放到项目中,或者将所有源代码复制到项目中?

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

你可以下载volley.jar

来源: AndroidHive

Volley.jar复制到libs

然后

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

在这里输入图像说明

Volley图书馆现在由Android开源项目发布:

 dependencies { compile 'com.android.volley:volley:1.0.0' } 

更新:排球现在是正式的,可通过JCenter使用。 以下是如何导入它:

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

分类方式:

如果你使用Gradle,你可以从这里inputVolley。

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

注意

这是一个非官方的镜像(有一些小错误修正,请参阅更新日志的详细信息。)对于android排球库 ,源代码将定期与官方仓库同步。

很多方面

既然关于单一的方法有很多答案,但是没有一个比较不同的方法来让我们的排球和跑步,我也把我的两分钱。随意编辑/增强这个答案。

将其添加为库 – (快速解决scheme)

  1. 从: androidhive下载它
  2. 把它放在你的[MyProjectPath]/app/libs/文件夹中
  3. 在Android Studio中right-click它并selectAdd As Library...

来自git的源文件 – (一个相当官方的解决scheme)

  1. 下载/安装git客户端 (如果你还没有在你的系统上)(othervise通过git clone https://github.com/git/git … sry坏的一个,但无法抗拒^^)
  2. 执行git clone https://android.googlesource.com/platform/frameworks/volley
  3. [path_where_you_typed_git_clone]/volley/srccom文件夹复制到你的项目app/src/main/java文件夹中(或者把它整合起来,如果你已经有一个com文件夹的话!!)

    这些文件立即在Android Studio中显示。 对于Eclipse,您将不得不right-click src文件夹并先按refresh (或F5 )。

    通过Git做它是在android教程中正式build议( 看这里 )。

Gradle通过“非官方”镜像 – (dynamic解决scheme)

  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'

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

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

这样,随着Volley代码库的更新,更新起来非常简单。

 git submodule git pull 

您可以在您自己的项目中扩展主Volley类进行修改,这样可以避免每次更新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可以利用它的集成cachingfunction

这里Android Studio的另一种方式是使用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.+' } 

首先从Git克隆项目

 $git clone https://android.googlesource.com/platform/frameworks/volley 
  • 在蚀中import凌空。
  • 右键单击你的项目 – > Property-> android
  • 添加库 – >select凌空(如果你没有看到凌空那里,rigth点击凌空库,转到属性和android和点击库)
  • 在添加volley作为库之后,您可以开始在应用程序中使用它。

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

  • 请求队列
  • JsonArrayRequest
  • JsonObjectRequest

要首先使用抽象,你需要创buildRequestQueue的对象

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

其次 – >使用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); 

另外我会build议你做一个单一的RequestQuery。

在Android Studio 1.0.2中添加一个Volley jar(或任何jar)现在变得相当容易了。 从Android Studio外部,将volley.jar复制到<yourproject>/app/libs (它应该已经存在)。 因为默认的Gradle设置包含这一行:

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

一切都已经build立起来了 这可能不是这样,因为默认的项目结构视图(File -> Project Structure)不显示libs目录。 要看到它,您需要使用“项目结构”视图上方的微调器将Android更改为“ Project

您可以通过构build应用程序(可能不是必需的)看到它正在工作,然后开始input如下代码:

  RequestQueue request 

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

如果你喜欢的话,它也很容易得到debugging。

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

然后在一个不同的目录中创build一个新的Android Studio项目(只是一个普通的应用程序项目)。 一旦完成,添加一个新的子模块(文件|新模块)。 select导入现有项目选项并将其指向您抽出的目录。 一旦完成,你可以使你的模块,它会创build一个文件。

使用月食Luna你必须:

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

如果你正在使用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); } 

我克隆了Volley项目并添加了允许使用Gradle构build库的configuration文件。

  • Google Android Volley的Gradle准备克隆

有了这个,你可以将库安装到你的本地Maven仓库,并通过Gradle从一个Android项目中引用它。

要求

  1. Maven的
  2. 摇篮

如何使用

  1. 克隆我的仓库
  2. 构build并安装Volley库
  3. 在Android项目中引用该库

Bug修复

请记住,在那里有各种克隆图书馆有改善 。 可能需要整合它们并编译你的私有增强版本的库。

优点

除了库本身,构build脚本还会生成JavaDoc源档案

当支持库被列在第二行时,我遇到了一个问题。 重新sorting这两个声明对我有效。

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

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

此外,如果您在主项目中添加Volley作为库模块,则可以轻松地对其进行自定义。 这对于debugging目的也是非常有用的。

要做到这一点,请按照下面的步骤:

第一步:

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

第二步:

在settings.gradle中,添加以下内容将volley添加为studio项目模块。 包括':排气'项目(':排气')。projectDir =新文件('../图书馆/排气')

第三步:

在app / build.gradle中,添加下面一行来编译Volley编译项目(':Volley')

这将是所有! Volley已经成功添加到项目中。

每次你想从谷歌官方的Volley的回购中获得最新的代码,只需运行下面的命令

 git submodule foreach git pull 

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

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

对于未来的读者

我喜欢和Volley一起工作。 为了节省开发时间,我试着写一个小方便的库Gloxey Netwok Manager来设置我的项目Volley。 它包括JSONparsing器和其他不同的方法来帮助检查networking可用性。

库提供了ConnectionManager.class ,其中针对Volley StringVolley JSON请求的不同方法可用。 您可以使用或不使用标题来请求GET,PUT,POST,DELETE 。 你可以在这里阅读完整的文档。

把这行放在你的gradle文件中。

依赖{

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

}