5月 28

OpenGrok 知ってますか?

OpenGrok はブラウザから使用できる検索機能付きソースコードブラウザです。ブラウザでソースコードを見たりキーワードでソースコードを全文検索できたりします。同じ事を エディタと grep でやるよりも効率が大きく改善できます。Android のソースコードのような巨大なソースコードを探索する場合には特に重宝します。

これまで Cupcake, Donuts のソースコードは別の方が構築してくれた環境を利用しており、Eclair の環境も欲しいし、Froyo ももうそろそろだななんて考えていたのですが、今日ちょうど会社をお休みして時間が確保できたのでこれまで何度かトライして上手く行かなかった OpenGrok の環境構築に再トライすることにしました。

OpenGrok

画面はこんな感じです。

OpenGrok は Open Solaris のプロジェクトの成果物です。このため Open Solaris 用パッケージはあるようなのですが他の環境で使用するためにはソースコードを入手し自分の環境用に作るしかありません。できれば Snow Leopard で作りたかったのですが、少し手を加える必要が出てきそうだったので、ここは無難に VM上の ubuntu 9.04 で作成することにしました。

ソースのビルド

OpenGrok を作るには Java6 と Ant が必要です。これらは apt-get で入手できます。あと Exuberant ctagsJFlex というライブラリィが必要です。これらは別途入手する必要があります。Exuberant ctags は自前でコンパイルしなければなりません。JFlex は解凍後、中にある JFlex.jar を opengrok の libs 配下にコピーすれば OK です。準備を整えたのち ant コマンドでビルドします。

環境の構築

OpenGrok でやるべきことは 「インデックスの作成」と「デプロイ」の2つです。このためのスクリプトが用意されていますので簡単に実施できます。実際に動作させるためにはそれなりの準備が必要になりますが、そのうちのひとつが Tomcat6 です。スクリプトを実行する際に Tomcat6 が動作している必要がありますので Tomcat6 は事前に入手しておきます。Tomcat6 は apt-get でも入手できますが、私が試したところ上手く動作しなかったので独自に入手したものを使いました。ひとつ注意が必要なのは OpenGrok がアクセスするポート番号がデフォルトで 2424 だということです。こちらを変更する方法もあるでしょうけれど、私の場合は tomcat6 の server.xml でリスンポートを 8080 から 2424 で変更することで対応しました。次にターゲットするソースコードの指定です。環境変数を使っていろいろできるようですが、私は標準に合わせて配置しました。標準のフォルダは /var/opengrok/src。この下に実際に対象のコードもおいてもいいですし、ターゲットのフォルダをシンボリックリンクで指定しても良しです。私はシンボリックリンクでやりました。最後に環境変数 JAVA_HOME の指定を行います。この場合、/usr/lib/jvm/java-6-sun になるはずです。

$ export JAVA_HOME=/usr/lib/jvm/java-6-sun
$ ./OpenGrok index(インデックスの作成) — (1)
$ ./OpenGrok deploy(デプロイ)— (2)

(1) のコマンド実行後、dist の下に source.war ができます。これを (2) のコマンドで tomcat6 の webapps 配下にコピーします。私の場合は/var/tomcat/webapps です。このまま、source.war で運用しても良いですが、変更してもOKです。私の場合は複数の Android のバージョンのコードを同時に扱いたいので eclair.war にリネームしました。

実行

さあ、あとは実行です。リスンポートを 2424 に変更したのを忘れずに、以下のURLを指定してブラウザを起動します。

http://127.0.0.1:2424/eclair

できました。

これでソースコードを自由に参照したり検索できる、、、、、、はずなのですが、検索が上手く動きませんでした。現状、取りあえず参照だけはできるようになったので今日のところはこれで良しとすることにしましょう。


(追記)
検索できない謎が解けました。/var/opengrok/src はシンボリックリンク OK と書きましたがそれだと検索のためのデータを作成してくれないようです。シンボリックリンクを止めたら検索ができるようになりました。


Posted by sak

Tagged with:
5月 22

今週は Google I/O が開催されました。日本でもユーチューブのリアルタイム配信が行われていたので見た人も多かったのではないでしょうか?私も結局全部見てしまいました。寝不足でつらいです。この記事も本当は昨日書こうと思ったのですが、眠くて、、、

このイベントでは Android に関する発表も行われましたね。何と行っても一番の注目は Android 2.2 “Froyo” の発表です。Flash 正式対応、テザリング (USBモデム化 & WiFiホットスポット化)、新API対応などなど。直ぐにSDKも公開されているようですのでぼちぼち調べることにします。

