2010-01-01から1ヶ月間の記事一覧

思わぬ所でバグ発覚

Java 6 Update 18(jump先がSunではなくOracleのロゴになっているのが....)早速アップデートしてみたが、いきなりアプリケーションが例外を吐くようになってしまった。箇所は今回のアップデートで変更の対象になっているStAX。 XMLStreamReader reader = fact…

Java 6 Update 18

infoq Sun Releases Java 6 Update 18 With Significant Performance Improvements and Windows 7 Support久々に気合いが入っているアップデートだな。 特に目を見張るのがNUMA(Non Uniform Memory Access)アーキテクチャ上での最適化だろう。あと、 More ga…

バッティ or レイチェル

docomoからキャリアを換えるのが面倒な私はXperiaでほぼ決まりかと思ったのだが、なんとトラックボールが実装されていない。あんまりだ。報道発表資料 ドコモ スマートフォン Xperia(TM)を開発 お知らせ NTTドコモ同じくdocomoのHTC製HT-03Aを一度触ったこ…

ActivityThread

アプリケーションの起動シーケンスを調べていて、表題のクラスがあれば現在のスレッドからコンテキストが作れるぞと思ったのだが、android.jarに肝心のクラスが含まれていない(SDK1.6, 2.1いずれも)ので、コンパイルできない。gitにあるソースには含まれてい…

TextViewにエラーアイコンを描画する

それはいいんだが、問題はこのポップアップ表示だ。どうしてこんなことになってしまうのだろう。〜 ErrorPopupクラスのインスタンス自体か、せめて描画を制御するメソッドが公開されていればいけそうなんだが、このままじゃ使えないよな。 TextView#setError…

Rhomobile

Rhomobile - the open mobile framework - RhomobileHTMLとRubyで書いたアプリケーションを内部Webサーバを動かすことで、 iPhone BlackBerry Windows Mobile Symbian Android これらのモバイルプラットホーム上で動作するアプリケーションを一つのコードベ…

ViewからFieldへの代入をアノテーションで自動化する

