2009年10月28日水曜日



f:id:bs-android:20091028025552p:image


1.6のDonutがリリースされ、HT-03Aへのアップデートが始まったばかりですが、もう2.0のEclairのSDKがリリースされてしまいました。


早速2.0のエミュレータを動かしてみました。





起動画面は代わり映えありません。


f:id:bs-android:20091028022335p:image





ロックスクリーンがちょっとかっこ良くなってます。


f:id:bs-android:20091028022336p:image





ロック解除の方法も変わり、鍵アイコンをタッチしてスライドする方式に。※menuキーでも解除可能


スピーカのアイコンをタッチしてスライドすると、ロックした状態で音のオン/オフもできるようになっているようです。


f:id:bs-android:20091028025726p:image





待ち受け画面。アイコンが微妙に変わっています。


f:id:bs-android:20091028025754p:image





まずはヴァージョンを確認。Eclairの文字が見えます。


f:id:bs-android:20091028025849p:image





Settingの画面にアイコンがついてちょっと豪華になっています。


f:id:bs-android:20091028030016p:image











見た目はそれほど変わっていませんが、変更点はかなり多いです。



・Contacts and accounts


 ・Multiple accounts can be added to a device for email and contact synchronization, including Exchange accounts. (Handset manufacturers can choose whether to include Exchange support in their devices.)


 ・Developers can create sync adapters that provide synchronization with additional data sources.


 ・Quick Contact for Android provides instant access to a contact's information and communication modes. For example, a user can tap a contact photo and select to call, SMS, or email the person. Other applications such as Email, Messaging, and Calendar can also reveal the Quick Contact widget when you touch a contact photo or status icon.



ついにマルチアカウントが可能に!


エミュレータには同期の設定が出てこないので確認できず。



・Email


 ・Exchange support.


 ・Combined inbox to browse email from multiple accounts in one page.



標準のEメールクライアントで、Exchangeメールが使えるようになっています。Exchange対応のソースがオープン版にもアップされれば嬉しいですね。


f:id:bs-android:20091028030549p:image






・Messaging


 ・Search functionality for all saved SMS and MMS messages.


 ・Auto delete the oldest messages in a conversation when a defined limit is reached.



SMS、MMSメッセージが検索できるようになりました。制限容量を超えると自動で削除する機能も。






・Camera


 ・Built-in flash support


 ・Digital zoom


 ・Scene mode


 ・White balance


 ・Color effect


 ・Macro focus



標準でかなりの機能がサポートされるように!以下はエミュレータのカメラ画面


f:id:bs-android:20091028030953p:image






・Android virtual keyboard


 ・An improved keyboard layout to makes it easier to hit the correct characters and improve typing speed.


 ・The framework's multi-touch support ensures that key presses aren't missed while typing rapidly with two fingers.


 ・A smarter dictionary learns from word usage and automatically includes contact names as suggestions.



正確に素早く打てるようにレイアウトの変更


フレームワークでマルチタッチに対応


予測変換と辞書機能の強化






・Browser


 * Refreshed UI with actionable browser URL bar enables users to directly tap the address bar for instant searches and navigation.


 * Bookmarks with web page thumbnails.


 * Support for double-tap zoom.


 * Support for HTML5:


  o Database API support, for client-side databases using SQL.


  o Application cache support, for offline applications.


  o Geolocation API support, to provide location information about the device.


  o <video> tag support in fullscreen mode.



ダブルタップで拡大表示するなど、かなり使い勝手がよくなっています。


以下はブックマークの画面


f:id:bs-android:20091028032008p:image


ついにAndroidにHTML5の波がやってきたようです。


しかもなんとVideoタグに対応してるようです!


YoutubeのHTML5の対応サイトを見てみると・・・


f:id:bs-android:20091028032420p:image





見事に失敗してしまいました。残念。


f:id:bs-android:20091028032418p:image





Dailymotionのvideoタグ対応サイトも見てみたのですが、うまく動きませんでした。どこか他に見れるサイトを探すか作ってみようと思います。とりあえずフルスクリーンでないと駄目なようです。


f:id:bs-android:20091028033250p:image






・Calendar


 ・Agenda view provides infinite scrolling.


 ・Events indicate the attending status for each invitee.


 ・Invite new guests to events.



そして、プラットフォームの新機能が追加されています。



・Media Framework


 Revamped graphics architecture for improved performance that enables better hardware acceleration.


・Bluetooth


 ・Bluetooth 2.1


  New BT profiles: Object Push Profile (OPP) and Phone Book Access Profile (PBAP)



ついにBluetoothが正式対応に!





上記以外にも新APIや差分があります。


リリースノート


差分一覧はこちら





また、今回からインストール方法が変わっています。