そんな中、Froyo を待たずしても直ぐに反映されている機能がありました。そうバグレポート機能です。私はいくつか Android アプリを公開しているので自分の開発者用ページを毎日チェックしているのですが、昨日いつものようにページをチェックしていると画面の様子がいつもと違うのに気付きました。

右から2番目のフィールドに Bugs または Bugs(1) と記載された項目がありますね。実はこのフィールドは先週までなかったフィールドです。リンクが張っているので開いてみましょう。

あれれ、Crashes の項目に数字が書いています。1 new, 8 report, 4 reports/week.
1 new の部分もリンクが張っているので押してみましょう。

CursorIndexOutOfBoundsException ? おかしいな。こんな不具合ありえない。こないだ修正したはずだし、、、さらに先へ

スタックトレースが途中で切れてしまっていますが確かに私のコードも混じっています。ここまで証拠を突きつけられると、認めざるおえません。観念して調査することにします。

このように、フリーズやクラッシュした時のレポートを自動的に送付する仕組みがシステムの中に予め組み込んであり、これを今回このタイミングで公開したのでしょう。便利な反面、知りたくない事実でもあります。バグレポートが4つのアプリに合計4つもあってショックです。他の開発者さんはどうだったのでしょうか?タオソフトウェアさんのブログを見るとあれだけのソフトがあって1つだけのようですし、、、

何にせよ便利な仕組みをありがとう Google !


Posted by sak

5月 19

今日(昨日になっちゃいましたけど)は午前中にソフトバンク、午後からはドコモの夏モデルの新製品発表会が行われていたので注目して見ていました。ソフトバンクはUSTを使用して動画を配信、ドコモはツイッターを使用したスペシャルサイトを用意した気合いの入った発表会でしたね。私の狙いはもちろんアンドロイドの新機種発表です。結論として今回は期待したような機種の発表はありませんでしたが私の中で注目に値するニュースが3つありました。

全部ドコモの話題でしたねw

サムスン電子製Androidスマートフォン「Samsung Galaxy S」

私は現在、発売当日に入手した HT-03A(白)を使っています。Xperia も検討してみたのですが、デザインと大きさがしっくりこなかったため購入を見送っていました。ソフトバンクの Desire も気にはなりましたが、会社で Nexsus One も入手して自由に触れているため購入には踏み切れていません。次どうしようかなー。次期 iPhone も気になるなーなんてところに Galaxy 出ますよという発表です。今現在の私の購入リストの一番手に躍り出ました。もう少し HT-03A でがんばろうっと。

バッファロー製モバイルWiFiルーターと「パケ・ホーダイ ダブル」の上限額を値下げ

この2つのニュースは合わせ技で注目です。今ちょうどモバイル環境が欲しくてイーモバイルの Pocket WiFI や数日前に発表された日本通信のモバイルWi-Fiルーターを検討していたところでした。これで新たに1つ選択肢が増えたことになります。

でも本当に待ち望んでいるのはスマートフォンでデザリング対応してくれることです。アンドロイド携帯を使用して今回の上限価格でデザリングができるようになるとその端末を即買いなんですけれどね。Android 2.2 “Froyo” になればUSBテザリング・WiFiホットスポット化をサポートしていると聞いているのでドコモのアンドロイド携帯で使用できるようになれば、上限 ¥10,395 にも納得です。


Posted by sak

5月 16

コールW Quad と メールW Quad を公開しました。ウィジェットアプリケーションです。ホーム画面に配置したイメージは以下のようになります。

コールW/メールWといえばこれまでに Free版(無料)、Pro版(¥100)とリリースして来ましたのでこれが第3弾となります。価格は¥250程度を考えていますが最初の100ダウンロードまでは特別価格¥100にします。是非、早めに入手してください。

機能はこれまでのコールW/メールWシリーズと同様でこれを使用することでそれぞれ予め登録した相手に簡単に電話やメールをすることができるようになります。今回の Quad では要望の強い省スペースを実現しました。1×1のウィジェットの中に4人までの連絡先が登録できます。

これまでリリースしたコールW/メールWシリーズのウィジェットを全てホーム画面に並べるとこうなります。

ちなみに コールW Quad は A3 への応募作品です。

実はゴールデンウィーク期間中、A3(Android Application Award 2010 Spring)にアプリを応募しようとずっとネタを考えていたのですが、なかなか思いつかずアプリの応募は既存の作品(コールW Pro)で行おうと思っていた矢先でした。ふと pcm2a さん作の More Icons Widget を使ってみて。急にひらめきました。素敵なアプリを開発した pcm2a さんに感謝します。