AndroidのGUIはXMLを使用した宣言的な構成を可能としており、そのためのコードが不要なのは素晴らしいが、それでもアプリケーション内でGUIを参照しようとすると、以下のようなコードを書く必要がある。 public class FooActivity extends Activity { protec…

TextView#setError

AndroidのTextViewクラスは最初からエラー処理のための機能を持っており、簡単に使用できる。 TextView ageText = (TextView)this.findViewById(R.id.TextView02); ageText.requestFocus(); ageText.setError("桁数を制限したら こんなことになってしまった…

Windows Mobile 7

Windows Mobile 7は2つのエディションで登場 - 2月のMWCで正式発表か 携帯 マイコミジャーナルというか、Window Phone 7になるんだっけ。 ハードのスペックもQualcomm Snapdragon 1Ghzを搭載とAndroidと同等らしい。(当然か) Silverlight Mediaroom XBox Liv…

Traceview

Android SDKには最初から使えるプロファイリング用のツールが添付されている。 Traceview: A Graphical Log Viewerドキュメントを読めば解るが、取りあえずの計測の仕方は簡単。 // start tracing Debug.startMethodTracing(); 〜 計測したいロジック 〜 // …

XmlResourceParser#isEmptyElementTag(2.1, R1)

Androidリソースとしてバイナリに変換されたXMLを読む場合、内部ではXmlBlock$Parserクラスが使用されているが、表題のメソッドをどんな状態で呼んでもfalseしか帰ってこないので調べてみた。 public boolean isEmptyElementTag() throws XmlPullParserExcep…

本命登場?

報道発表資料 ドコモ スマートフォン Xperia(TM)を開発 お知らせ NTTドコモドコモ、4型タッチ液晶Andoroid端末「Xperia」を4月発売 -AV Watch 写真で見る“エンタメAndroid端末”「Xperia」 (1-2) - ITmedia NewsO/SはAndroid 1.6ということで、Nexsus oneに…

Toastの文字色を変える

AndroidのToast(トースト)は、応答操作の必要が無い通知に最適な機能であり、とても重宝するのだが、例えば文字色を変えたいなどのちょっとした変更にも対応できないので、以下のようなコードが必要になる。 Bad Knowhow? //Toastの文字色を変える public st…

DTD ←→ XMLschema 相互変換サービス

本音で言えばスキーマよりDTD(もっといえば何も無し)が良いんだが、ここにきてDTDをサポートしているツールがさすがに少なくってきたので、長年使い込んできたDTD※をスキーマにコンバートしてみることにした。こんな時は自分でスキーマを起こしても良いのだ…

プロキシ設定が反映されない(Android 2.x)

以前に書いたが、Androidでアクセスポイントのネットワーク-プロキシ設定を行うと そのアクセスポイント-プロキシの設定を使ってネットワーク通信が行われるはずであり、それはAndroidの全てのネットワークコンポーネントに反映されるはずなのだが、Webブラ…

View#focusSearch

第一引数にディレクション、つまり探す方向を設定するのだが一方向しか探さないので、順方向にフォーカス対象を探す場合、以下のように書く必要がある。 View next = this.view.focusSearch(View.FOCUS_RIGHT); //右方向になければnull if ( next == null ) …

他パッケージ(他のapk)のリソースを読む part2

ならば読み出すことは不可能なのだろうか? 否。 答えはAndroidのマニフェストにある。Androidにアプリケーションをインストールするには、インストールするアプリケーションを説明する、AndroidManifest.xmlという名前のマニフェスト(嫌な名前だ)ファイルを…

他パッケージ(他のapk)のリソースを読む

Androidアプリケーションは拡張子".apk"というパッケージにアーカイブされた後、機器のdata/appディレクトリにインストールされるが(Eclipse+ADTの場合、.apkアーカイブまではADTがビルド時、機器(エミュレータ)へのインストールは実行時に自動的に実行され…

対応早いな

アノテーションにint[]の属性を持つだけで、それを取得するDalvikランタイムは落ちてしまう。 再現性もあるし、この件に関してはやはりバグだろう。 レビューによると、int[]だけではなくプリミティブ配列全般が駄目だったようだ。 次リリース以降、修正を確…

Android 2.1 r1 System Properties

Android 2.1 r1が出たので、Dalvikのシステムプロパティをダンプしてみた。 スニペット Properties pt = System.getProperties(); Log.d(SysUtilTest.class.getName(), "System Properties ["); for ( Object key : pt.keySet() ) { Log.d(SysUtilTest.class…

Android 2.1 Release 1

Nexus oneの中身キターAndroid 2.1 Release 1

may be bug

アノテーション内部に int[] 型の属性を持つ場合。 @Documented @Inherited @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface AbortAnotation { int[] Ids() default {}; } アノテーションにint[]の属性を持つだけで、…

Waterlogged Annotation

Activityクラスにおいて、フィールドに対してどんな種類の(といってもサポートされていることが前提だが)でも良いから、アノテーションを宣言して、それをランタイム中で取得しようとするとキャッチできない例外でランタイムが落ちる。 現状のSDKで上記の問…

フィールドに複数宣言されたアノテーションを処理するとランタイムごと落ちる

Activityクラスにおいて、フィールドに対してどんな種類の(といってもサポートされていることが前提だが)でも良いから、複数のアノテーションを宣言して、それをランタイム中で取得しようとすると何も例外をキャッチできずにランタイムが落ちる。(Nativeメソ…

XmlResourceParserにおける属性値の読み込み

Android SDKでXMLリソースを読み込むために使用しているプル・パーサ(XmlResourceParser)だが、XML属性の読み込み結果が予想と違い困惑している。 <constraint value="[\u0000-\u001F\u007F]"/>このように記述されているXML要素を読込む際、属性valueの値をダンプした結果だが XMLStreamReader(Java6 StA</constraint>…

シングルキャスト

AndroidのViewを外部から拡張しようとする時に、一番の障壁となるのはイベント通知メカニズムが今時シングルキャストである点だろう。イベントドリブンプログラミングにおいて、イベント通知を待ち続けるリスナを 一つしか登録できない : シングルキャスト-…

EditableとInputFilter

Androidの文字入力に使用するウィジェットであるEditTextクラスでは、文字列の格納のためのプロパティである"Text"に、StringではなくEditableという独自のインタフェースを使用している。 android.widget.EditTextより @Override public Editable getText()…

ロイ・バッティ

ついに出た "Nexus One"。(ブレードランナーを知っている人であれば、すぐに名前の由来が判るだろう。)「Google携帯」ついに登場 iPhoneと激突へ Google、Android 2.1搭載の“スーパーフォン”「Nexus One」を発表米国では既に直販が始まっている。 Nexus One …

Viewのフォーカスとトラバース

フォーカス制御はGUI制御の重要な処理の一つだが、Androidのようなスマートフォンでもそれは同じ。任意のGUIにフォーカスを設定するのはJFC/SwingもAndroidも変わらない。 GUIにフォーカスを設定する //JFC/Swing jTextArea1.requestFocus(); //Android view…

adbとADT

またもやだが、複数のEclipseを上げた後、片方のADTでAndroidプロジェクトのデバッグをしようとした所、エミュレータがデバッガに全く反応しないという現象が発生した。(もう片方はAndroidプロジェクトではない)本来であれば、ビルドが成功してapkイメージが…