・トランスポートで「HttpsTransportSE」を使うだけ。
・オレオレ証明だと、APIでエラーになり使えない。
→テストができない!
実機 :comodoのフリーSSL(3か月間のみ)を使う
エミュ:Androidをroot化してルート証明書を入れる。
KSOAPの一部(HttpsServiceConnectionSE)を作り替える。
全てのHost名を検証にパスするよう素通しのHostnameVerifierを設定する。
※補足:Tomcatを自己証明書でSSLにする方法
JDK標準のkeystoreを使う。
対話形式で色々聞かれるので入力していき、公開鍵を生成する。
これをTomcatに設定すればOK
詳細はここ→http://buzzmemo.blogspot.com/2010/03/tomcatssl.html
※補足:Androidエミュへのルート証明書インストール
事前に…証明書をブラウザからエクスポートしておく必要あり。
BKSのライブラリをDLしてパス通しておく必要あり。
詳細はここ→http://www.glamenv-septzen.net/view/969
↓コマンド例
emulator -avd 2.2 -partition-size 128
adb pull /system/etc/security/cacerts.bks
keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias shomeisho -file shomeisho.crt
adb remount
adb push cacerts.bks /system/etc/security/cacerts.bks
2011年7月13日水曜日
ksoap2 android のコーディングメモ
だいたい次のような流れ実装
・SOAPの設定値宣言
ネームスペース、メソッド名、soapアクション、リクエストURL
・パラメータの作成
プリミティブ指定とオブジェクト指定がある。
パラメータに属性を付与するためにPropertyInfoオブジェクトを作成し、それにパラメータをセットします。
同じネームスペースのパラメータは、同じネームスペースを設定するといいかんじにしてくれる。
・SOAPエンベロープ作成(中身)
・HTTPトランスポート作成(外側)
・HTTPヘッダ作成(任意)
・リクエスト実施(httpTransp.call(SOAP_ACTION, envelope, headerList))
HTTPトランスポートに、soapアクション、SOAPエンベロープ、HTTPヘッダを渡してcallするのみ
・レスポンス抽出(envelope.getResponse())
レスポンスのタグの数によって勝手に変換されます。
0…null
1…オブジェクト単独で帰ってくる。
2以上…Vectorクラスにレスポンスのオブジェクトが順番に格納さる。
・SOAPの設定値宣言
ネームスペース、メソッド名、soapアクション、リクエストURL
・パラメータの作成
プリミティブ指定とオブジェクト指定がある。
パラメータに属性を付与するためにPropertyInfoオブジェクトを作成し、それにパラメータをセットします。
同じネームスペースのパラメータは、同じネームスペースを設定するといいかんじにしてくれる。
・SOAPエンベロープ作成(中身)
・HTTPトランスポート作成(外側)
・HTTPヘッダ作成(任意)
・リクエスト実施(httpTransp.call(SOAP_ACTION, envelope, headerList))
HTTPトランスポートに、soapアクション、SOAPエンベロープ、HTTPヘッダを渡してcallするのみ
・レスポンス抽出(envelope.getResponse())
レスポンスのタグの数によって勝手に変換されます。
0…null
1…オブジェクト単独で帰ってくる。
2以上…Vectorクラスにレスポンスのオブジェクトが順番に格納さる。
ksoap2 android の インストール
▼Maven化している場合
・pom.xmlに下記を追加のみ
<project>
...
<repositories>
<repository>
<id>googlecode-ksoap2-android</id>
<name>googlecode-ksoap2-android</name>
<url>http://ksoap2-android.googlecode.com/svn/m2-repo</url>
</repository>
</repositories>
...
<dependencies>
<dependency>
<groupId>com.google.code.ksoap2-android</groupId>
<artifactId>ksoap2-android</artifactId>
<version>2.5.7</version>
</dependency>
</dependencies>
...
</project>
▼Maven化してない場合
・動くけどEclipseのコンソールにビルドの度に警告が出る。
・サイトからライブラリをDLして、Androidプロジェクトにライブラリとして取り込む。
・サイトのライブラリの場所がわかりずらい。
「http://code.google.com/p/ksoap2-android/」アクセス
「downloads」クリック
「http://code.google.com/~中略~/ksoap2-android-assembly-2.5.7-jar-with-dependencies.jar」クリック
「View raw file」クリックしてDL
・pom.xmlに下記を追加のみ
<project>
...
<repositories>
<repository>
<id>googlecode-ksoap2-android</id>
<name>googlecode-ksoap2-android</name>
<url>http://ksoap2-android.googlecode.com/svn/m2-repo</url>
</repository>
</repositories>
...
<dependencies>
<dependency>
<groupId>com.google.code.ksoap2-android</groupId>
<artifactId>ksoap2-android</artifactId>
<version>2.5.7</version>
</dependency>
</dependencies>
...
</project>
▼Maven化してない場合
・動くけどEclipseのコンソールにビルドの度に警告が出る。
・サイトからライブラリをDLして、Androidプロジェクトにライブラリとして取り込む。
・サイトのライブラリの場所がわかりずらい。
「http://code.google.com/p/ksoap2-android/」アクセス
「downloads」クリック
「http://code.google.com/~中略~/ksoap2-android-assembly-2.5.7-jar-with-dependencies.jar」クリック
「View raw file」クリックしてDL
2011年6月16日木曜日
EclipseでのAndroidプロジェクトのMaven化
Windows前提で、上から順にやる。
※version後ろの"+"は、それ以上という意味だけど相性あるかも?
0.JDK1.5+
・言わずもがな。http://java.sun.com/javase/ja/6/download.html
・PATHの追加(%JAVA_HOME%は、JDKのインストールパスです。)
%JAVA_HOME%\bin;
1.Eclipse Galileo version 3.5+
・言わずもがな。http://mergedoc.sourceforge.jp/
2.Android Developer Tools plug-in version 0.9.9+
・Eclipse使用可能ソフトウェアサイト使用:https://dl-ssl.google.com/android/eclipse/
・Android SDKの入れ方とかは、どうぞおググりください。
・PATHの追加(ANDROID_HOMEは、SDKのインストールパスです。)
%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
・後の手順でMavenリポジトリにAndroidライブラリを入れますが、SDKで入れているAPIレベルしか入りません。
何も考えず全入れしたいのであれば、android-3~12、google-apis-3~12、compatibility-v4を入れときます。
3.Maven2.2.1系
・右記からDL:http://Maven.apache.org/download.html
・3.0系だと後の手順でエラーとなる可能性があるので止めた方が、君子危うきになんとやら。
・PATHの追加(MAVEN_HOMEは、Mavenのインストールパスです。)
%MAVEN_HOME%\bin
・「settings.xml」細かい設定とかは、どうぞおググりください。
4.M2Eclipse plug-in version 0.12.0+
・Eclipse使用可能ソフトウェアサイト使用:http://m2eclipse.sonatype.org/sites/m2e/
・0.1が入っていると入れれないので消す。
・コマンドから「mvn -Declipse.workspace=workspaceのパス eclipse:add-maven-repo」
・入れた後「ウィンドウ→設定→Maven→インストール→追加」でインストールしてるMavenを指定する。
<----ここまで普通にMavenをEclipseで使う方法
---->ここからAndroid対応
5.Maven Android Plugin version 2.6.0+
・mvnコマンドで「android:~」というゴールが使えるようになる。
・ここ http://www.sonatype.com/books/mvnref-book/reference/android-dev.html を読みながらやる。
=====要約=====
14.2.2.MavenリポジトリへのAndroid Artifactのインストール
・ここ https://github.com/mosabua/maven-android-sdk-deployer の右上の[Downloads]からDL
・何も考えず全入れする場合:コマンドから解凍したフォルダ直下(pom.xmlがある)に移動して「mvn install」実行!
選んで入れる場合:「mvn install -P 2.2」とかでできる。詳細は、上記サイトをよく読んで。
14.2.3.プラグインの設定
・Mavenの「settings.xml」に下記を追加する。
<pluginGroups>
…
<pluginGroup>com.jayway.maven.plugins.android.generation2</pluginGroup>
…
</pluginGroups>
14.3.動かす
・コマンドベースでごにょごにょ仕方が書いてあるが、あとでEclipseプラグインから動かすので無視!。
・ここ http://code.google.com/p/maven-android-plugin/wiki/GettingStarted を参考にしてまずサンプルを動かす。
・文書内のリンクを辿りサンプルをゲット「Samples→Download samples from the stable branch→DownLoad.zip」
・解凍したフォルダ中のフォルダ「helloflashlight」フォルダ直下(pom.xmlがある)に移動して「mvn eclipse:eclipse」実行!
・Eclipseから「helloflashlight」プロジェクトをインポート。プロジェクトをリフレッシュしてエラーが出なければとりあえずOK。
・エミュを起動しておきコマンドから「mvn install android:deploy -Dandroid.device=emulator」とかすればアプリがエミュに入るはず。
6.m2eclipse-android-integration
・Eclipse使用可能ソフトウェアサイト使用:https://svn.codespot.com/a/eclipselabs.org/m2eclipse-android-integration/updates/m2eclipse-android-integration/
・ここ http://code.google.com/a/eclipselabs.org/p/m2eclipse-android-integration/wiki/GettingStarted の
「2. Create Eclipse Project」の「If you are starting with a new project 」の箇所の手順を行う。
・エミュを起動しておき、mvnの実行構成からゴール「android:deploy」などとして実行すれば、アプリがエミュに入るはず。
※version後ろの"+"は、それ以上という意味だけど相性あるかも?
0.JDK1.5+
・言わずもがな。http://java.sun.com/javase/ja/6/download.html
・PATHの追加(%JAVA_HOME%は、JDKのインストールパスです。)
%JAVA_HOME%\bin;
1.Eclipse Galileo version 3.5+
・言わずもがな。http://mergedoc.sourceforge.jp/
2.Android Developer Tools plug-in version 0.9.9+
・Eclipse使用可能ソフトウェアサイト使用:https://dl-ssl.google.com/android/eclipse/
・Android SDKの入れ方とかは、どうぞおググりください。
・PATHの追加(ANDROID_HOMEは、SDKのインストールパスです。)
%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
・後の手順でMavenリポジトリにAndroidライブラリを入れますが、SDKで入れているAPIレベルしか入りません。
何も考えず全入れしたいのであれば、android-3~12、google-apis-3~12、compatibility-v4を入れときます。
3.Maven2.2.1系
・右記からDL:http://Maven.apache.org/download.html
・3.0系だと後の手順でエラーとなる可能性があるので止めた方が、君子危うきになんとやら。
・PATHの追加(MAVEN_HOMEは、Mavenのインストールパスです。)
%MAVEN_HOME%\bin
・「settings.xml」細かい設定とかは、どうぞおググりください。
4.M2Eclipse plug-in version 0.12.0+
・Eclipse使用可能ソフトウェアサイト使用:http://m2eclipse.sonatype.org/sites/m2e/
・0.1が入っていると入れれないので消す。
・コマンドから「mvn -Declipse.workspace=workspaceのパス eclipse:add-maven-repo」
・入れた後「ウィンドウ→設定→Maven→インストール→追加」でインストールしてるMavenを指定する。
<----ここまで普通にMavenをEclipseで使う方法
---->ここからAndroid対応
5.Maven Android Plugin version 2.6.0+
・mvnコマンドで「android:~」というゴールが使えるようになる。
・ここ http://www.sonatype.com/books/mvnref-book/reference/android-dev.html を読みながらやる。
=====要約=====
14.2.2.MavenリポジトリへのAndroid Artifactのインストール
・ここ https://github.com/mosabua/maven-android-sdk-deployer の右上の[Downloads]からDL
・何も考えず全入れする場合:コマンドから解凍したフォルダ直下(pom.xmlがある)に移動して「mvn install」実行!
選んで入れる場合:「mvn install -P 2.2」とかでできる。詳細は、上記サイトをよく読んで。
14.2.3.プラグインの設定
・Mavenの「settings.xml」に下記を追加する。
<pluginGroups>
…
<pluginGroup>com.jayway.maven.plugins.android.generation2</pluginGroup>
…
</pluginGroups>
14.3.動かす
・コマンドベースでごにょごにょ仕方が書いてあるが、あとでEclipseプラグインから動かすので無視!。
・ここ http://code.google.com/p/maven-android-plugin/wiki/GettingStarted を参考にしてまずサンプルを動かす。
・文書内のリンクを辿りサンプルをゲット「Samples→Download samples from the stable branch→DownLoad.zip」
・解凍したフォルダ中のフォルダ「helloflashlight」フォルダ直下(pom.xmlがある)に移動して「mvn eclipse:eclipse」実行!
・Eclipseから「helloflashlight」プロジェクトをインポート。プロジェクトをリフレッシュしてエラーが出なければとりあえずOK。
・エミュを起動しておきコマンドから「mvn install android:deploy -Dandroid.device=emulator」とかすればアプリがエミュに入るはず。
6.m2eclipse-android-integration
・Eclipse使用可能ソフトウェアサイト使用:https://svn.codespot.com/a/eclipselabs.org/m2eclipse-android-integration/updates/m2eclipse-android-integration/
・ここ http://code.google.com/a/eclipselabs.org/p/m2eclipse-android-integration/wiki/GettingStarted の
「2. Create Eclipse Project」の「If you are starting with a new project 」の箇所の手順を行う。
・エミュを起動しておき、mvnの実行構成からゴール「android:deploy」などとして実行すれば、アプリがエミュに入るはず。
登録:
投稿 (Atom)