無料アプリカタログ。。。
HT-03A付属の標準バッテリー1,340mAより、210mA多い、1,550mA。。。
たしかに便利そう。私は、2個目のバッテリーを未開封ですが。。。
コンセントありのマック/マクドでコーヒー飲みながら充電が至福の時。。。
私はADP1に貼られたものを無理やり剥がして使っています。。。
たしかに、真剣な顔でRobo Defenseしているのを見られたくないかも。。。
無料アプリカタログ。。。
HT-03A付属の標準バッテリー1,340mAより、210mA多い、1,550mA。。。
たしかに便利そう。私は、2個目のバッテリーを未開封ですが。。。
コンセントありのマック/マクドでコーヒー飲みながら充電が至福の時。。。
私はADP1に貼られたものを無理やり剥がして使っています。。。
たしかに、真剣な顔でRobo Defenseしているのを見られたくないかも。。。
Donut の手書きジェスチャーの話の続編。
前回、手書きジェスチャーを追加できることがわかったのですが、
削除方法がわからず困っておりました。
結局のところ、ソースコードから追って、解決しました。。。
手書きジェスチャーの一覧を表示するには
ホームスクリーンでメニューキーを押下後、Gestures(ジェスチャー)を選択すると、
登録済のジェスチャーを一覧表示することができます。

手書きジェスチャーの一覧をリネーム/削除するには
ジェスチャーの一覧表示後、リストの行(アイテム)を長押しすると、リネーム、または、削除を実行できます。
※リストの行(アイテム)をタップしても・・・、メニューを押しても・・・、何も起こりません。。。。

困ったら長押しが基本。。。
Donutでは、ホームスクリーンでホームキーを押すと、アプリ起動用?の手書きジェスチャーが起動するようです。
手書きジェスチャーを登録するには
手書きジェスチャーを起動後、画面を一筆書きした後、右下の+ボタンをクリックします。
※ここでは、数字の8を書きました
次に、ショートカット選択画面が表示されるので、関連づけさせたい任意のショートカットを選択します。
※ここでは、Settingsアプリケーションを選択しました
すると、次回以降、手書きジェスチャー画面で、8を手書きすると、Settingsアプリケーションが起動するようになります。
他にも、縦線、横線、円、四角、星(左から一筆書き)、星(右から一筆書き)を登録してみました。



ちなみに、Androidのソースコードでは、Launcherのコードは、
packages\apps\Launcher\src\com\android\launcher
下にあります。
また、android.gestureパッケージのソースコードは、
frameworks\base\core\java\android\gesture
下にあります。
最後になって申し訳ないのですが、
ADP1 に Donut をインストールする手順を書いてくださったブリリアントサービス先生、sola先生に感謝です!
Donutでは、標準の設定(Settings)アプリに、
トグル(toggle)系の電源管理ウィジェット(Power Control Widget)が含まれていました。
このウィジェットでは、以下のとおり、5種類の設定を簡単に変更することができます。
ごにょごにょっと入れてみると、以下のような感じでした。

simple - Project Hosting on Google Code
http://code.google.com/p/simple/
ネタ元は、こちら。
安生先生のブログを読むこと、5分後、BASICで書かれたテトリスが動作!
昨日も感じたのですが、Android ブロガーって素晴らしい。。。

