2014年6月24日火曜日

思い出しPythonでGoogle App Engine 開発環境準備

Androidアプリ「あめXMP」の新機能用に処理サーバを用意します。

設置先はGoogleAppEngine、Pythonを使った前回の開発から数年経ってすっかり忘れてしまったので次回用に作業メモを残すことにしました。


サーバ:
 Google App Engine

 設置するサーバの内容:
  某サーバからのpushデータをAndroidアプリ用にatom形式にして保存公開
 
 処理言語:
  Python 2.7


開発環境の構築:

「GoogleAppEngine」とくぐって出てきたホームのリンクを頼りに以下の開発環境をダウンロード&インストール

Google App Engineホーム
https://developers.google.com/appengine/?hl=ja



PCに導入するもの(リンク付き):

 1.Python 2.7
   Pleiades All in OneのPython用セットを入れるためインストールの必要なし

 2.GoogleAppEngineSDK for Python
  デバッグ用のサーバ等が入っています。

 3.Pleiades All in One
  Eclipse日本語環境 Python用のFullセット
  開発機にPythonが入っていないため選びました。
  このセットを利用することで別途pythonの導入は必要無くなります。
  ※注:コマンドライン等Eclipse環境以外で動作させるために環境変数(PATH)への記述が必要

 4.Google Plugin for Eclipse
  Eclipseバージョンよる違い有り、今回はEclipse 4.3 (Kepler)用
   Eclipse用のプラグインなので、リンクをヘルプ(H)->新規ソフトウェアのインストール->作業対象(W)に ペーストして導入、Android用ツールやJava向けツールのチェックは外す


インストール後の設定:
 
 1.Pythonパスの設定
  Pleiades環境用に用意されたPythonをコマンドライン等汎用で使えるようにします。
  環境変数PATHに追記 \pleiades\python\2; 

  設定後、コマンドプロンプト上で python -V として、バージョン表示がされればOK


 2.Eclipseにツールバーを表示させる
  Google Plugin for Eclipseを導入することで追加されるツールアイコンを表示させます。
  Eclipse->ウインドウ(W)->ツールバーの表示(T)をクリック


用意した本:

 1.「プログラミング Google App Engine」 オライリー
  新しい本を探しましたが、Python主体のものがあまり見当たらないので...


これでリンクを押すだけで必要な物が揃うはず

次は、PyDevとGoogle App Engine Launcherを使ったプロジェクトの作成からサンプル実行



2013年2月27日水曜日

Google Play services Rev.5でV2マップが起動時エラー

2013/02/26日 Google Play services他開発環境がアップデートされました。

※Google Play services(Google設定 / Google開発者サービス)を削除しようとの目的で来られた方へ
このサービスを削除すると、3月から切り替わる新しいGoogleマップなどが使えなくなります。
開発者から見るとこれらのサービスはこれからのGoogleが行うサービスの根幹です。
削除はおすすめしません。

V2マップのRev.4ではマップの回転時にメモリーリークが大量に発生してしまうバグがあったため
今回のアップデートで解消されてるかを確かめるべく、気づいた途端にSDK Manager経由でアップデートを行いました。



アップデート後、Google Maps Android API v2を利用するアプリをビルドして実行させたところ以下の様なエラーを報告して動作しません。

 エラーログを見てみると、Google Play servicesが out of dateとかで、落ちてます。
(02-27 02:41:07.514: W/GooglePlayServicesUtil(1031): Google Play services out of date.  Requires 3025100 but found 2012110)

 で、以下解決方法を備忘録

「原因」
Google Play servicesが古い (ログの解読による判定)

「解決法」
Google Play servicesを更新する。
具体的には、「Google Play開発者サービス」を更新します。


古いGoogle Play services を利用したアプリを実行すれば、
上の画像のようにアップデートの案内がかかるハズ?なのでしょうが
今回自作のアプリではうまく更新がされずエラー吐くだけ。

