私のプロジェクトでVolleyを使用することに関していくつか質問があります
$ git clone https://Android.googlesource.com/platform/frameworks/volley
$ cd volley
$ Android update project -p .
$ ant jar
次に、bin/volley.jar
をlibs/
フォルダーにコピーして、すぐに始めましょう!
Volleyレッスン では、GoogleがVolleyをプロジェクトにAndroid Libraryプロジェクトまたは.jar
ファイルとして追加するように指示します。
Android StudioまたはEclipseを使用してVolley .jar
ファイルを作成する方法は次のとおりです。
注:
どちらの場合も、バージョン管理を簡単にするために、.jar
ファイルの名前をVolleyの最新のコミット、つまりvolley_20150319.jar
に変更することをお勧めします。
[your local path to volley]/build/intermediate/bundles/
に移動しますdebug
フォルダーとrelease
フォルダーの両方に、classes.jar
というJARファイルがあります。libs/
フォルダーにコピーします。libs/
フォルダーに配置します。1)このライブラリは、通常のJavaプロジェクトのネットワークライブラリとしても使用できますかORはAndroid専用です
Android固有のクラスに依存するため、Android専用です。これは、ソースコードを調べることで RequestQueue
など のようにわかります。
2)ここには複数のブランチがありますが、どのブランチから始めるかについてのドキュメントはありません。どのブランチから始めるべきですか?
Google I | Oプレゼンテーションからの指示は、デフォルトでgit
ブランチからプルするmaster
リポジトリを複製することでした。
3)このライブラリを独自のプロジェクトに統合する方法は?より良いアプローチ:Volleyをスタンドアロンライブラリプロジェクトとして作成し、jarをスピンしてプロジェクトに配置するか、プロジェクト内のすべてのソースコードをコピーしますか?
Google I | Oプレゼンテーションからの指示は、ソースコードをプロジェクトに追加することでした。個人的には、これは奇妙なアプローチだと思います。
VolleyライブラリはAndroidオープンソースプロジェクトによって公開されています。
dependencies {
implementation 'com.Android.volley:volley:1.1.0'
}
UPDATE: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 の場合、ソースコードは公式のvolleyリポジトリと定期的に同期します。
単一のアプローチについて多くの答えがありますが、ボレーを実行するさまざまな方法を比較しているものはないので、私も2セントを入れます。この答えも自由に編集/強化してください。
[MyProjectPath]/app/libs/
フォルダーに配置しますright-click
で、Add As Library...
を選択しますgit clone https://github.com/git/git
を介して他にアクセスしてください...悪いものを探してください、しかし抵抗できませんでした^^)git clone https://Android.googlesource.com/platform/frameworks/volley
を実行します[path_where_you_typed_git_clone]/volley/src
内からcom
フォルダーをプロジェクトのapp/src/main/Java
フォルダーにコピーします(または、comフォルダーが既にある場合は、代わりに統合します!! ;-))
ファイルはAndroid Studioにすぐに表示されます。 Eclipseの場合は、src
フォルダーでright-click
を選択し、最初にrefresh
(またはF5
)を押す必要があります。
Git経由で行うことは、Androidチュートリアルで公式に提案されていることです( look here )。
プロジェクトのsrc/build.gradle
ファイルに、次のvolley依存関係を追加します。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// ...
compile 'com.mcxiaoke.volley:library:1.+'
}
Try Again
をクリックすると、すぐにファイルの上部に表示されます。そうでない場合はBuild
をクリックします。
ここでの主な「利点」は、これによりバージョンが最新に保たれることです。一方、他の2つのケースでは、ボレーを手動で更新する必要があります。
「欠点」は、公式にはグーグルからではなく、サードパーティの週刊ミラーです。
しかし、これらの両方のポイントは、あなたが必要とする/望んでいるものに本当に相対的です。また、更新が必要ない場合は、代わりに目的のバージョンを置きます。 compile 'com.mcxiaoke.volley:library:1.0.7'
。
独自のコード管理にGITを使用する場合、プロジェクトのサブモジュールとして単純に追加しないでください...
git submodule add https://Android.googlesource.com/platform/frameworks/volley -b master Volley
そうすれば、Volleyコードベースが更新されるため、更新が簡単になります...
git submodule git pull
独自のプロジェクトのメインVolleyクラスを変更のために拡張できます。これにより、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
}}));
Volleyが統合キャッシュ機能を利用できるように、サーバー側でHttp Expiresヘッダーを正しく設定することを忘れないでください
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.+'
}
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);
}
Eclipse Lunaを使用するには:
最初にGitからプロジェクトを複製します
$git clone https://Android.googlesource.com/platform/frameworks/volley
あなたが知っておくべきボレーのいくつかの基本的なクラスは
最初にvolleyを使用するには、RequestQueueのオブジェクトを作成する必要があります
RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());
2番目-> 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);
また、RequestQueryのシングルトンを作成することをお勧めします。
Volley jar(または任意のjar)をAndroid Studio 1.0.2に追加するのがかなり簡単になりました。 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)
の完了を求めるプロンプトを表示します。
それがあなたの好みであれば、ビルドされたデバッグaarを取得するのも非常に簡単です。
git clone https://Android.googlesource.com/platform/frameworks/volley
次に、別のディレクトリに新しいAndroidスタジオプロジェクト(通常のアプリプロジェクト)を作成します。それが完了したら、新しいサブモジュールを追加します(ファイル|新しいモジュール)。既存のプロジェクトをインポートするオプションを選択し、ボレーをチェックアウトしたディレクトリをポイントします。それが完了したら、モジュールを作成してaarファイルを作成できます。
Volleyプロジェクト を複製し、Gradleでライブラリを構築できるようにする構成ファイルを追加しました。
これにより、ライブラリをローカルのMavenリポジトリにインストールし、Gradle経由でAndroidプロジェクトから参照できます。
ライブラリを改善したさまざまなクローン があることに注意してください。それらを統合し、ライブラリのプライベート拡張バージョンをコンパイルする必要がある場合があります。
ライブラリ自体に加えて、ビルドスクリプトはJavaDocおよびsources archivesを生成します。
Volleyは、現在のプロジェクトリポジトリにgitサブモジュールとして追加できます。このgitサブモジュールは、Volleyの公式gitリポジトリを指します。したがって、サブモジュールポインターを更新するだけで、公式のgitリポジトリから更新を取得できます。
さらに、メインプロジェクトでVolleyをライブラリモジュールとして追加すると、簡単にカスタマイズできます。デバッグの目的にも非常に役立ちます。
これを実現するには、次の手順に従います。
ステップI:
ボレーをAndroidアプリケーションプロジェクトGITリポジトリのサブモジュールとして追加します。 git submodule add -b master https://Android.googlesource.com/platform/frameworks/volley Libraries/Volley
ステップII:
Settings.gradleで次を追加して、ボレーをスタジオプロジェクトモジュールとして追加します。 include :: Volley 'project(':Volley ')。projectDir = new File(' ../ Libraries/Volley ')
ステップIII:
App/build.gradleで、次の行を追加してVolley compile project( ':Volley')をコンパイルします。
それだけです! Volleyはプロジェクトに正常に追加されました。
Google公式Volleyのリポジトリから最新のコードを取得するたびに、次のコマンドを実行するだけです
git submodule foreach git pull
詳細情報: https://gitsubmoduleasandroidtudiomodule.blogspot.in/
GIT Repoサンプルコード: https://github.com/arpitratan/AndroidGitSubmoduleAsModule
サポートライブラリが2行目にリストされているときに問題に直面しました。これらの2つのステートメントを並べ替えることは私のために働いた。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.mcxiaoke.volley:library:1.0.6'
compile 'com.Android.support:support-v4:20.+'
}
Volley で作業するのが大好きです。開発時間を節約するために、小さな便利なライブラリ Gloxey Netwok Manager を作成して、プロジェクトでVolleyをセットアップしようとしました。これには、JSONパーサーと、ネットワークの可用性の確認に役立つ他のさまざまな方法が含まれています。
ライブラリには、Volley StringおよびVolley JSONリクエストのさまざまなメソッドが含まれるConnectionManager.class
が用意されていますご利用いただけます。ヘッダーの有無にかかわらず、GET、PUT、POST、DELETEのリクエストを行うことができます。完全なドキュメントを読むことができます こちら 。
この行をgradleファイルに入れるだけです。
依存関係{
compile 'io.gloxey.gnm:network-manager:1.0.1'
}