※上記ブログでは、Mac 環境をベースに解説されていましたが、Win 環境でも適宜読み替えることで同じ手順でできます。
上手くいかなかった場合
最後に、落としてきたソースコードをみて気づいたのですが、simple の BASIC は、VB/VBA ライクですね。
simple のプロジェクトホームでも下記のように書かれていました。
In the 90s, a big company from up north was extremely successful with a dialect of the programming language BASIC (acronym for Beginner's All-purpose Symbolic Instruction Code).
・・・。
90年代ですか・・・。
てっきり、80年代の MSX の BASIC とか、PC98 の N88BASIC を期待したのですが。。。
行番号書いていた時代が懐かしい。
AppWidgets と省電力化について、下記リンク先に興味深いトライアル記事がありました。
「思ったより、省電力対応の作りにするのに時間かかっている件 - 闘争より逃走したい日記」
http://d.hatena.ne.jp/TAKAOMAYA/20090728/1248751971
※この記事は、複数のエントリに分割されているので、いったん RSS でフィードした方が読みやすいです
ブラウザから読むには、リンク先内の左方向へのリンクの順に読むのが正解
本題に戻ると、同関連エントリの最後で、onReceive() から AppWidgetManger の取得方法が・・・という書き込みで終了していました。。。
関係ないかもしれないですが、Context から AppWidgetManager のインスタンスを取得する方法を以下に書いておきます。。。
public void onReceive(Context context, Intent intent) {
・・・省略・・・
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
・・・省略・・・
}
ところで、その後のエントリで、Widget はリリースされていましたで、さっそくインストールしてみました。
Minutes Widget for Android (初音ミクVer) 、1.0.2 リリースしました。 - 闘争より逃走したい日記
http://d.hatena.ne.jp/TAKAOMAYA/20090728/1248785866
ダウンロードは、Android Market から、「Minutes」で検索して辿り着きました。

省電力化の際、「Spare Parts」や「Battery Graph」(どちらも Android Market からDL化)で得られる情報も役に立つので、
今後に期待したいですね。
省電力化については、いづれまとめる予定(のつもり)。
android.graphics パッケージ Bitmap クラスの static メソッドである createBitmap() を使用すると、動的に Bitmap を作成することができます。
Bitmap を編集する場合、getPixels() / setPixels() を呼び出すことで、ピクセル操作することができるのですが、この方法だと、直線や円など、複雑な描画をするのは、少々面倒です。
そういった場合、BItmap と Canvas クラスをあわせて使用すると、Canvas クラスの高度な描画メソッドが利用できるため、複雑な描画を簡単にすることができます。
具体的には、描画したい Bitmap を Canvas クラスのコンストラクタに渡し、Canvas クラスの描画メソッドを呼び出すだけです。
サンプルソースコードは、以下のとおりです。
サンプルソースコード
Bitmap bitmap = Bitmap.createBitmap(72, 72, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); // ここから、Canvas に対して、直線、円、矩形、塗りつぶし、回転・・・などの呼び出しをすると、 // 描画結果は、Bitmap に反映される // 以下は、パスを描画する例 Paint paint = new Paint(); paint.setAntiAlias(true); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.FILL); Path path = new Path(); path.moveTo(); path.lineTo(); // ... path.close(); canvas.drawPath(path, paint);
あわせて読みたい
ADP1 のイメージを、Android 1.5 SDK, Release 3 に対応するバージョンに更新してみました。
※ADP1(HTC Dream)の話であり、HT-03A(HTC Magic)の話ではないので、ご注意ください

今回の更新により、Kernel version が 2.6.27-00393、Build number が 1.5 CRC1 150275 へ更新されました。
※更新前(Android 1.5 SDK, Release 1)は、Kernel version が 2.6.27-00392、Build number が 1.5 CRB21 147201
以下、更新手順です。
前提条件として、既に Android 1.5 SDK, Release 1 当時のイメージに書き換えてある前提で書いておりますので、そうでない方は、まずは、「[Android] 続Android Dev Phone システムイメージ書き換え(Android1.5編) - adakoda」の前半(Update the Device Radio Firmware)の記事も参考にしてください。
前提条件を満たしている場合、Android 1.5 SDK, Release 1 から Release 3 への更新で、Radio Firmware に変更はありませんので、下記の Recovery Image の更新だけ実行していただければよいです。
また、手順については、これまでに紹介してきた手順と同じですので、以前の記事の signed-dream_devphone_userdebug-ota-xxxxxx.zip の xxxxxx を、最新のバージョンに読み換えてもらってもOKです。
Android1.5r1からr3への更新手順
事前準備
http://www.htc.com/www/support/android/adp.html
から、バージョン毎の Recovery Image をダウンロードする。
※ここでは、signed-dream_devphone_userdebug-ota-150275.zip のみ使用
Copy the Recovery Image Package to the Device
日本Androidの会の嶋先生が講演された「Androidの最新技術動向と可能性」の記事が、マイコミジャーナルさんに掲載されていました。
【レポート】WIRELESS JAPAN 2009 - 日本Androidの会幹事の嶋氏が語るAndroidの最新技術動向 | 携帯 | マイコミジャーナル
以前から注目していた講演ですが、参加できず悶々としていたのですが、マイコミジャーナルさんのスライド写真付きの丁寧な解説により、貴重な情報を得ることができました。ありがとうございます!
講演の内容についても、ここ数ヵ月の最新動向を上手くまとめておられて、あらためて上手いなーと思いました。お疲れ様でした。
個人的には、Android の動向は、「Android ニュースリンク集」に残しているのですが、このようにまとまった解説があると嬉しいですね。
特に、解説記事内の5番目のスライドキャプチャ-にある「Android 端末の登場 - CPU情報」みたいに横並びでまとめてある情報は、わかりやすいし、嬉しいです。
今後も、Android 端末のハードウェア最新情報一覧を、どなたかが まとめてくれたら嬉しいな~(祈)。
「android情報まとめ @ ウィキ」や「アンドロイド情報提供サイト Recently Android」などが有力かな?
「[Android] RemoteViews が倒せない App Widgets の限界に挑戦(前編) - adakoda」の続編。
App Widgets として動作するコンパスアプリの話の続き。
このコンパスアプリは、App Widgets として実装しているため、
アプリを明示的に起動しなくても、ホームスクリーン上で、リアルタイムにコンパスの針がグリグリ動きます。
※App Widgets の更新間隔は1 秒間に設定
では、どうやって、App Widgets でイメージを更新しているかというと、エントリタイトルのとおり、RemoteViews クラスを使用しています。
具体的なソースコードは、以下のとおり。
@Override
public void onUpdate(
Context context,
AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
... 省略 ...
RemoteViews remoteViews = new RemoteViews(
context.getPackageName(),
R.layout.appwidget);
remoteViews.setImageViewBitmap(id.compass, bitmap);
for (int i = 0; i < appWidgetIds.length; i++) {
appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);
}
... 省略 ...
}
簡単に解説しておくと、App Widgets のリソースにアクセスするには、RemoteViews インスタンスを作成する必要があります。
ここでは、App Widgets 内のリソースに、compass という名前の ImageView を配置しており、
同ビットマップを更新するために、setImageViewBitmap() を呼び出しています。
ポイントは、AppWidgetProvider.onUpdate() で渡された AppWidgetManager を使用し、updateAppWidget() 呼び出している箇所で、
これを実行しないと、いくら RemoteViews インスタンスを操作しても、更新されない点です。
また、ここで渡している Bitmap は、コンパスの針のイメージを 360枚用意しているかというと、そうではなくて、
実行時にソースコードベースで、動的に Bitmap を作成してしています。
※このあたりも長くなってしまうので、別のエントリで紹介する予定です
# 余談ですが、このコンパスアプリをホームスクリーンに16個登録して放置しておいたら、15時間ほどで電池が切れました
# HT-03Aの電池の充電は、PCからUSB経由で充電して、1時間に18%回復(約5時間ちょいで100%)という感じでした