賞を取れるとは思っていませんが、これまで Android Developer Challenge などこの手の祭りには参加できていませんでしたので、今回は結果がでるまでは楽しみたいと思っています。


Posted by sak

Tagged with:
5月 13

Archos 5 Internet Tablet

Archos ってメーカーをご存知ですか?日本で入手が難しいのであまり話題にあがってきませんがアンドロイドベースの5インチモニターのタブレット(MID)を販売するフランスのメーカーです。既に Archos 5 Internet Tablet って製品を販売しています。

Archos 7 Home Tablet

5/10付けのIT Media の記事によると、このメーカーから今度7インチモニターを持つ Archos 7 Home Tablet ってタブレット(MID)を販売するそうです。

実は

昨日、この archos の中の人から英語のメールを受け取りました。要約すると「 Archos 5 Internet Tablet では動いていたアプリなんだけど Archos 7 Home Tablet でテストしたら問題があったよ。画像を送るから確認してみてね。」という内容でした。送ってもらった画像がこれです。左が Archos 5 Internet Tablet で動作させた画像、右が Archos 7 Home Tablet で動作させた画像だそうです。

文字ちっちぇー

そうです。文字が小さくて使い物にならないのです。っていうか Archos 5 Internet Tablet で動作させたときも充分ちっちぇーw。(早く教えてくれよ!)

AppsLib

Archos のタブレットには Google Market が同梱されていません。その代わり AppsLib と呼ぶ Archos の独自マーケットが存在しており、それにアクセスするためのアプリケーションが自由にダウンロードできるようになっています。私はこのマーケットに去年の9月ころ taosoftware さんのこの記事を見て、アプリをいくつか公開していたのでした。ただ、日本でこの機種が発売されなかったこともあり、すっかり忘れていました。

このメールを見てすぐピンときました。異なる解像度への対応がされていないだけだなと。実はこの問題は日本で Xperia が発売された時点で気づいており Google の Market に公開されているものは既に対応が済んでいる内容でした。異なる解像度への対応で行った内容はちょうど今日の Think IT の記事でシーリスの有山さんが取り上げている内容そのものでした。

この場合、単位を[px]ではなく、[sp]で指定することで改善できます。

Archos の中の人には「既に修正が終わっているので直ぐに公開し直します。」ってメールを返しました。あとは実際に公開し直すだけです。

感想

日本で直接入手できるのなら買ってあげてもいいんだけどね。(Android OS のバージョンが 1.5 ってところが残念なんだよなー。)


Posted by sak

Tagged with:
5月 09

今年のGWも今日でおしまいですね。私の場合は11連休もとっていたのでとても長かったのはずなのですがやっぱりあっという間に終わってしまった気がします。それでも今年のGWはそれなりに有意義に時間を過ごせました。ここで今年のGWにやったことを振り返ってみます。

A3用のアプリの作成と応募

これがGWの第一目標でした。良いアイデアが浮かばず前半でそうそうにあきらめ既存のアプリで応募しようと方向転換を考えていたおとといの夜、急にアイデアが浮かび、今日までの3日でなんとか完成させることができました。まー、その程度の工数で作ったアプリなのでとても入賞なんて狙えるものではありません。(参加することに意義がある。)ですが、それなりに需要がありそうなアプリなので近日中にマーケットに公開したいなと思っています。このアプリは有料にしたいなと思っており、今、その価格を思案中です。

あ、そういえばこのアプリ HT-03A と Nexus One で動作チェックはしたけど肝心の Xperia ではチェックしてないんだっけ。ま、大丈夫でしょ。

blog の開始

これはGWに入る前からサービスを契約しドメインも取得して準備を進めていました。GW期間中、ぼちぼち更新しようと思っていましたが、思いのほか毎日更新できましたのでこれは合格点をあげてもいいでしょう。あまりハイペースでがんばると燃え尽きるのも早くなりそうなので、GW が終わるのを機に少しペースダウンしようと思います。

家族サービス

第1目標にA3への応募という目標を掲げていましたのでGW中は基本的に家にこもろうと思っていました。ですがまったく家族サービスをしないわけにもいかず1泊でニセコへ旅行へ行ってきました。これがGW中唯一の家族サービスでした。内容は 5/4 のブログで記載した通りです。家族も満足し私自身も心身をリフレッシュさせることができました。

ワンピース全57巻の通読

