2010年12月24日金曜日

size対応

WebViewでローカルhtmlを読み込んだ際、大きくしたEmulatorだと小さい画面でしか表示されない。(しかもその中でスクロールされる・・・・)
修正するために、supports screensで対応。
Android manifestに、

<supports-screens android:largeScreens="true" />
を追加。


参考リンク:
supports-screens

2010年10月11日月曜日

Java reflection

Java でリフレクションを使って動的にimport出来ない関数を呼び出す方法。
inputのパラメータは適宜使いたいものに変更。

Boolean[] input={new Boolean(true)};
//using reflection
try{
// call class name
Class cl = Class.forName(*******);
Class[] par = new Class[1];
par[0]=Boolean.TYPE;
// import dynamic class library function
// ここで動的に関数を呼び出す
Method mthod=cl.getMethod(******, par);
mthod.invoke(mWebView.getSettings(), input );
/* normal sequence functions */
}catch(Exception e){
/* exception error */
}

うーん、書いてはみたもののまだいまいち腑におちてないかんじ。
参考リンク:
Flash devlop on Android 1.5
Javaプログラミングのダイナミクス 第二回
Javaプログラミングのダイナミクス 第三回

2010年10月5日火曜日

Wirelessが死んだ。。

自宅のUbuntuはSuspendからの復帰時大体キーが効かなくなって再起動するハメになる。
これはこれで解決しないといけないのだけど、この時一緒にWirelessもDisableになって使えなくなってしまった。
その時の復帰の方法は、以下。
System > Administration > Users and Groups
でログイン名を選択し、
Advanced setting > User privileges
で,Connect to wireless and ethernet networkにチェックを入れたらOK.
でも、何で突然ここだけチェックが外れるのかな。。。

2010年10月1日金曜日

LiveWallPaper - Android

作りかた。
Dynamic Displayのレンダリングのため,Surface Viewを利用
ユーザのスクリーンタッチイベントを取得したり、イベント処理も必要。
作るコンポーネントは以下3つ。

  • Live Wallpaper用のXML resource

Androidのお作法で、res/xmlの中に作る。
wallpaper がTop elementで、その中のuser attributesとしてauthor, description, thumbnailを指定。
これらがWallpaper設定時の選択画面で出てくる表示になる。
追加で何か設定させたい場合(画像や図選択、挙動の設定などなど)は、"SettingActivity"tagを指定すれば、独自の設定画面を用意できる。

  • Wallpaper serviceの実装

Wallpaperserviceの拡張を行う。ここでWallpaperService Engineクラスのインスタンス化。
すべてのdrawing処理、インタラクションはwallpaper service engine クラスでハンドルされる。
このサービスを、マニフェストにserviceとして登録。
また、Live wallpaperはandroid.service.wallpaper.WallpaperService のIntent Filterを含む必要がある。
また、meta-dataノードにandroid.service.wallpaperをname attributeとして、
リソースファイルをresouece attributeとして追加。
また、BIND_WALLPAPER パーミッションも必要なのでこれも追加。


  • Wallpaper engineの実装 (WallpaperService.Engineのインスタンスを新規に作成して返す。)

WallPaperServiceクラスでは、必ずEngineの実装が必要。WallpaperService.Engineクラス拡張をする。
このEngineは、Surface(壁紙表示、タッチイベントの取得)をカプセル化している。Surfaceはバックグランドスレッドのアップデート、スムーズネス、動的でインタラクティブ表示)の描画サポートを行うcanvasの一種。
drawingする前には、必ずonsurfaceCreatedのイベントハンドラで示される初期化を待つ必要がある。
その他、イベントコールバックの実装が必要。(onTouchEvent などなど。)

2010年9月30日木曜日

Eclipse - workspaceを消したくなったとき

Eclipse の
%HOME_Eclipse%\configuration\.settings\org.eclipse.ui.ide.prefs
の中にworkspaceの設定値があるので、必要ないものを消せばOK

そもそも解決したい問題は、新しいプロジェクトを既存ソースから追加するときに出る
i
nvalid description : project overlaps
なんだけど、まだそちらは解決出来てない

2010年9月25日土曜日

eclipse - auto activation