詳細は別エントリでアップしようと思います。





Android 2.0のSDKがリリースされました!



f:id:bs-android:20091028025552p:image


1.6のDonutがリリースされ、HT-03Aへのアップデートが始まったばかりですが、もう2.0のEclairのSDKがリリースされてしまいました。


早速2.0のエミュレータを動かしてみました。





起動画面は代わり映えありません。


f:id:bs-android:20091028022335p:image





ロックスクリーンがちょっとかっこ良くなってます。


f:id:bs-android:20091028022336p:image





ロック解除の方法も変わり、鍵アイコンをタッチしてスライドする方式に。※menuキーでも解除可能


スピーカのアイコンをタッチしてスライドすると、ロックした状態で音のオン/オフもできるようになっているようです。


f:id:bs-android:20091028025726p:image





待ち受け画面。アイコンが微妙に変わっています。


f:id:bs-android:20091028025754p:image





まずはヴァージョンを確認。Eclairの文字が見えます。


f:id:bs-android:20091028025849p:image





Settingの画面にアイコンがついてちょっと豪華になっています。


f:id:bs-android:20091028030016p:image











見た目はそれほど変わっていませんが、変更点はかなり多いです。



・Contacts and accounts


 ・Multiple accounts can be added to a device for email and contact synchronization, including Exchange accounts. (Handset manufacturers can choose whether to include Exchange support in their devices.)


 ・Developers can create sync adapters that provide synchronization with additional data sources.


 ・Quick Contact for Android provides instant access to a contact's information and communication modes. For example, a user can tap a contact photo and select to call, SMS, or email the person. Other applications such as Email, Messaging, and Calendar can also reveal the Quick Contact widget when you touch a contact photo or status icon.



ついにマルチアカウントが可能に!


エミュレータには同期の設定が出てこないので確認できず。



・Email


 ・Exchange support.


 ・Combined inbox to browse email from multiple accounts in one page.



標準のEメールクライアントで、Exchangeメールが使えるようになっています。Exchange対応のソースがオープン版にもアップされれば嬉しいですね。


f:id:bs-android:20091028030549p:image






・Messaging


 ・Search functionality for all saved SMS and MMS messages.


 ・Auto delete the oldest messages in a conversation when a defined limit is reached.



SMS、MMSメッセージが検索できるようになりました。制限容量を超えると自動で削除する機能も。






・Camera


 ・Built-in flash support


 ・Digital zoom


 ・Scene mode


 ・White balance


 ・Color effect


 ・Macro focus



標準でかなりの機能がサポートされるように!以下はエミュレータのカメラ画面


f:id:bs-android:20091028030953p:image






・Android virtual keyboard


 ・An improved keyboard layout to makes it easier to hit the correct characters and improve typing speed.


 ・The framework's multi-touch support ensures that key presses aren't missed while typing rapidly with two fingers.


 ・A smarter dictionary learns from word usage and automatically includes contact names as suggestions.



正確に素早く打てるようにレイアウトの変更


フレームワークでマルチタッチに対応


予測変換と辞書機能の強化






・Browser


 * Refreshed UI with actionable browser URL bar enables users to directly tap the address bar for instant searches and navigation.


 * Bookmarks with web page thumbnails.


 * Support for double-tap zoom.


 * Support for HTML5:


  o Database API support, for client-side databases using SQL.


  o Application cache support, for offline applications.


  o Geolocation API support, to provide location information about the device.


  o <video> tag support in fullscreen mode.



ダブルタップで拡大表示するなど、かなり使い勝手がよくなっています。


以下はブックマークの画面


f:id:bs-android:20091028032008p:image


ついにAndroidにHTML5の波がやってきたようです。


しかもなんとVideoタグに対応してるようです!


YoutubeのHTML5の対応サイトを見てみると・・・


f:id:bs-android:20091028032420p:image





見事に失敗してしまいました。残念。


f:id:bs-android:20091028032418p:image





Dailymotionのvideoタグ対応サイトも見てみたのですが、うまく動きませんでした。どこか他に見れるサイトを探すか作ってみようと思います。とりあえずフルスクリーンでないと駄目なようです。


f:id:bs-android:20091028033250p:image






・Calendar


 ・Agenda view provides infinite scrolling.


 ・Events indicate the attending status for each invitee.


 ・Invite new guests to events.



そして、プラットフォームの新機能が追加されています。



・Media Framework


 Revamped graphics architecture for improved performance that enables better hardware acceleration.


・Bluetooth


 ・Bluetooth 2.1


  New BT profiles: Object Push Profile (OPP) and Phone Book Access Profile (PBAP)



ついにBluetoothが正式対応に!





上記以外にも新APIや差分があります。


リリースノート


差分一覧はこちら