GWに入る前の週末に嫁さんのアネキからワンピース全57巻を借用しました。GWに入るとこれを家族みんな(自分、嫁さん、長男(12歳),、次男(9歳))で通読しました。これまで気がつかなかった様々な伏線などを見つけ改めてワンピースのおもしろさに感激しました。今でも子供たちと一緒にお風呂にはいっているのですが、お風呂の中では悪魔の実のシリーズの実の名称当てクイズなんてことをやったり、、、いやー、子供たちと一緒に過ごす時間がやはり一番癒されます。

こんな感じで終わったGWです。来年もこのくらい連続で休暇が取れればいいんですけどね。


Posted by sak

Tagged with:
5月 08

5/6(木)の23:30から、NHKのITホワイトボックスという番組が放送されました。ご覧になったでしょうか。私の所属している団体(OESF)も取材を受けており、この日に放送されるということを事前に知っていましたので予め番組の録画し昨日の夜ゆっくり見ました。内容はスマートフォンと普通の携帯(いわゆるガラケー)の生い立ちの違いやスマートフォン(といっても iPhone)のアプリケーションマーケットの解説などを行い、その中の一つのコーナーで『汎用OS』という切り口でアンドロイドが取り上げられていました。このコーナーの中ではOESF総会後の懇親会の風景とその中で展示していたデモ機器、代表のインタビューなどが放送されていました。NHKではアンドロイドという用語の使用はNGだそうですね。アンドロイドという用語の代わりにこの『汎用OS』という言葉を使わなければならないということです。インタビューを受けた代表は「アンドロイドという言葉が使えないので非常に話しずらかった。」と語っていました。なおこのインタビュー中に後ろを横切る人物がいるのですが、それは私です。(ほんの1、2秒ですが)

この記事をブログに書く際にこの番組のことを調べてみたのですがネットでの配信もしてるんですね。(URL)ただし、有料で。。。この価格では購入するひとがいるかどうかは微妙ですね。

あと、以下の日程で再放送も有るみたいですので見逃した方はどうぞ。

再放送:5月9日(日)午後 2:00〜 2:24 NHK教育


Posted by sak

5月 07
アンドロイド開発者のみなさん。みなさんはアンドロイドでサンプルプログラムを書く時どうしてますか?毎回小さなプログラムを書くのもいいですが、そうするとラウンチャーがひどい状況になりますよね。書いた小さなサンプルプログラムをひとまとめで扱えないかな?そんなときはSDKに含まれるサンプルアプリ API Demos を利用すると便利です。

API Demos

API Demos はアンドロイド開発のノウハウが詰まったちいさなサンプルコードがたくさん入ったアプリです。実はこのアプリは提供されたサンプルアプリだけではなく、みなさんが作ったサンプルアプリを格納するコンテナとしての機能を持たせることもできるのです。

API Demos の AndroidManifest.xml の中をみると Activity の定義の中に以下のように “android.intent.category.SAMPLE_CODE”(以降、SAMPLE_CODE に省略) をカテゴリに持つインテントフィルターがそれぞれ定義されています。

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.SAMPLE_CODE" />
    </intent-filter>

API Demos はアプリ内の Activity を明示的に定義してコールしているのではなくカテゴリが SAMPLE_CODE を有する Activity を検索しその一覧をリストとして表示させているのです。で、この検索の範囲は同じアプリケーションの内部に留まらないところがミソです。その検索範囲は端末の全ての SAMPLE_CODE をカテゴリに持つアプリケーションに及びます。

さらに API Demos では Activity をメニューに追加する際に android:label で定義されている文字列を解析してメニューの階層構造を生成しています。すなわち、みなさんの作ったサンプルアプリをメニューに追加できるだけではなくそのメニューの階層構造も完全に制御できるのです。階層構造を作るのは簡単。android:label で指定する文字に “/” を含めるだけです。API Demos では “/” を区切りとした文字列で自動的に階層構造のメニューを生成します。

この仕組みを使えば以下のように標準のメニューに自分の好きなメニューを追加することができます。メニューに日本語を使用することも可能です。

  App
  Content
  Graphics
  Media
  OS
  Text
  Views
  マイサンプル ← ここに追加
   マイカテゴリA
    マイサンプル A-1
    マイサンプル A-2
    マイサンプル A-3
   マイカテゴリB
    マイサンプル B-1
    マイサンプル B-2
    マイサンプル B-3
   マイカテゴリC
    マイサンプル C-1
    マイサンプル C-2
    マイサンプル C-3

AndroidManifest.xml ファイルに記載する Activity の定義の一例を以下に示します。

    <activity android:name=".my_sample_a1"
           android:label="マイサンプル/マイカテゴリA/マイサンプル A-1">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.SAMPLE_CODE" />
        </intent-filter>
    </activity>

最後に