そこで自作アプリでのGooglePlay開発者サービスの更新は諦め、
SDKにあるGoogle Maps API Demos のサンプルを動作させて、
更新の催促画面を出すことができました。
(実際のアプリではサービスの更新状況を確認する仕組みが必要かもしれませんね
GooglePlayServicesAvailabilityExceptionとか捕まえたり、GooglePlayServicesUtil#isGooglePlayServicesAvailableで判定したり?)


 Google Playで「GooglePlay開発者サービス」のアップデート

OKOK
これでGoogle Maps Android API v2を使った
自作アプリも動作するようになりました。


Rev.4までに存在するメモリーリークが解決したかどうかは、この後....

寝てから別の端末見ると...
今回のアップデートで端末に「Google 設定」が追加されている端末が存在しました。
その自動アップデートされた端末では、なんの問題もなく動作したので

単に寝て待ってりゃ良かったてことですね。 orz..................................

2012年12月5日水曜日

Google Maps Android API v2 サンプルを動かす

TwitterのTLで「Google Maps Android API v2」のリリースを見て早速試したので備忘録

記述内容は以下のリンクにあるintroductionとGetting Startedをなぞったものとなります。

TLでリンクされていたURLはこれです。
http://android-developers.blogspot.jp/2012/12/new-google-maps-android-api-now-part-of.html

Google Developer
https://developers.google.com/maps/documentation/android/

動画説明あり
http://googlegeodevelopers.blogspot.jp/2012/12/better-maps-in-your-android-apps.html


<サンプルソースの取得>

 

・サンプルソースのダウンロード方法

  Android SDK ManagerによりPacakageのUpdateを行うことで
  ライブラリプロジェクトやサンプルをダウンロードすることができます。
  動画でもSDK Manager....とか言ってますね。

 チェックする項目は「Extras」のGoogle Play services

 アップデートで下記のディレクトリにDocライブラリとサンプルプロジェクト一式がダウンロードされます。

・ADT Bundle for Windowsの環境だと
C:\Users\xxxx\Desktop\adt-bundle-windows\sdk\extras\google\google_play_services\libproject\google-play-services_lib

アップデート後には導入されたディレクトリが表示される

<ADT Bundle for Windows環境でBuild>


0.「ライブラリプロジェクトの導入(Eclipse)」

Google Play Serviceライブラリをマップアプリの中で使えるようにプロジェクトを準備します。

1.「ライブラリプロジェクトの導入」

メニューからFile > Import > Android > Existing Android Code Into Workspace として Next.

Root Directory: に C:\Users\xxxx\xxxx\adt-bundle-windows\sdk\extras\google\google_play_services\libproject\google-play-services_lib
 
 ※指定すべきディレクトリはAndroid SDK Managerで 確認できます。
 なぜかディレクトリ毎消滅してしまう場合があるため、削除と再チェックで導入を繰り返しました。


導入されると以下の画像のようにPackage Explorerにライブラリプロジェクトが列挙されます。

google-play-services_lib が追加された

1.「MapV2 サンプルブロジェクトの導入」

  1. メニューの File > Import > Android > Existing Android Code Into Workspace をクリックして Next.ボタン押下 
  2. 表示されるダイアログのBrowse..., ボタンを押して、サンプルプロジェクトの在り処を指定します。
  3. ImortProjectのダイアログは「Finish」を押すことでサンプルプロジェクトが ProjectExplorerに表示されるようになります。プロジェクト名は「MainActivity」です。
今回は、 C:\Users\sakaneya\Desktop\adt-bundle-windows\sdk\extras\google\google_play_services\samples\maps を指定して「OK」

    ※mapが存在しない場合は、Android SDK Managerで
        「ExtrasのGoogle Play Service」を一旦削除し
        再度チェックしてUpdateすればダウンロードされます。


2.「サンプルプロジェクトの設定」

   ココでは、「Android サポートライブラリV4」をプロジェクト内で参照できるようにします。
  1. Pacakge Explorer 上のサンプルプロジェクト「MainActivity」上で、左クリック
  2. メニューの Project > Properties  > Java Build Path, とクリックして、Librariesタブを選択します。
  3. 続けて「Add External Jars」,を押して出てくる「Jar Selection」に android-support-v4.jar を選択して導入します (C:\xxx\xxxx\xxxx\adt-bundle-windows\sdk\extras\android\support\v4) 
※サポートライブラリ(android-support-v4.jar)がない場合は、
          一旦戻ってAndroid SDK Managerで導入してください。
Android-support-v4.jarの格納ディレクトリが どこにあるか不明の場合は、「Android SDK Manager」によって確認できる。

3.「API Keyの取得と設定」(Debug Modeで説明)

   目的はマニフェストファイルにAPIKeyを記述することです。
   ※従来のマップ(V1)で使われていたAPIKeyはV2に流用できません。

  1. 「Debug Mode用の SHA-1 fingerprint 」を用意する
       V2版のAPIKeyの交付は「Google APIs Console」で行います。
       詳細な取得方法は本家に「Creating an API Project」として説明あり、以下概要

用意する文字列や入力方法はこのダイアログを読めばわかる
     

       具体的にはコンソール上(コマンドプロンプト)で
     keytool -list -v -keystore debug.keystore 
     と実行します。 
     debug.keystore の格納場所は、
       Widows機では C:\Users\ユーザー名\.android\debug.keystore となります。
      
       参考「2012年版 Androidアプリ開発 SDK入れて一年すると発生するエラー "Debug certificate expired on ~



   2.APIKeyの交付を受ける
      Google APIs Console > API Access > 「Create new Android Key」で
     出てくるダイアログに 先ほど取得したSHA-1とプロジェクトのネームスペースの値を
      「;」でつなげた文字列を入力してAPIKeyの交付を受けます



   交付されたAPIKey文字列は API Access で確認できます。
API Keyを見てね
    

   3.APIKeyの設定
      プロジェクトのManifest.xml に APIKeyを仕込みます。

AndroidManifest.xml
   マニフェストにAPIKeyの記述場所が用意されているので、悩むことは無いですね。


・補足1.

  ここまでintroductionで示されている手順道理に進めてきた?のですが、動きませんでした。
 サポートV4ライブラリの指定方法が怪しいらしく、プロジェクトフォルダにLibsを作成して
 その中に「android-support-v4.jar」を直接コピーしておき、
 Build Pathをそれに指定することで解決しました。

  1. MainActivity上で右クリック
  2. New > Source Folder
  3. 「New Source Folder」ダイアログのFolder NameにLibsと入力してLibsフォルダ作成
  4. Libsフォルダに android-support-v4.jar をコピー
  5. android-support-v4.jar上で右クリック
  6. Build Path > Add to Build Path を実行

 

・補足2.

 これでもエラーが出る場合は、
  ライブラリプロジェクトの設定がおかしい場合がある...ということで、以下の処理を行います

  1. MainActivity上で右クリック
  2. Propaties > Android > Libraryの「Add」を押す
  3. google_play_services_lib を選択して「OK」ボタンを押す



・実行!!




2012年7月30日月曜日

Nexus 7来たよ。イギリスhandtec

 Nexus 7のページに「Notifyme via email when this product is available」とあったので登録しておいたところ。7/24夜に8GB版用意できたとのメール着
すぐさま注文したわけですよ16GB版を。
値段は本体16GB版:£ 199.00に送料UPS£ 39.90で£ 238.90

発送状況は以下の通り

到着は別紙に7/30 14:27と記録されています。
UPSは配達終わると到着時刻しか表示されなくなってしまうので、上の画像は事前に取っておいたものです。
この運送会社、土日配達しないせいか日本で3日滞留してますね。

Android端末を買うのは、コレで2台目です。
前回2年前のGalaxy SもHandtecで買ってるので不安はありませんでした。
GPSやら自転車用品やら色々買ってますねイギリスから。

2012年5月18日金曜日

2012年版 Androidアプリ開発 SDK入れて一年すると発生するエラー "Debug certificate expired on ~"

2011年  Androidアプリ開発 SDK入れて一年すると発生するエラー "Debug certificate expired on ~"(2011/01/27) の2012年版追補です。

デバッグ版の キーストア "debug.keystore"の期限切れがやって参りました。
準備始めてから最後の確認するまで小一時間かかったので、
これを10分で済ませてしまおうと手順書き留めメモ(Windows手順)

1.「書き換えるべきキーストアの場所」
2.「新しいキーストアの生成方法」
3.「Google MAP用APIキー
4.「その他」

1.「書き換えるべきキーストアの場所」
  C:\Users\ユーザー名\.android\debug.keystore として存在します。
  以前はeclipse中のAndroid設定のダイアログにパスが表示されていたのですが、バージョンが変わって表示されなくなりました。

2.「新しいキーストアの生成方法」
  1.で確認した debug.keystoreを削除した後に適当なプロジェクトをリフレッシュする事で新しいキーストアが生成されます。

3.「Google MAP用APIキー」
  デバッグキーストアを変更すると、これに紐付けられているGoogle MAP API用APIキーも変更する必要があります。

APIキーの取得に必要な物と情報
  1.デバッグキーストアを元にしたMD5値:フィンガープリント
  2.フィンガープリント生成ツール keytool.exe
  3.keytool.exeのパス 
    javaインストールディレクトリ\bin\keytool.exeとして存在。
      c:\dev\jdk1.6.0_26\bin\keytool.exe

3-1.フィンガープリントの生成
  コンソール上で 
  keytool -list -keystore debug.keystore
  として実行する。パスワードはなしでOK












3-2.Android Maps API Key の生成
  交付URL にてAPIキーを取得
  リンク:Sign Up for the Android Maps API - Android Maps API - Google Code
  MD5値をコピペして「Generate API Key」を実行

3-3.APIキーの入れ替え
  デバッグ用のAPIキーのみを入れ替える。本番用の書換は必要なし。

3-4.地図表示の確認
  Googleマップを利用しているアプリで地図が正常に表示されるかを確認する。

4.「その他」***自分用のメモメモ***
  Androidアプリ改竄検知を行っているルーチンの値を入れ替え

  やること:
  Activity#isTrueSignature //デバッグモード用の署名を書き換えること
  値の生成方法はDropbox上の「キーストアの作り方.txt」を参照

2012年4月27日金曜日

Android用壁紙切り取りアプリ 「かべきり」

http://sakaneya.blogspot.jp/2012/02/blog-post.html
の正式版をGoogle Play(旧Android Market)に正式登録しました。

従来の自動ツールでは難しかった位置あわせや回転など人力で行うアプリです。
見たまま思ったままの壁紙設定が可能です。

画像の保存先は従来と同じく「galakabe」フォルダに保存します。
設定だけではなく切り取った画像の使い回しが出来ますので、使える場面が広がるのでは無いでしょうか。

Google Play 「かべきり」
公開停止
http://goo.gl/iuODQ


2012年2月16日木曜日

β公開中 横長の画像から切り取るアンドロイドアプリ「かべきり」

かべきり(Kabe-Kiri)


Android用 画像切り取りアプリ 「かべきり」
Name: かべきり (KabeKiri)
Url: 期限付きのβ版をβ版APK置き場 に用意しました。 2012/03/12迄ベータテスト可能です。

2012/02/12 β版公開
2012/02/15 β2版にアップデート
2012/04/26 Google Play(旧Android Market)に登録 
2012/06/20 公開停止

用途: 横に長い画像を携帯端末の縦長サイズに切り取るためのアプリです。


【機能】
・画像を端末の画面サイズに切り取ります。

【特徴】
・拡大・縮小・回転・移動の機能を使って手動で切り取り範囲を決めることができます。

【想定用途】
・横に長い画像の一部を携帯端末の画像サイズに切り取る。


「画像の保存先」
・ギャラリーで見てください。
「Galakabe」フォルダーの中に切り取られた画像が保存されます。
共有するなりして壁紙としてご利用ください。


【対応端末】
・AndroidOS Ver2.3~4.0.x
・タブレット型の端末には対応しません
・タブレット型も対応します。
 

【その他/予定】:
・アプリ内課金、動作確認を行ってからの購入を推奨 (予価:160円)
・購入前の画像出力には「Sample」の文字が挿入されます。
・5月中旬まで無料で正式版と同じように使えます。


【Google Playからダウンロード】
・2012/06/20 公開停止