Category: android

  • ADT Plugin for Eclipse アップデート

    Android Developers Blog: New Editing Features in Eclipse plug-in for Android

    AndroidのEclipseプラグインがアップデートしたみたい。
    あとでDLすることにして詳細は>http://developer.android.com/intl/ja/sdk/eclipse-adt.html

    あとここ http://tools.android.com/recent

    さらに、Google I/O 2011でのプレゼン動画

  • Eclipseが起動しなくなったときの対応の要点だけ

    Androidアプリの開発で使うEclipseだけど、作業途中でハングアップ、強制終了後に再起動しても起動中の”building workspace…”あたりで起動がハングしてしまうことがあって、その対応メモ。

    • Eclipseの強制終了後、起動しなくなる問題の一つはEclipseの一時ファイル.snapファイルというやつが壊れている事が原因みたい。
    • なので、このファイルを削除してしまえばOK。こんな感じ:
      rm path/to/workspace/.metadata/.plugins/org.eclipse.core.resources/.snap
      rm path/to/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/*/.*.snap

    • これはワークスペースの変更を記録しているファイルで、強制終了後とかに作業状態の復帰とかに使われるものみたい。これが壊れていると復旧途中で止まってしまうということっぽい。

    ということで削除後、Eclipseを普通に起動すればきちんと起動するはず。もしくは.metadata/.logを見ると、何かしらエラーログが記録されているはずなのでこれをチェック。

  • Android Widgetのライフサイクルについて要点だけ

    Android App Widgetのライフサイクルイベントは4つ。公式ドキュメント読んだだけではいまいち分かりづらかったので調べてみたメモ。

    (1)onEnabled(Context context)
    一つ目のウィジェットがホームに追加されるとき。

    (2)onUpdate(Context context, AppWidgetmanager appWidgetManager, int[] appWidgetIds)
    ウィジェットがホームに追加されるとき。一つ目のときはonEnabledの直後に呼ばれる。2つ目以降(=同じウィジェットが既にホームに置かれている場合)はこのonUpdateだけがコールされる。
    appWidgetIdsには、アップデート対象のウィジェットのIDが入ってる。なので、widgetの追加時には基本的に1つのIDの配列で、定期更新時には2つ以上のIDが入ってる可能性があるっていうことみたい。

    (3)onDeleted(Context context, int[] appWidgetIds)
    ウィジェットがホームから削除されるとき。他にウィジェットが残っているとき(=同じウィジェットがまだホームに置かれている場合)はこのonDeletedだけが呼ばれる。

    (4)onDisabled(Context context)
    ホームから最後のウィジェットが削除されるとき、onDeletedの直後にコールされる。

    もういっこonReceivedは上記3つが結局コールされるので、通常はあんまり気にしなくて大丈夫みたい。以下4つ以外のBroadcastをなんとかしたい時にきにすれば良い。

    • ACTION_APPWIDGET_DELETED→onDeleted
    • ACTION_APPWIDGET_DISABLED→onDisabled
    • ACTION_APPWIDGET_ENABLED→onEnabled
    • ACTION_APPWIDGET_UPDATE→onUpdate
  • Android Manifestのuses-sdkの要点だけ

    AndroidManifest.xmlの<uses-sdk>項目について調べた。
    • Androidにおいて、APIレベルでの複数デバイスへの互換性を確保するにはAndroidManifest.xmlの<uses-sdk>を使う。
    • この項目はデフォルトでは存在しない。追記は<manifest>の子要素。
    • android:minSdkVersion、android:maxSdkVersion、android:targetSdkVersionの3属性が設定できる。
    • 値は整数で、Android SDKごとに設定されるAPI Levelの値を指定する。(参照:Android API Levels
    • 特に重要なのはandroid:minSdkVersion。この設定より古いAPI Levelの端末にはインストールされない。これはデフォルトでは1なので、Android Platform 1.0までアプリがサポートしていることになってしまう。ちなみにdocomoが初めて発売したAndroid端末はHT-03Aで、これはAndroid 1.5=API Level 3。
    • android:targetSdkVersionは、システムにこのバージョンでテストしていることを示すもの。OSが様々な互換性のための設定を行うときに利用されるみたい。
    • android:maxSdkVersionというのは設定しないほうが良い。アプリケーションが特定のバージョンより新しいものにインストールされなくできる。

    たとえばXperia arcで開発していると、ListViewの中身がスクロール時に拡大されてしまう問題というのがあるのだけど、この<uses-sdk>項目の設定で解決するようだ。以下のMLだとminSdkVersionを指定してやると解決すると書いてあるけど、上のドキュメントを読んでandroid:targetSdkVersionだけ設定してあげても解決できたみたい。

    参照:http://groups.google.com/group/android-group-japan/browse_thread/thread/78e5b1b66237ee9f

  • Google I/O 2011: Android Honeycomb 3.1の要点だけ

    Google I/O 2011のKeynoteで、Androidの新プラットフォームのAndroid 3.1 Platformが発表された。これはまだタブレット専用のもので、タブレットとスマートフォンOSの統合は次期Icecream Sandwichリリースを待つ事になる模様。

    一番注目すべきは外部デバイス向けのAPIが標準化されたことかな。ともあれこれとKeynoteで別途発表されたAndroid@Home構想(あとGoogle TVも?)を合わせると大まかなAndroid Platformの方向性が見えるということかも知れない。

    情報元:Android 3.1 Platform, New SDK tools, Android 3.1 Platform Highlights

    ユーザ向け:
    • UIの改善:最近使ったアプリ、リサイズ可能ウィジェットなど
    • 入力システムの拡張:マウス、キーボード、ジョイスティック等からの入力サポート
    • Wi-Fi接続の改善
    • アプリのアップデート:ブラウザ、ギャラリー、カレンダー、連絡先、メール
    • エンタープライズ向け:Wi-Fi接続にHTTP Proxyの設定が可能に。“encrypted storage card”サポート
    開発者向け:
    • Open Accessory API
    • USBホストAPI:USBホストモードをサポートするデバイスで、接続されたUSB機器の管理が可能
    • リサイズ可能なウィジェット:Keynoteで言ってたけど対応にはXMLの修正によるウィジェット側の対応が必要
    • Media Transfer Protocol(MTP):外部カメラの接続状態の通知をアプリが受けられ、それらのファイル管理
    • オーディオ向けReal-time Transport Protocol(RTP):VoIP、push-to-talk、ビデオカンファレンス、音楽ストリームなど
    Open Accessory APIは2.3.4にもバックポートされる。それぞれの詳細およびIcecream Sandwichリリースについてはおいおい。
  • 2011夏端末発表会スケジュールを要点だけ

    整理してメモ。
    docomo:2011年5月16 12時15分~ ライブ配信あり 公式Twitter
    KDDI:2011年5月17日 11時~ USTREAMあり
    SoftBank:未定  震災の影響により大規模な発表会は自粛

  • Google I/O 2011 Android関連セッションの5/11分要点だけ

    5/10-11日にかけて、Googleの開発者向けイベントであるGoogle I/Oが開催されます。そこで、Android関連のセッションをピックアップしてみました。5/11日分。ライブストリーム配信されるものもあるようです。あと時間はサンフランシスコ時間。ソースはhttp://www.google.com/events/io/2011/index.htmlAndroidアプリも出ているようです。twitterのハッシュタグは#io2011、公式アカウントは@googleio

  • Google I/O 2011 Android関連セッションの5/10分要点だけ

    5/10-11日にかけて、Googleの開発者向けイベントであるGoogle I/Oが開催されます。そこで、Android関連のセッションをピックアップしてみました。まずは5/10日分。ライブストリーム配信されるものもあるようです。あと時間はサンフランシスコ時間。ソースはhttp://www.google.com/events/io/2011/index.htmlAndroidアプリも出ているようです。twitterのハッシュタグは#io2011、公式アカウントは@googleio

  • Androidの明示的インテントと暗黙的インテントについて要点だけ

    Androidの明示的インテントと暗黙的インテントについて要点だけ

    • Androidアプリのインテントには「明示的インテント」と「暗黙的インテント」の2種類がある。
    • 明示的インテントは呼び出す側から「名指し」でアクティビティを起動する仕組み。
    • 暗黙的インテントは、呼び出す側はやりたい事だけを指定する。呼ばれるアクティビティ側が自分の処理できる内容を把握(宣言)している。
    • あるインテントを複数のアクティビティが処理できる場合、ユーザが選択できる。
  • AndroidでListViewの要素の高さを固定したいときの要点だけ

    AndroidのListViewで、要素(行)の高さを固定したいとき。
    例えば行がLinearLayoutだとして、

    <LinearLayout
      xmlns:android=“http://schemas.android.com/apk/res/android”
      android:layout_width=“fill_parent” android:layout_height=“100dp”>
    <!– SOME UI –></LinearLayout>

    みたいなheightの設定だけでは不十分で、

    <LinearLayout
      xmlns:android=“http://schemas.android.com/apk/res/android”
      android:layout_width=“fill_parent” android:layout_height=“100dp” 
      android:minHeight=“100dp”>
    <!– SOME UI –></LinearLayout>

    みたいにminHeight(最小の高さ)も設定する必要がある。