2009年4月29日水曜日

Andriod SDK 1.5 r1

そして、SDKも1.5のRelease版がやってまいりました。

http://developer.android.com/sdk/1.5_r1/index.html

から、本体を…

http://developer.android.com/sdk/adt_download.html

から、ADTのプラグインをダウンロード。
インストール自体は、1.5preの時と変わらないので同じ手順を踏んで入れ替え。


ADP1の方に、1.5のイメージを入れて、一日使って、みていたけど。
やっぱり、1.5では動かないアプリもちらほら見受けられましたね…
特に、Toggle Settingsが上手く動いてくれなかったのはちょっとガッカリだった。
意外とこいつ便利アプリだっただけに、バージョンアップを待ちますよ…

あと、早速、throwLifeさんが「simeji」を1.5に対応されていて、当然導入ですよ。

2009年4月28日火曜日

ADP1 の System1.5 が来た




ついに、ADP1用のオフィシャルの System1.5 のイメージがHTCのサイトで配布が始まりましたね…
早速、インストールしてみました。


Openソース版のイメージを実験でインストールしてしまったことがあったため少々イレギュラーなインストール
方法をとってしまったけど今のところは動いているのでいいか(;´Д`)

あー、でもLocaleに日本語の項目がこのバージョンでは無いのでメニュー関連が今のところ切り替えできないや。

これで、本格的にSystem1.5向けの実験が実機でやれるようになる。

2009年4月27日月曜日

"widgets" アプリ


ここのところ、Developers Blogの方はSDK1.5に関する話題が続いて更新されていて…
で、ひとまず"widgets"の機能へのアクセス方法が公開されていたので、ソースコードをsvnから持ってきつつ
SAMPLEをまずは試してみました。

ソースの方は
「SimpleWiktionary」と「Wiktionary」の2つが用意されています。
基本を見たかったので、まずは「SimpleWiktionary」の方を試してみました。

基本はこのソースを見れば大体のところは把握できますね。

AndroidManifest.xml、でまずは、widgetsアプリの宣言を…

<!-- Broadcast Receiver that will process AppWidget updates -->
<receiver android:name=".WordWidget" android:label="@string/widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_word" />

</receiver>

<!-- Service to perform web API queries -->
<service android:name=".WordWidget$UpdateService" />

といった具合にやっておき。
表示する、セルの大きさは

<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dip"
android:minHeight="72dip"
android:initialLayout="@layout/widget_message"
android:updatePeriodMillis="86400000"
/>
といった具合の宣言用のXMLで指定しておけばいい感じ…
サンプルでは、「/SimpleWiktionary/res/xml/widget_word.xml」でされてました。
この場合のセルの大きさの算出方法は


Minimum size in dip = (Number of cells * 74dip) - 2dip


で求めることが出きるよう…

あとは、基本となるソースは部分は
/SimpleWiktionary/src/com/example/android/simplewiktionary/WordWidget.java
をみれば大体の基本構造はわかった…

あとは、この部分をどんな風にいじるかってところか…
当然、更新時間を短く設定してやればそれなりにアニメーションなんかも可能なんだろうとは思うけど…
バッテリーの消費もそれなりに消費されるんだろうし、この辺は色々検討してみないといけない部分だな。

2009年4月25日土曜日

Android 1.5 Early Look SDK

ひとまず、SDK1.5の環境の準備。
基本的には ここ「Android developers blog」にある物を取得しておく。
各プラットフォームに合わせたSDK一式。と、Eclipse上で開発する場合はSDKプラグイン、となる。
私の場合は、Linux上で作業を行うので

android-sdk-linux_x86-1.5_pre.zip
ADT-0.9_pre.zip

Eclipseのバージョンなのだが、3.3と3.4がサポート対象になってはいるが、3.4を使っていいくほうが安全に進められるような感じがした。
この場合、直接3.4のパッケージを持ってきてインストールしておく方が簡単かもしれない、各デストリにあるバージョンでは古い(3.2や3.3)可能性が高いから。この辺は、個人の趣味の範囲だな…

環境の構築も基本は「Developer Blog」の指示に従って進めていけば良い。

ひとまず、SDKを適当な場所へ解凍してPATHを通しておく。
私の場合はUbuntu上に作ったので「.profile」に
if [ -d "$HOME/android-sdk" ] ; then
  PATH="$HOME/android-sdk/tools:$PATH"
fi
を追加しておいた。

次に、Eclipse側のプラグインの設定をすませておく。
もし、以前の1.0や1.1のSDKの環境で作業していた場合はひとまず、その時に使っていたADTは一旦アンインストールしておく。
その上で、さっきダウンロードしておいたADT-0.9をインストールすることになる。

Eclipseのメニューから Help > Software Updates. を選んでその中の Available SoftwareAdd Site. を選び
Archive でファイルを選択してプラグインをインストール。
で、メニューから Window > Preferences を選び、「Android」項目の設定を行っておく。

ここからがSDK1.5になったからこその作業。エミュレータの設定を行う必要がある。
このバージョンから、コマンドラインツールに「Android」と言うのが追加されている。
このコマンドで、エミュレータ環境などの設定をおこなうことができるよう。
$ android list targets
このコマンドで、作成できるターゲットの一覧が見れます。
Available Android targets:
[1] Android 1.1
API level: 2
Skins: QVGA-P, QVGA-L, HVGA-L, HVGA (default), HVGA-P
[2] Android 1.5
API level: 3
Skins: QVGA-P, QVGA-L, HVGA-L, HVGA (default), HVGA-P
[3] Add-on: Google APIs
Vendor: Google Inc.
Description: Android + Google APIs
Based on Android 1.5 (API level 3)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: QVGA-P, HVGA (default), HVGA-L, QVGA-L, HVGA-P
こんな感じで出てくると思う。

で、このリスとの中から作成したいターゲットを選び
$ android create avd --name my_avd_name --target 2
my_avd_nameは、この設定を呼ぶ場合の名前を決めておくので、適時自分で分かるな前を設定しておく。
で、--targetのところの番号は、リストで出てきた環境の番号を指定している。
この設定の場合だと、「my_avd_nameと言う名前で、バージョン1.5の設定」と言うことになる。
$ emulator @my_avd_name
で、コマンドラインから呼び出せば、目的のバージョンのエミュレータの状態で立ち上がる。
また、このクリエイトの段階でエミュレータの各種オプションも一緒に設定して作成しておける。

これで、ひとまずは作業ができる状態にはなったと思われる。

さいしょに

AndroidのSDKが1.5へと新しくなったのを機会に、こちらに新たに色々試したことのメモを残していこうと思います。