また、今回からインストール方法が変わっています。


詳細は別エントリでアップしようと思います。





2009年10月24日土曜日



f:id:bs-android:20091023145856p:image


本日(2009/10/23)より日本から有料アプリがダウンロードできるようになりました。


そこで早速、有料アプリをダウンロードしてみました。


有料アプリのダウンロード機能自体は以前から組み込まれているので、Androidのバージョンが1.5のままでも有料アプリのダウンロードが出来るようになっていました。


f:id:bs-android:20091023152456p:image


f:id:bs-android:20091023152447p:image


1.6でのスクリーンショット


f:id:bs-android:20091023152623p:image


f:id:bs-android:20091023152622p:image





CamCamPainter Proを購入してみます。購入ボタンが出ています。


f:id:bs-android:20091023153236p:image





通常のアプリと同じようにまずはパーミッションの確認画面。(パーミッションが必要ないアプリでは出ません。)


f:id:bs-android:20091023153235p:image





まだ一度も利用規約に同意していない場合は、長い長い利用規約のダイアログが表示されます。


f:id:bs-android:20091023153233p:image





クレジットカードでの決済しかないので当然ですが、二十歳以上しか使えません。


f:id:bs-android:20091023153222p:image





「問い合わせページ」をタッチすればリンク先に飛べそうだったのですが、反応してくれませんでした。


f:id:bs-android:20091023153216p:image





「よくある質問」はタッチできました。


f:id:bs-android:20091023153215p:image





よくある質問ページに飛んだのはいいのですが、利用規約の画面に戻れなくなってしまいました。バックキーも効かないので、利用規約を確認するには「同意しない」を押して、もう一度やり直しが必要です。細部にこだわる人向けに用意されてるはずなのに、そういう人ほど引っかかりやすい罠ですね。


f:id:bs-android:20091023153214p:image





カード情報がでてきて、「今すぐ購入」のボタンになります。


f:id:bs-android:20091023153912p:image





新しいカード情報を登録する事も出来ます。


f:id:bs-android:20091023154228p:image





新規カード設定画面。GoogleCheckOutに登録していないアカウントならこの画面が最初に出るのかもしれません。


f:id:bs-android:20091023154314p:image





二つ前のスクリーンショットの「払い戻しポリシー」を押したところ。今度はブラウザが開きます。


24時間以内なら返品可能ですが、1度払い戻しを受けると、同じアプリの払い戻しは二度と出来ません。


f:id:bs-android:20091023154512p:image


f:id:bs-android:20091023154506p:image





「今すぐ購入」を押すと、「クレジットカード情報認証中」のトースト表示がしばらく出て、ダウンロードが始まります。


f:id:bs-android:20091023155414p:image





ダウンロードが終わったところ。購入してから24時間以内なので「払い戻しとアンインストール」のボタンがあります。


「払い戻しとアンインストール」のボタンを押してしまうと、何の確認もなく、すぐに払い戻し処理とアンインストールが行われてしまうので、ついうっかり押してしまわないように注意しましょう。


f:id:bs-android:20091023155614p:image





これで購入は完了です。作業の途中は気がつきませんでしたが、メールが来ていました。


これは購入時に送られてくるメール。


f:id:bs-android:20091023155904p:image





こっちは間違って払い戻ししてしまった時にきたメール


f:id:bs-android:20091023155903p:image





今後、事業者の課金システムを利用して、有料アプリが二十歳未満でも購入できるようになったり、月額課金ができるようになるといいですね!





日本からの有料アプリのダウンロード最速レポート。



f:id:bs-android:20091023145856p:image


本日(2009/10/23)より日本から有料アプリがダウンロードできるようになりました。


そこで早速、有料アプリをダウンロードしてみました。


有料アプリのダウンロード機能自体は以前から組み込まれているので、Androidのバージョンが1.5のままでも有料アプリのダウンロードが出来るようになっていました。


f:id:bs-android:20091023152456p:image


f:id:bs-android:20091023152447p:image


1.6でのスクリーンショット


f:id:bs-android:20091023152623p:image


f:id:bs-android:20091023152622p:image





CamCamPainter Proを購入してみます。購入ボタンが出ています。


f:id:bs-android:20091023153236p:image





通常のアプリと同じようにまずはパーミッションの確認画面。(パーミッションが必要ないアプリでは出ません。)


f:id:bs-android:20091023153235p:image





まだ一度も利用規約に同意していない場合は、長い長い利用規約のダイアログが表示されます。


f:id:bs-android:20091023153233p:image





クレジットカードでの決済しかないので当然ですが、二十歳以上しか使えません。


f:id:bs-android:20091023153222p:image





「問い合わせページ」をタッチすればリンク先に飛べそうだったのですが、反応してくれませんでした。