Eclipse利用時にどうも入力ができなくなることがあるなあ、と思い、
入力支援の後が怪しそうだったので
preferences > Java > Editor > Content Assist > Auto activation
のチェックを外してみる。ちょっと改善したようすだが、まだいまいち不安定。。。
環境:Ubuntu 10.04 + Eclipse Galireo 3.5.2

追記:どうやら入力環境のせいらしい。
Editor上で右クリックして
Input Methods > SCIM bridge input method
で変更可能。
もしくは、terminalでim-switchコマンドを使えば設定できる。




AS2Java

ActionscriptからJavaへの変換、覚書
#逆の変換ツールはあるけどこちらは見つからず、コツコツ調べることに。
型変換:Number -> long (ただし、用途によってNumberはfloatになることもあるので注意)
現在時刻取得: (new Date()).getTime() ->  System.currentTimeMillis()
配列:Array -> int [] (intのところには適切な型が入る)
部分文字列:slice ->substring
文字列置き換え:split("a").join("b") -> replace("a","b")

Reference:
http://oku.edu.mie-u.ac.jp/~okumura/java2/time.html

2010年9月24日金曜日

use git - part2

Branchの作り方。
git branch RB1.0 master
masterが分岐元。SVNとかのtrunkで最初に作られるブランチ名と思っておけばよい。
ブランチの切り替えは、checkoutコマンド。#ちょっと違和感あるけど。。。
git checkout RB1.0
タグをうつには、
git tag 1.0 RB1.0
でOK。1.0がタグ名で、
git tag
コマンドで今までのtag一覧を確認可能。
ブランチの変更をマスタに反映させたい場合は、masterに戻って、
git rebase RB1.0
で変更をマージしてくれる。

use git -part1

git install後、使ってみる。
1. 管理したいフォルダに行き、まずはリポジトリの初期化。
git init
2. リポジトリにファイル追加。個別ファイルも指定出来るがAndroid アプリの1プロジェクトで実施したかったので、管理フォルダ下で、
git add --all
git commit -m "initial project"
でコミット。""内がcommit時のメッセージとなる。
-mでログを分けたり、git commit -aで変更をすべてコミットすることも可能。
(ただし-aコマンドは追跡中のもののみなので、新しく作ったファイルはaddしないとー)
git log -n
(nは数字)でn回分のコミットログを確認できる
また、
git status
で、プロジェクト内でファイルの変更をしたがaddしていないものや、addしたがcommitしていないものが表示できる。
コミットのログに書くべきことを、簡潔にまとめられていたのでここで紹介。
最低限、そのコミットの「何故」を説明するすべてのメタデータを書く
結構、これが難しかったりするんだな・・・

2010年9月23日木曜日

Install git

検証用のソースがわけのわからないことになりそうだったので、gitで管理をしようと思い、インストール。
1. 事前に必要なパッケージインストール
sudo apt-get build-dep git-core
2. 最新版 v1.7.3 DL。以下から。

3. インストール。
DLアーカイブ解凍。
インストールフォルダで
./configure
sudo make all doc
sudo make install install-doc
でOK
参考:

2010年9月21日火曜日

note

他のPCでBuildしたソースを再度別PCでBuildするときは、genディレクトリを削除する。
そうしないと、変数の解決が出来なくてエラーが出る

2010年9月20日月曜日

Start blog

前のBlogから移行。
つらつらとソフト関係その他雑多なメモを残していきます.

最近はLinux(Ubuntu)とAndroidを触ることが多く、覚書したいことも増えてきたので
こちらに残すことに。
今日ひっかかったとこ。
- Java5
Ubuntu 10でAndroid SDKのSourceコンパイルができなかったので調べたところ、どうもJavaのバージョン問題らしい。
(Android本体はできてた)
Ubuntu 10では標準でjava6が入っており、apt-getでいけるかと思ったら、aptのリポジトリが違う。
そこで
を参考にjava5に変更。
環境変数を設定しなおしてBuildを通す。

- project Overlap
一度workspace内でprojectとして認識させたアプリは、New > Android Project >create project from existing code で認識させるとoverlap エラーになってしまうため、Importで 認識させればよい。
#それでもうまく認識できない場合がある。調査中。。。