- アクティビティ:画面操作
- サービス:バックグラウンド動作
- ブロードキャストレシーバ:システム監視
- コンテンツプロバイダ:データベース
2011年4月29日金曜日
Androidアプリ主要な構成要素について要点だけ
Androidのアプリにはいくつかの重要な構成要素があって、それぞれ大まかには以下のようにとらえれば良い。
2011年4月27日水曜日
Android Market販売レポート改善の要点だけ
2011年4月26日付けの うAndroid Developer ConsoleからGoogle checkoutのマンスリー販売レポートへのアクセスが簡単になった模様。Developer ConsoleにログインするとMerchant Sales Reportという項目が追加されてますね。下記ブログによると現在は2011年3月以降、今後数週間のうちに2010年1月からのデータがアクセス可能になるとのこと。(詳しくは後でチェック予定)
http://android-developers.blogspot.com/2011/04/merchant-sales-reports-on-android.html
http://android-developers.blogspot.com/2011/04/merchant-sales-reports-on-android.html
Labels:
Android Market
2011年4月24日日曜日
Mac OSXのmailで送信したメールが文字化けするときの対策の要点だけ
- macのmailから送ったメールが文字化けするときは、メール>テキストエンコーディングでISO 2022-JPを試す。
これは文字コードの問題で、mailがデフォルトではUTF-8エンコーディングでメールを送信するのが原因みたい。このため、UTF-8に対応していないメーラで受信すると文字化けしてしまうというわけ。
対策はメール作成画面で、メール>テキストエンコーディングを日本語(ISO 2022-JP)に設定してやればOK。ちなみにISO 2022-JPはJISコードとも呼ばれるもので、日本語のメールでは広く使われる文字エンコーディング方式。
2011年4月23日土曜日
Apple プッシュ通知とローカル通知の要点だけ
Notificationとは
Apple Push Notification(Push通知)とは、iOS上で非アクティブなアプリの状態をユーザに通知するための仕組み。アラート通知を通じてアプリはユーザにアプリの起動を促したり、バッジ(アプリアイコンに付与される数字)の表示、サウンド再生などを行う事ができる。
Notificationの種類
iOSで利用できる通知の仕組みは2種類。
(1)Push Notification(プッシュ通知、リモート通知):サーバからユーザのデバイスに通知を行える。プロバイダ(Provider)と呼ばれるサーバ側の仕組みをサービス提供者が構築し、AppleのApple Push Notification Service(APNs)と通信する必要がある。
(2)Local Notification(ローカル通知):当該アプリが動作しているデバイスに限って通知を行える。
必要iOSバージョン
(1)Push Notification:iOS 3.0以降
(2)Local Notification:iOS 4.0以降
通知できるデータ
(1)メッセージ
(2)バッジ
(3)サウンド:アプリに予め同梱されている必要があり、指定はファイル名で行う。
(4)その他カスタムデータ:プッシュ通知が届くことは保証されていないので、重要なデータをここに乗せるべきではない。
ただし、メッセージ、バッジ、サウンドはユーザ設定によってオフにできるので必ず通知されるわけではない。また、リモート通知で送信できるデータは256byte以内に制限されていることに注意。
その他
いずれも、通知を受けるためにアプリが起動している必要はない。アプリが起動しているときにも通知を受けたことを知る事は可能。通知を受けるときのパターンは以下の4パターン。それぞれ、内部的にコールされるメソッドとデータ、受取り方が異なるので注意。
・アプリが非アクティブで、ローカル通知を受ける
・アプリが非アクティブで、リモート通知を受ける
・アプリがアクティブで、ローカル通知を受ける
・アプリがアクティブで、リモート通知を受ける
参照
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html%23//apple_ref/doc/uid/TP40008194-CH1-SW1
Apple Push Notification(Push通知)とは、iOS上で非アクティブなアプリの状態をユーザに通知するための仕組み。アラート通知を通じてアプリはユーザにアプリの起動を促したり、バッジ(アプリアイコンに付与される数字)の表示、サウンド再生などを行う事ができる。
Notificationの種類
iOSで利用できる通知の仕組みは2種類。
(1)Push Notification(プッシュ通知、リモート通知):サーバからユーザのデバイスに通知を行える。プロバイダ(Provider)と呼ばれるサーバ側の仕組みをサービス提供者が構築し、AppleのApple Push Notification Service(APNs)と通信する必要がある。
providerとAPNsとの通信については別掲する。
(2)Local Notification(ローカル通知):当該アプリが動作しているデバイスに限って通知を行える。
(1)Push Notification:iOS 3.0以降
(2)Local Notification:iOS 4.0以降
通知できるデータ
(1)メッセージ
(2)バッジ
(3)サウンド:アプリに予め同梱されている必要があり、指定はファイル名で行う。
(4)その他カスタムデータ:プッシュ通知が届くことは保証されていないので、重要なデータをここに乗せるべきではない。
ただし、メッセージ、バッジ、サウンドはユーザ設定によってオフにできるので必ず通知されるわけではない。また、リモート通知で送信できるデータは256byte以内に制限されていることに注意。
その他
いずれも、通知を受けるためにアプリが起動している必要はない。アプリが起動しているときにも通知を受けたことを知る事は可能。通知を受けるときのパターンは以下の4パターン。それぞれ、内部的にコールされるメソッドとデータ、受取り方が異なるので注意。
・アプリが非アクティブで、ローカル通知を受ける
・アプリが非アクティブで、リモート通知を受ける
・アプリがアクティブで、ローカル通知を受ける
・アプリがアクティブで、リモート通知を受ける
参照
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html%23//apple_ref/doc/uid/TP40008194-CH1-SW1
2011年4月15日金曜日
Android Market でのキャリア決済対応状況の要点だけ(2011年4月15日現在)
先日のポストでdocomoがAndroid Marketでの決済に対応したことを書いたけど、他のキャリアの対応状況を整理してみた。結論として、大手3キャリアの主要端末ではキャリア決済が既に可能、という理解でOKそう。
ついでにAndroid Marketでない、Android上でのコンテンツ決済サービスのメモ。こちらはサイト側の対応が必要なので、対応サービスでのみ利用できる。さらにいうと上記のauのプレスリリースを見るかぎり、この決済サービスの「対応サイト」にAndroid Marketが加わった、という関係性みたい。
- docomo http://www.nttdocomo.co.jp/service/provider/spmode/function/payment/index.html#p03 対応済み(2011/3/31~)
- SoftBank http://www.softbankmobile.co.jp/ja/news/press/2011/20110125_01/ 対応済み(2011/1/25~)
- au http://www.kddi.com/corporate/news_release/2011/0228/besshi.html 対応済み(2011/3/31~)
- EMOBILE ?
ついでにAndroid Marketでない、Android上でのコンテンツ決済サービスのメモ。こちらはサイト側の対応が必要なので、対応サービスでのみ利用できる。さらにいうと上記のauのプレスリリースを見るかぎり、この決済サービスの「対応サイト」にAndroid Marketが加わった、という関係性みたい。
- docomo spモード http://www.nttdocomo.co.jp/service/provider/spmode/ 2010/9/1~
- SoftBank http://www.softbankmobile.co.jp/ja/news/press/2011/20110228_02/ 2011/2/28~
- au auかんたん決済 http://markezine.jp/article/detail/10473 2010/6/1~
- EMOBILE ?
Labels:
android,
Android Market
2011年4月13日水曜日
Xcode 4で古いライブラリのリンクエラーの解決方法を要点だけ
Xcode 4にアップデートしたときに、古いarm6用にビルドされたライブラリのリンクでエラーになる場合の解決方法。
"Undefined Symbols for architecture armv7" みたいな感じ。
詳しくはみてないけどどうもXcode 4のビルド設定のデフォルトが変わった模様。
これは、 ビルド設定のアーキテクチャにarmv6 と armv7のキーワードがあることが原因っぽい。
⇒Target > Valid Architectures をダブルクリックして、armv7のエントリを削除
そうするとビルドに成功します。ただしiPhone 3GS以降はarmv7なので、当然armv7でビルドできるならそちらのほうが良いはず。
"Undefined Symbols for architecture armv7" みたいな感じ。
詳しくはみてないけどどうもXcode 4のビルド設定のデフォルトが変わった模様。
これは、 ビルド設定のアーキテクチャにarmv6 と armv7のキーワードがあることが原因っぽい。
⇒Target > Valid Architectures をダブルクリックして、armv7のエントリを削除
そうするとビルドに成功します。ただしiPhone 3GS以降はarmv7なので、当然armv7でビルドできるならそちらのほうが良いはず。
2011年4月11日月曜日
Android Market のdocomo決済について要点だけ
Xperia arc SO-01C ではSIMカードを指してない状態でも Wi-Fi が利用可能。
ついでなので、Android Marketの決済まわりがどのような挙動になるのかを
いくつかの条件で試して、整理してみた。
1.docomo決済について
・Wi-Fi接続だけ(SIMなし)のときはクレカ決済だけが可能。docomo決済はそもそも選択肢として出てこない。
⇒docomo決済をするには3G回線が生きていることが条件ということかな。なのでSIMがささっていても圏外では同様、だと思う。
・クレジットカード決済はSIMなしでも可能
・docomo決済を選択すると、初回には住所氏名の入力が求められる。これはGoogle checkoutの「支払方法」の一つとして、クレカと並列として扱われる。VISA xxxxxxに対して DOCOMO JP xxxxxxxxxxx見たいな感じ。決済完了メールもこのDOCOMO JPで来る。
・docomo決済でアプリを購入するには、spモードパスワード入力が必須。
・マーケットで「約○○円」と出るもの(たしか外貨払いのもの)は、docomo決済できない(項目としては出てるけど、グレーアウト)
2.払い戻しについて
・アプリ購入ご15分間は払い戻しが可能。
・購入したアプリのAndroid Marketページに行くと、購入ボタンのところに「払い戻し」というボタンが出る
・「払い戻し」をタップすると、払い戻し処理に合わせてアプリのアンインストールも行われる
・一度払い戻しをしたアプリは、再購入時は払い戻し対象外。
ついでなので、Android Marketの決済まわりがどのような挙動になるのかを
いくつかの条件で試して、整理してみた。
1.docomo決済について
・Wi-Fi接続だけ(SIMなし)のときはクレカ決済だけが可能。docomo決済はそもそも選択肢として出てこない。
⇒docomo決済をするには3G回線が生きていることが条件ということかな。なのでSIMがささっていても圏外では同様、だと思う。
・クレジットカード決済はSIMなしでも可能
・docomo決済を選択すると、初回には住所氏名の入力が求められる。これはGoogle checkoutの「支払方法」の一つとして、クレカと並列として扱われる。VISA xxxxxxに対して DOCOMO JP xxxxxxxxxxx見たいな感じ。決済完了メールもこのDOCOMO JPで来る。
・docomo決済でアプリを購入するには、spモードパスワード入力が必須。
・マーケットで「約○○円」と出るもの(たしか外貨払いのもの)は、docomo決済できない(項目としては出てるけど、グレーアウト)
2.払い戻しについて
・アプリ購入ご15分間は払い戻しが可能。
・購入したアプリのAndroid Marketページに行くと、購入ボタンのところに「払い戻し」というボタンが出る
・「払い戻し」をタップすると、払い戻し処理に合わせてアプリのアンインストールも行われる
・一度払い戻しをしたアプリは、再購入時は払い戻し対象外。
Labels:
android
2011年4月9日土曜日
Android App ウィジェットの更新頻度について要点だけ
- updatePeriodMillsの最低間隔は30分
- updatePeriodMillsによる更新はデバイスの復帰状態を解除する。要注意。
- もっと短い間隔で更新したい場合はAlarmManagerを使う。こっちはスリープも有効。
Android ウィジェット開発の要点だけに書いたとおり、Android ウィジェットの更新はAppWidgetProviderInfoのupdatePeriodMills間隔で行われることになっている。ただし、この更新は端末がスリープも解除して行ってしまうため、あまり頻繁に行う事は推奨されていないし、実際30分より短い間隔でonUpdateは呼ばれないらしい(設定値が無視される)。
これはデバイスのバッテリー消費を抑えるためでごもっとも。望ましくはユーザに更新間隔を設定させるUIも必要かもしれない。
仮に30分より短い間隔で更新を行いたい場合にはAlarmManagerからIntentをコールするような方法を使い、こちらはスリープ中にデバイスをウェークアップさせてしまうことはない(でも操作中はバックグラウンドで動作してしまうから、やっぱり過度な更新は控えるべきなんだろう)。
AlarmManagerを使った更新のやりかたは別途まとめるつもり。
Labels:
android
2011年4月6日水曜日
Androidロードマップの要点だけ
POST時点でのロードマップを整理してみるテスト。必ずしも正式発表のものだけではないことに注意:
・リリース済み
2010年1月 2.1 スマートフォン用 API Level 7
2010年5月 2.2 Froyo スマートフォン用 API Level 8 高速化(JIT)/Flash 10.1/Web版Android Market(OTAインストール)/etc
2010年11月 2.3 Gingerbread スマートフォン用 API Level 9 NFC/センサ(ジャイロ、コンパスetc)/フロントカメラ
2011年2月 2.3.3 API Level 10 マイナーリリース。
2011年2月 3.0 Honeycomb API Level 11 タブレット用 ホログラフィックUI/新しいアニメーションフレームワーク/Hardware-acceralated Graphics/マルチコアCPU
・未リリース
2011年後半? 4.0? Ice Cream スマートフォン用とタブレット用が統合される見込み
http://developer.android.com/intl/ja/sdk/android-2.1.html
http://developer.android.com/intl/ja/sdk/android-2.2.html
http://developer.android.com/intl/ja/sdk/android-2.3-highlights.html
http://developer.android.com/intl/ja/sdk/android-3.0-highlights.html#DeveloperApis
・リリース済み
2010年1月 2.1 スマートフォン用 API Level 7
2010年5月 2.2 Froyo スマートフォン用 API Level 8 高速化(JIT)/Flash 10.1/Web版Android Market(OTAインストール)/etc
2010年11月 2.3 Gingerbread スマートフォン用 API Level 9 NFC/センサ(ジャイロ、コンパスetc)/フロントカメラ
2011年2月 2.3.3 API Level 10 マイナーリリース。
2011年2月 3.0 Honeycomb API Level 11 タブレット用 ホログラフィックUI/新しいアニメーションフレームワーク/Hardware-acceralated Graphics/マルチコアCPU
・未リリース
2011年後半? 4.0? Ice Cream スマートフォン用とタブレット用が統合される見込み
http://developer.android.com/intl/ja/sdk/android-2.1.html
http://developer.android.com/intl/ja/sdk/android-2.2.html
http://developer.android.com/intl/ja/sdk/android-2.3-highlights.html
http://developer.android.com/intl/ja/sdk/android-3.0-highlights.html#DeveloperApis
Labels:
android
Android ウィジェット開発の要点だけ
(参照:http://developer.android.com/guide/topics/appwidgets/index.html)
概要
App Widgetとは、他のView(典型的にはHome画面)に埋め込まれる小さいアプリケーション。
構成要素
(1)AppWidgetProviderInfo:XMLで定義。レイアウトや更新頻度などを定義する
(2)AppWidgetProvider:updated(onUpdate)/enabled(onEnabled)/disabled(onDisabled)/deleted(onDeleted)なとき、このクラスを介して処理を行う。このほかonReceiveメソッドも利用できるが通常不要。onUpdateはupdatePeriodMillis間隔で呼ばれる。
(3)View layout:Widgetのレイアウトを定義する。使えるレイアウトやウィジェットに制限がある(RemoteViews)
手順
AndroidManifest.xmlにAppWidgetProviderのreceiverを定義する。このときintent-filterはandroid.appwidget.action.APPWIDGET_UPDATE。meta-data要素としてAppWidgetProviderInfoリソースのxmlを指定する。AppWidgetProviderInfoで指定できるのは幅(android:minWidth)高さ(android:minHeight)更新頻度(android:updatePeriodMillis)レイアウト(android:initialLayout)および設定用のActivity(android:configure)。
App Widget Configuration Activity
App Widget Configuration Activityは通常のActivityとして定義するが、intent-filterとしてandroid.appwidget.action.APPWIDGET_CONFIGUREを設定する。
そのうえでこのActivityはAppWidgetProviderInfoリソースで宣言される。WidgetがConfigurationActivityを使うとき、このアクティビティはWidgetの状態/設定を更新する責任がある。これはAppWidgetManagerのupdateAppWidgetメソッドを介して行う。
概要
App Widgetとは、他のView(典型的にはHome画面)に埋め込まれる小さいアプリケーション。
構成要素
(1)AppWidgetProviderInfo:XMLで定義。レイアウトや更新頻度などを定義する
(2)AppWidgetProvider:updated(onUpdate)/enabled(onEnabled)/disabled(onDisabled)/deleted(onDeleted)なとき、このクラスを介して処理を行う。このほかonReceiveメソッドも利用できるが通常不要。onUpdateはupdatePeriodMillis間隔で呼ばれる。
(3)View layout:Widgetのレイアウトを定義する。使えるレイアウトやウィジェットに制限がある(RemoteViews)
手順
AndroidManifest.xmlにAppWidgetProviderのreceiverを定義する。このときintent-filterはandroid.appwidget.action.APPWIDGET_UPDATE。meta-data要素としてAppWidgetProviderInfoリソースのxmlを指定する。AppWidgetProviderInfoで指定できるのは幅(android:minWidth)高さ(android:minHeight)更新頻度(android:updatePeriodMillis)レイアウト(android:initialLayout)および設定用のActivity(android:configure)。
App Widget Configuration Activity
App Widget Configuration Activityは通常のActivityとして定義するが、intent-filterとしてandroid.appwidget.action.APPWIDGET_CONFIGUREを設定する。
そのうえでこのActivityはAppWidgetProviderInfoリソースで宣言される。WidgetがConfigurationActivityを使うとき、このアクティビティはWidgetの状態/設定を更新する責任がある。これはAppWidgetManagerのupdateAppWidgetメソッドを介して行う。
登録:
投稿 (Atom)