f:id:bs-android:20091023153216p:image





「よくある質問」はタッチできました。


f:id:bs-android:20091023153215p:image





よくある質問ページに飛んだのはいいのですが、利用規約の画面に戻れなくなってしまいました。バックキーも効かないので、利用規約を確認するには「同意しない」を押して、もう一度やり直しが必要です。細部にこだわる人向けに用意されてるはずなのに、そういう人ほど引っかかりやすい罠ですね。


f:id:bs-android:20091023153214p:image





カード情報がでてきて、「今すぐ購入」のボタンになります。


f:id:bs-android:20091023153912p:image





新しいカード情報を登録する事も出来ます。


f:id:bs-android:20091023154228p:image





新規カード設定画面。GoogleCheckOutに登録していないアカウントならこの画面が最初に出るのかもしれません。


f:id:bs-android:20091023154314p:image





二つ前のスクリーンショットの「払い戻しポリシー」を押したところ。今度はブラウザが開きます。


24時間以内なら返品可能ですが、1度払い戻しを受けると、同じアプリの払い戻しは二度と出来ません。


f:id:bs-android:20091023154512p:image


f:id:bs-android:20091023154506p:image





「今すぐ購入」を押すと、「クレジットカード情報認証中」のトースト表示がしばらく出て、ダウンロードが始まります。


f:id:bs-android:20091023155414p:image





ダウンロードが終わったところ。購入してから24時間以内なので「払い戻しとアンインストール」のボタンがあります。


「払い戻しとアンインストール」のボタンを押してしまうと、何の確認もなく、すぐに払い戻し処理とアンインストールが行われてしまうので、ついうっかり押してしまわないように注意しましょう。


f:id:bs-android:20091023155614p:image





これで購入は完了です。作業の途中は気がつきませんでしたが、メールが来ていました。


これは購入時に送られてくるメール。


f:id:bs-android:20091023155904p:image





こっちは間違って払い戻ししてしまった時にきたメール


f:id:bs-android:20091023155903p:image





今後、事業者の課金システムを利用して、有料アプリが二十歳未満でも購入できるようになったり、月額課金ができるようになるといいですね!





2009年10月15日木曜日



f:id:bs-android:20091009140956p:image


f:id:bs-android:20090902163248p:image


弊社近藤が開発に携わったスポットメッセージ(仮)βの紹介を株式会社バンプールの有川さんにしていただきます。


近藤も少しだけ開発苦労話をすることになっています。


参加者の募集ページが公開されいますので、興味のある方は是非ご参加ください。




ぎりぎりになってしまいましたが、申込み期限は本日18時までです。





2009/10/19の日本Androidの会の定例会



f:id:bs-android:20091009140956p:image


f:id:bs-android:20090902163248p:image


弊社近藤が開発に携わったスポットメッセージ(仮)βの紹介を株式会社バンプールの有川さんにしていただきます。


近藤も少しだけ開発苦労話をすることになっています。


参加者の募集ページが公開されいますので、興味のある方は是非ご参加ください。




ぎりぎりになってしまいましたが、申込み期限は本日18時までです。





2009年10月14日水曜日



f:id:bs-android:20091014091054p:image


弊社代表の杉本が、パナソニック様よりお招きいただき、Androidに関する講演を行ってきました。


以下杉本のコメントです。



2009年10月13日にパナソニックAVCマルチメディアソフト株式会社とパナソニックAVCテクノロジー株式会社での招待講演に行って来ました。





社内の方への講演の為、一般の方の参加は出来なかったのですがブログに載せてよいとの許可を頂きましたので記事にさせて頂きます。





技術者の方で開場は満席で、その後に会議室での技術者との交流会もありました


そこで受けた印象としては、Androidに対する理解を深めてやろう!という貪欲な姿勢を強く感じました。





組込みの業界の典型のメーカ主導の開発に積極的にAndroidのようなオープンな文化の風を取り入れようとする経営陣の発想も素晴らしいと思います。





メーカとはもっと堅いイメージを想像していたのですが予想以上の柔軟さとオープンソースへの理解に驚きました。



パナソニック様発のAndroidに期待です!!





パナソニックAVCマルチメディアソフト株式会社とパナソニックAVCテクノロジー株式会社での招待講演に行って来ました



f:id:bs-android:20091014091054p:image


弊社代表の杉本が、パナソニック様よりお招きいただき、Androidに関する講演を行ってきました。


以下杉本のコメントです。



2009年10月13日にパナソニックAVCマルチメディアソフト株式会社とパナソニックAVCテクノロジー株式会社での招待講演に行って来ました。





社内の方への講演の為、一般の方の参加は出来なかったのですがブログに載せてよいとの許可を頂きましたので記事にさせて頂きます。