今回は API Demos をそのまま使用しましたが、実はこの仕組みを使って自分専用のサンプルアプリコンテナを簡単につくることができるのです。えっ、どうやって作るかって?続きはまた今度。それでは。


Posted by sak

5月 06

GW明けで今日から出社している方も多いと思いますが、私は連休まっただ中、今日もお休みです。しかも子供たちが学校へ行っていないので日中からのんびりとPCと向き合うことができます。こんな中他のAndroid開発者の方のブログでAndroid Market のダウンロード数を公開しているサイトを見つけました。私も真似して公開しちゃいます。

ダウンロード数の順位は以下の通りでした。(2010年5月5日 AM 時点)

  • 1位 コールW Free ( 17857 DL )
  • 2位 メールW Free ( 16063 DL )
  • 3位 スラドR ( 9924 DL )

実は3月末時点では3つのアプリは順位はこれとは逆でした。(1位 スラドR、2位 メールW Free、3位 コールW Free)ちなみにこの時のDL数は9000程度でほぼ同数です。それがこの1ヶ月の間でほぼ同数だった3つのアプリの順位が入れ替わり、コールW Free とメールW Free のダウンロード数が大きく伸びているのです。ここ1ヶ月で起こった出来事といえば、、、そう Xperia の発売。それ以外に考えられません。コールW Free とメールW Free はこの Xperia の Application Collection に選出していただきました。このダウンロード数の増加はそのおかげでしょうか?

有料版の売上

無料版のコールWとメールWのダウンロード数増加に引っ張られるように有料版もそこそこ売れるようになってきました。有料版の価格は1本100円に設定していますので、その70%の70円が1本あたりの開発者の取り分です。4月は コールW Pro と メールW Pro の2作品をあわせて 2万円弱という結果に終わりました。きちんと計算していませんが合わせて250本程度購入していただけたことになりますね。購入者はほとんど日本の方でコールWとメールWの両方を一緒に買っていただいている場合が多いのが特徴的です。

ちなみにコールWとメールWの Free(無料版)と Pro(有料版)のもっとも大きな違いは作成できるウェジェットのサイズです。無料版は2×1, 3×1 の 2種類、有料版は 1×1 の1種類です。また有料版にはウェジェット毎に設定が行える点やウェジェットの出来具合を見ながら操作できる点、 simeji のマッシュルームアプリとして機能する等のアドバンテージがあります。ホームのスペースを有効に使いたいというユーザは1×1サイズのウェジェットを好むようで、最初から狙っていた訳ではありませんが、これが最も有効な有料版のアドバンテージになっているようです。

現在、無料版のアクティブユーザ数と有料版のアクティブユーザ数の比は無料版100に対し有料版はせいぜい5程度です。有料版をもっと魅力的なものにし無料版のユーザの何割かを有料版に取り込めればいいのですが、何か良いアイデアはないでしょうか?今回、有料版を出した目的は売上げ金額そのものというよりもアンドロイドマーケットの仕組みや空気を知りたいという目的が一番でした。そういう意味では目的は果たせたように思います。次に有料アプリを公開する際には、無料版と有料版の差別化をもう少し工夫しながら上手くやりたいものです。

アンドロイド携帯がもっと普及し現在の携帯市場やiPhoneの状況のようにアプリを購入する文化が根付きもっとアプリが売れる状況がくる日が近いと感じています。今後が楽しみです。

統計情報

現時点での自作のアプリの情報を今後の参考にまとめておきます。

名称 リリース日 総DL数 経過日数 1日平均DL数
スラドR 2009/01/21 9924 470 21.1
digg Reader 2009/02/04 4117 457 9.0
はてなB Lite 2009/06/08 3414 332 10.3
コールW Free 2009/09/30 17857 218 81.9
メールW Free 2009/10/05 16063 213 75.4
コールW Pro 2009/11/30 416 157 2.6
メールW Pro 2009/12/05 222 152 1.5


Posted by sak

5月 05

アンドロイダー月間アクセスランキングTOP50(2010年4月)が発表になっています。この中で コールW Free がなんと 41位 にランクイン。微妙な順位なのですが数多いアプリの中のTOP50にランクインしたことを素直に喜んでおきたいところです。ちなみに過去のランキングを調べてみたところ 2月はTOP20まで 3月はTOP30 までだったんですね。今回は50位までアプリの数を増やしているのでようやく顔を出してきたというところでしょうか? 日本でのアンドロイド端末ユーザの増加に伴い今後の日本のライバルアプリケーションが続々と登場すると思いますが、なんとかこの位置をキープしたいところです。


Posted by sak

preload preload preload