技術者の方で開場は満席で、その後に会議室での技術者との交流会もありました


そこで受けた印象としては、Androidに対する理解を深めてやろう!という貪欲な姿勢を強く感じました。





組込みの業界の典型のメーカ主導の開発に積極的にAndroidのようなオープンな文化の風を取り入れようとする経営陣の発想も素晴らしいと思います。





メーカとはもっと堅いイメージを想像していたのですが予想以上の柔軟さとオープンソースへの理解に驚きました。



パナソニック様発のAndroidに期待です!!





2009年10月8日木曜日



http://mashupaward.jp/


Tokyo-GTUGのイベントの懇親会に参加中なのですが、今回のイベントのスポンサーのリクルートさんのお話によると、


Android | Mashup Awards 5 on CREYLEにて、マッシュアップアワードのAndroidアプリの応募が、全然集まっていないそうです。


今回のマッシュアップアワードでAndroidアプリが応募できる事自体があまり知られてないと思いますので、ここで宣伝しておきたいと思います。


ADC2に登録したアプリでも問題ないとの事なので、マッシュアップアワードにも応募してみてはどうでしょうか?


最優秀賞の賞金は100万円です!





MA5(マッシュアップアワード5)のAndroidアプリの応募が少ないようです



http://mashupaward.jp/


Tokyo-GTUGのイベントの懇親会に参加中なのですが、今回のイベントのスポンサーのリクルートさんのお話によると、


Android | Mashup Awards 5 on CREYLEにて、マッシュアップアワードのAndroidアプリの応募が、全然集まっていないそうです。


今回のマッシュアップアワードでAndroidアプリが応募できる事自体があまり知られてないと思いますので、ここで宣伝しておきたいと思います。


ADC2に登録したアプリでも問題ないとの事なので、マッシュアップアワードにも応募してみてはどうでしょうか?


最優秀賞の賞金は100万円です!





2009年10月2日金曜日



f:id:bs-android:20091001224644p:image


GPSを使用するアプリケーションを開発して、外に出て実機でテストすると、どうしてもその場でログが確認できない状況が発生します。


そんな時にはSDカードにログを出力するようにしておくと便利です。


以下はSDカードにログを出力する例です。



package jp.bs.util;

import java.io.File;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.util.Date;

import android.os.Environment;
import android.util.Log;

public class SdLog {
private final static String LOGDIR = Environment.getExternalStorageDirectory().getPath() + "/hoge/";
private final static String SDFILE = LOGDIR+"log.txt";
private static boolean enable = true;
static public void put(String text) {
if (!enable) return;
Date now = new Date();
BufferedWriter bw = null;
StackTraceElement[] ste = (new Throwable()).getStackTrace();
text = ste[1].getMethodName()
+ "("
+ ste[1].getFileName() + ":" + ste[1].getLineNumber()
+ ") " + text;
try {
try {
mkdir_p(LOGDIR);
} catch (IOException e) {
e.printStackTrace();
return;
}
FileOutputStream file = new FileOutputStream(SDFILE, true);
bw = new BufferedWriter(new OutputStreamWriter(
file, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
bw.append((now.getYear()+1900)+"/"+(now.getMonth()+1)+"/"+now.getDate()
+" "+now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+"\t"+text+"\n");
Log.e("log",(now.getYear()+1900)+"/"+(now.getMonth()+1)+"/"+now.getDate()
+" "+now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+"\t"+text);
} catch (IOException e) {
e.printStackTrace();
}
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
bw = null;
}

public static boolean mkdir_p(File dir) throws IOException {
if (!dir.exists()) {
if (!dir.mkdirs()) {
throw new IOException("File.mkdirs() failed.");
}
return true;
} else if (!dir.isDirectory()) {
throw new IOException("Cannot create path. " + dir.toString() + " already exists and is not a directory.");
} else {
return false;
}
}

public static boolean mkdir_p(String dir) throws IOException {
return mkdir_p(new File(dir));
}
}


Throwableからスタックトレースを取得してファイル名とメソッド名、行番号を取ってきているのがポイントです。



SdLog.put("hogehoge");


として使うとLogCatの画面に



10-01 22:59:32.149: ERROR/log(9532): 2009/10/1 22:59:31 onCreate(HogeActivity.java:113) hogehoge


のように出力されるのと同時にLOGDIRに設定しているディレクトリにファイル出力されます。


#この場合は「/sdcard/hoge/log.txt」


全てのログ出力をこの方法にしておけば、SdLogのenableをfalseにしておけばログ出力を一括で止める事も出来ます。


SDカード内のファイルを閲覧できるアプリを入れて置くと、Androidの実機本体だけでログを確認することができ、非常に便利です。


是非ご活用ください。


なお、SDK1.6よりSDカード書き込みのパーミッションが必要になりましたが、1.6にアップデートしたGDDPhoneではパーミッションの記述をしなくても書き込みできるようです。


今後変更されたり、HT-03Aや他の機種では挙動が異なるかもしれませんので、1.6以降を使う場合は以下のパーミッションをマニフェストファイルに記述しておいた方がよいでしょう。



<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>





SDカードにログを出力する方法



f:id:bs-android:20091001224644p:image


GPSを使用するアプリケーションを開発して、外に出て実機でテストすると、どうしてもその場でログが確認できない状況が発生します。


そんな時にはSDカードにログを出力するようにしておくと便利です。


以下はSDカードにログを出力する例です。



package jp.bs.util;

import java.io.File;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.util.Date;

import android.os.Environment;
import android.util.Log;

public class SdLog {
private final static String LOGDIR = Environment.getExternalStorageDirectory().getPath() + "/hoge/";
private final static String SDFILE = LOGDIR+"log.txt";
private static boolean enable = true;
static public void put(String text) {
if (!enable) return;
Date now = new Date();
BufferedWriter bw = null;
StackTraceElement[] ste = (new Throwable()).getStackTrace();
text = ste[1].getMethodName()
+ "("
+ ste[1].getFileName() + ":" + ste[1].getLineNumber()
+ ") " + text;
try {
try {
mkdir_p(LOGDIR);
} catch (IOException e) {
e.printStackTrace();
return;
}
FileOutputStream file = new FileOutputStream(SDFILE, true);
bw = new BufferedWriter(new OutputStreamWriter(
file, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
bw.append((now.getYear()+1900)+"/"+(now.getMonth()+1)+"/"+now.getDate()
+" "+now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+"\t"+text+"\n");
Log.e("log",(now.getYear()+1900)+"/"+(now.getMonth()+1)+"/"+now.getDate()
+" "+now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+"\t"+text);
} catch (IOException e) {
e.printStackTrace();
}
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
bw = null;
}

public static boolean mkdir_p(File dir) throws IOException {
if (!dir.exists()) {
if (!dir.mkdirs()) {
throw new IOException("File.mkdirs() failed.");
}
return true;
} else if (!dir.isDirectory()) {
throw new IOException("Cannot create path. " + dir.toString() + " already exists and is not a directory.");
} else {
return false;
}
}

public static boolean mkdir_p(String dir) throws IOException {
return mkdir_p(new File(dir));
}
}


Throwableからスタックトレースを取得してファイル名とメソッド名、行番号を取ってきているのがポイントです。



SdLog.put("hogehoge");


として使うとLogCatの画面に



10-01 22:59:32.149: ERROR/log(9532): 2009/10/1 22:59:31 onCreate(HogeActivity.java:113) hogehoge


のように出力されるのと同時にLOGDIRに設定しているディレクトリにファイル出力されます。


#この場合は「/sdcard/hoge/log.txt」


全てのログ出力をこの方法にしておけば、SdLogのenableをfalseにしておけばログ出力を一括で止める事も出来ます。


SDカード内のファイルを閲覧できるアプリを入れて置くと、Androidの実機本体だけでログを確認することができ、非常に便利です。


是非ご活用ください。


なお、SDK1.6よりSDカード書き込みのパーミッションが必要になりましたが、1.6にアップデートしたGDDPhoneではパーミッションの記述をしなくても書き込みできるようです。


今後変更されたり、HT-03Aや他の機種では挙動が異なるかもしれませんので、1.6以降を使う場合は以下のパーミッションをマニフェストファイルに記述しておいた方がよいでしょう。



<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>





2009年9月26日土曜日



f:id:bs-android:20090914194230p:image


先日のブログ記事「Mac OS X 10.6 Snow LeopardでDonutブランチをビルドする方法」で


Snow Leopardでのビルド方法を記述しましたが色々試行錯誤した結果、手順を簡素化することができましたので情報を公開いたします。


2009/09/25 11:00時点でmasterバージョン、android-1.6_r1、donutブランチにてビルド可能なことを確認しております。



xcodeのインストール


・xcodeの最新版(現時点では3.2)をインストールします。ダウンロード(ログインが必要)。※Snow LeopardのDVDにも同梱されています。


インストール時に10.4のサポートにチェックを入れてください。


f:id:bs-android:20090914195741p:image





Rosettaのインストール


・Rosettaをインストールします。(flexが要求してきます。)※Snow LeopardのDVDに同梱されています。


オプションインストール>Optional Installs.mpkgを実行しRosettaにチェックを入れてください。


f:id:bs-android:20090925123213p:image





MacPortsのインストール


・MacPortsをインストールします。こちらからsnowleopard用のをダウンロード。


いつもどおりマウントしインストールします。


f:id:bs-android:20090925123212p:image





・インストールが完了したらPortsをアップデートします。



sudo port selfupdate
sudo port sync


・続いて必要なportをインストールします。



POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg
sudo port install wget


・PATHを通しコマンドが実行可能にします。


~/.bash_profileに追記します。



export PATH=/opt/local/bin:$PATH





Javaのバージョン設定


Snow Leopardからjava1.5が削除された為、javaの1.5をダウンロードして解凍し、システムに登録します。



wget http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.5.0-leopard.tar.gz
tar -xvzf java.1.5.0-leopard.tar.gz
sudo mv 1.5.0 /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0-leopard
cd /System/Library/Frameworks/JavaVM.framework/Versions/
sudo rm 1.5.0
sudo ln -s 1.5.0-leopard 1.5.0


Javaの環境設定を開いて、使用するJavaのバージョンを設定します。


前回64bitを優先としましたが、今回は32bitです。



open "/Applications/Utilities/Java Preferences.app"


以下のようにJ2SE 5.0 32-bitが上に来るように変更します。


f:id:bs-android:20090925123214p:image





ビルド用ディスクイメージの作成


大文字/小文字を判別可能なファイルシステムである必要があるためディスクユーティリティを用いて


ディスクイメージを作成します。


※ディスクイメージサイズは8Gくらい~お好きなだけ設定してください。


f:id:bs-android:20090925161137p:image


repo init、sync



$ repo init -u git://android.git.kernel.org/platform/manifest.git -b donut
$ repo sync


buildspec.mkの作成


buildspec.mkをmydroidのルートディレクトリに作成し下記のように追記します。


追記箇所は任意の箇所で問題ないようです。


※buildspec.mkはmydroid/build/buildspecdefault.mkをコピーして作成



CC=gcc-4.0
CXX=g++-4.0





ビルド


「-j」オプションを付加すると何故かエラーになることがあるのでその際は「-j」を外してください。



$ make


もちろんSDKビルドも可能です。



$ make PRODUCT-sdk-sdk


実機バイナリ



Generated: (out/target/product/generic/android-info.txt)
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
Installed file list: out/target/product/generic/installed-files.txt


SDKビルド



out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.username_mac-x86.zip


のように出れば完了です。





続・Mac OS X 10.6 Snow LeopardでDonutブランチをビルドする方法



f:id:bs-android:20090914194230p:image


先日のブログ記事「Mac OS X 10.6 Snow LeopardでDonutブランチをビルドする方法」で


Snow Leopardでのビルド方法を記述しましたが色々試行錯誤した結果、手順を簡素化することができましたので情報を公開いたします。


2009/09/25 11:00時点でmasterバージョン、android-1.6_r1、donutブランチにてビルド可能なことを確認しております。



xcodeのインストール


・xcodeの最新版(現時点では3.2)をインストールします。ダウンロード(ログインが必要)。※Snow LeopardのDVDにも同梱されています。


インストール時に10.4のサポートにチェックを入れてください。


f:id:bs-android:20090914195741p:image





Rosettaのインストール


・Rosettaをインストールします。(flexが要求してきます。)※Snow LeopardのDVDに同梱されています。


オプションインストール>Optional Installs.mpkgを実行しRosettaにチェックを入れてください。


f:id:bs-android:20090925123213p:image





MacPortsのインストール


・MacPortsをインストールします。こちらからsnowleopard用のをダウンロード。


いつもどおりマウントしインストールします。


f:id:bs-android:20090925123212p:image





・インストールが完了したらPortsをアップデートします。



sudo port selfupdate
sudo port sync


・続いて必要なportをインストールします。



POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg
sudo port install wget


・PATHを通しコマンドが実行可能にします。


~/.bash_profileに追記します。



export PATH=/opt/local/bin:$PATH





Javaのバージョン設定


Snow Leopardからjava1.5が削除された為、javaの1.5をダウンロードして解凍し、システムに登録します。



wget http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.5.0-leopard.tar.gz
tar -xvzf java.1.5.0-leopard.tar.gz
sudo mv 1.5.0 /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0-leopard
cd /System/Library/Frameworks/JavaVM.framework/Versions/
sudo rm 1.5.0
sudo ln -s 1.5.0-leopard 1.5.0


Javaの環境設定を開いて、使用するJavaのバージョンを設定します。


前回64bitを優先としましたが、今回は32bitです。



open "/Applications/Utilities/Java Preferences.app"


以下のようにJ2SE 5.0 32-bitが上に来るように変更します。


f:id:bs-android:20090925123214p:image





ビルド用ディスクイメージの作成


大文字/小文字を判別可能なファイルシステムである必要があるためディスクユーティリティを用いて


ディスクイメージを作成します。


※ディスクイメージサイズは8Gくらい~お好きなだけ設定してください。


f:id:bs-android:20090925161137p:image


repo init、sync



$ repo init -u git://android.git.kernel.org/platform/manifest.git -b donut
$ repo sync


buildspec.mkの作成


buildspec.mkをmydroidのルートディレクトリに作成し下記のように追記します。


追記箇所は任意の箇所で問題ないようです。


※buildspec.mkはmydroid/build/buildspecdefault.mkをコピーして作成



CC=gcc-4.0
CXX=g++-4.0





ビルド


「-j」オプションを付加すると何故かエラーになることがあるのでその際は「-j」を外してください。



$ make


もちろんSDKビルドも可能です。



$ make PRODUCT-sdk-sdk


実機バイナリ



Generated: (out/target/product/generic/android-info.txt)
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
Installed file list: out/target/product/generic/installed-files.txt


SDKビルド



out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.username_mac-x86.zip


のように出れば完了です。





2009年9月15日火曜日



f:id:bs-android:20090915103452p:image


ついに本日有料アプリが日本国内から登録できるようになったことがアナウンスされました!



Android有料アプリケーションサービス デベロッパー向けサイト開始のお知らせ


2009年9月15日 Posted by クリス プルエット / デベロッパーアドボケイト


日本のデベロッパーの皆さん、お待たせしました。日本でも Android マーケットを通じて有料アプリケーションを販売できるようになりました。






早速有料アカウントの登録をしてみました。


http://market.android.com/publish/ のサイトにいき、ログインします。



f:id:bs-android:20090915104724p:image






Transaction Historyをクリックすると銀行口座の登録を促されます。



f:id:bs-android:20090915104908p:image






「銀行口座を登録」を押すと口座の登録画面になります。翻訳が間に合わなかったのか「Futuu」「Touza」とかになっているのがいいですね。



f:id:bs-android:20090915105059p:image






銀行口座を登録すると、以下のようなnotifyがでます。



f:id:bs-android:20090915105412p:image






プロフィール情報も更新され、このようになります。



f:id:bs-android:20090915105541p:image






そして、すぐにメールが届きました。



f:id:bs-android:20090915105709p:image






まだデポジットの振込は行われていないので、振り込み待ちです。



f:id:bs-android:20090915110235p:image






振り込まれたらまた追記しようと思います!!


本日(09/09/16)11時頃デポジットが振り込まれました。


銀行口座の確認ボタンを押すと以下のような画面になります。


f:id:bs-android:20090916130733p:image





デポジットの金額を入力したところ。


f:id:bs-android:20090916130727p:image


これで有料アカウントの設定が完了しました!


※「次へ」のボタンを押すとプロフィール編集画面に移動するだけです。





Android Marketに日本から有料アプリが登録できるようになりました!



f:id:bs-android:20090915103452p:image


ついに本日有料アプリが日本国内から登録できるようになったことがアナウンスされました!



Android有料アプリケーションサービス デベロッパー向けサイト開始のお知らせ


2009年9月15日 Posted by クリス プルエット / デベロッパーアドボケイト


日本のデベロッパーの皆さん、お待たせしました。日本でも Android マーケットを通じて有料アプリケーションを販売できるようになりました。






早速有料アカウントの登録をしてみました。


http://market.android.com/publish/ のサイトにいき、ログインします。



f:id:bs-android:20090915104724p:image






Transaction Historyをクリックすると銀行口座の登録を促されます。



f:id:bs-android:20090915104908p:image






「銀行口座を登録」を押すと口座の登録画面になります。翻訳が間に合わなかったのか「Futuu」「Touza」とかになっているのがいいですね。



f:id:bs-android:20090915105059p:image






銀行口座を登録すると、以下のようなnotifyがでます。



f:id:bs-android:20090915105412p:image






プロフィール情報も更新され、このようになります。



f:id:bs-android:20090915105541p:image






そして、すぐにメールが届きました。



f:id:bs-android:20090915105709p:image






まだデポジットの振込は行われていないので、振り込み待ちです。



f:id:bs-android:20090915110235p:image






振り込まれたらまた追記しようと思います!!


本日(09/09/16)11時頃デポジットが振り込まれました。


銀行口座の確認ボタンを押すと以下のような画面になります。


f:id:bs-android:20090916130733p:image





デポジットの金額を入力したところ。


f:id:bs-android:20090916130727p:image


これで有料アカウントの設定が完了しました!


※「次へ」のボタンを押すとプロフィール編集画面に移動するだけです。





Related Posts Plugin for WordPress, Blogger...