雑記帳 2010年11月
FC2ブログ

2010'11.29 (Mon)

11/28のツイートまとめ

kobayutapon

@adakoda 作ったらほしい?
11-28 21:26

あー、一番のクライマックスで選挙速報って。。。
11-28 20:57

@kinneko Ubuntu10.04の64bitです。AMDはソケットの形ころころ変えないからアップグレードしやすくていいです。安いし。
11-28 14:49

VNCの設定方法忘れた。。。
11-28 10:29

風がすごいなぁ。。。
11-28 10:23

@androidzaurusさんのブログ記事にあるくらいのスペックは必要だと確信したのです。
11-28 03:13

Android フルビルドベンチは24分。今までの4時間に比べて大幅短縮。
11-28 03:11

で、ついお家のPCをパワーアップ。Phenom X4 955にしてみた。
11-28 03:08

きっと@adakodaさんのカスタマイズubuntuのときもちょこっとお役に立つかも。
11-28 03:08

ubuntu 10.04でAndroidのビルドに必要な環境を作るシェルスクリプトを作ってみた http://kobayuta.blog47.fc2.com/blog-entry-252.html
11-28 03:07

07:15  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.28 (Sun)

11/27のツイートまとめ

kobayutapon

キムタクがパーフェクト賞とる予感。ヤラセ臭い感じが強いよ。。。
11-27 21:37

今日のセカイ不思議発見のテーマはいいなぁ。映画の宣伝臭が強すぎるけど。。。
11-27 21:35

イラッとしてお家のデスクトップをビルド用にパワーアップ。フルビルド20分切れるとうれしいかなー
11-27 21:33

06:54  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.27 (Sat)

[Android]開発環境構築用のシェルスクリプト


開発用マシンをパワーアップしました。つい衝動買いな感じでPhenom X4 955にしました。
初めてのQuad Coreだったりするのです。

さて、そんなこんなで環境をセットアップするのですが、毎回手打ちするのが面倒になったのでスクリプトを作って見ました。自分用なんですが、よろしければどうぞ。拡張子は.shにして実行属性つけてね。
setup_android_dev .sh

adakodaさんのカスタマイズubuntuでもそれなりに使えると思います。はい。

テーマ : android - ジャンル : コンピュータ

23:00  |  Android  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.27 (Sat)

11/26のツイートまとめ

kobayutapon

レスポンスならipadじゃね? QT @hidkazoo: @kobayutapon そろそろ貸倉庫に眠らせている蔵書の数々を自炊してやらないといかんので、、、iPadかなーとか思ってたけど、どうやろ。
11-26 01:43

質感はkindleより好きだな QT @hidkazoo: @kobayutapon アレの出来はいいの?
11-26 01:17

ついイラッときてソニーの電子ブックリーダーを衝動買い。前から欲しかったからしょうがない。
11-26 01:11

07:03  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.25 (Thu)

11/24のツイートまとめ

kobayutapon

むー、PandaBoard納期遅延中らしい。。。一週間延びた。。。
11-24 23:45

そっこーで自動返信メールきたを
11-24 23:40

ABC申し込みだん!
11-24 23:39

07:00  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.24 (Wed)

11/23のツイートまとめ

kobayutapon

宇宙戦艦ヤマト実写版のノベライズ読んでみた。正直、がっかりだった。。。
11-23 23:55

@nimabou いいですなー。あー、写真撮りに行きたかった。。。
11-23 23:52

ふん、どうせ仕事で行けないよーだ。キー。 QT @nimabou: みんな、花火行くの楽しそうに歩いてる
11-23 18:59

むー、ホルモン食いたい。白樺のホルモン。。。
11-23 00:11

06:58  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.22 (Mon)

11/21のツイートまとめ

kobayutapon

@nimabou 紅葉撮るならこんな感じもいいっすよー。 http://twitpic.com/38u4h1
11-21 20:17

洗車機でルーフボックス破壊されたナウ(泣)
11-21 15:56

06:43  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.19 (Fri)

11/18のツイートまとめ

kobayutapon

今日の晩ご飯はコンソメスープを使った洋風おじや。野菜てんこ盛りでカロリー控えめな感じ。
11-18 21:35

やっぱり外食より自分で作るほうがうまし。
11-18 20:42

いろいろ嫌な感じになったので帰宅
11-18 20:12

そーいうもんじゃない QT @sizuo_inakamono: ついったーって、「フォローしたいんですが」的なメッセージ先に送るって出来ないのけ?( ・ω・)モニュ?
11-18 10:03

06:41  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.18 (Thu)

11/17のツイートまとめ

kobayutapon

MSX2はヤマハだを QT @adakoda: おお、テキサス・インスツルメンツ社だったのか。画面制御。
11-17 23:28

VDPのタイミングとかで微妙に無かった子もいます QT @adakoda: MSX に参入したメーカとか機種みてたら Android とかぶる。でも互換性は問題なかったなぁ。
11-17 23:28

DigiKeyに頼んだPandaBoardの出荷日が12/12に延びてた。。。
11-17 23:26

会社の同僚が急に亡くなったて聞いて動揺中...
11-17 21:55

むー、やる気出なすぎ。具合悪すぎ...
11-17 13:31

07:43  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.17 (Wed)

[Android]Androidのパワーマネージメント


ここ
とか、こことか、こんなとこを見ながら、AndroidのPower Managementについて整理してみる。

#あくまで個人の覚書。間違ってたらコメントください。。。

まずはAPIレベルの話から。developer.android.com/reference/android/os/PowerManager.htmlのまとめ。

関連するクラスはandroid.os.PowerManagerとandroid.os.PowerManager.WakeLockとなる。
まずPowerManagerクラスの概要など。

PowerManagerクラスはデバイスのパワーステートを制御することができる。
wakelockは本当に必要な際にのみ取得し、可能な限り最低限のレベルのものを使い、使い終わったら即刻リリースすること。
もっとも基本的なAPIはnewWakeLock()である。このAPIはandroid.os.Powermanger.WakeLockオブジェクトを生成する。これを使用してデバイスのパワーステート制御を行う。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
 PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
 wl
.acquire();
   
..screen will stay on during this section..
 wl
.release();


設定できるフラグは以下のとおりとなる。この値指定は排他となり、このうちの一つしか設定できない。
Flag Value CPUScreenKeyboard
PARTIAL_WAKE_LOCKOnOffOff
SCREEN_DIM_WAKE_LOCKOnDimOff
SCREEN_BRIGHT_WAKE_LOCKOnBrightOff
FULL_WAKE_LOCKOnBrightOff


加えて、以下の二つのフラグが指定できる。ただし、PARTIAL_WAKE_LOCKと組み合わせた場合は無効となる。
  • ACQUIRE_CAUSES_WAKEUP
このフラグがセットされた場合、WakeLockが取得された際にすぐに画面とキーボードをONする。一般的な使い方としては、ユーザーにとって重要な情報をすぐに見せるような場合があげられる。
  • ON_AFTER_RELEASE
 このフラグがセットされた場合、イルミネーションをほんの少しだけ残す要因となるUser Activity TimerはWakeLockが開放された場合にリセットされる。wakelockの状態を繰り返す場合に、フリッカを低下させるのに使用できる。


APIとしては以下のものがある。
 goToSleep() --- スリープモードに入る
isScreenon() --- 画面の表示状態を返す 
newWakeLock()  --- WakeLockオブジェクトを生成する
reboot()  -- デバイスの再起動を行う
userActivity() --- デバイスをFULL_ON状態に遷移させ、Auto-Offタイマーをリセットする。

ユーザーアプリが何かする場合には基本WakeLockオブジェクトで操作する、って事でいいのかな?


テーマ : android - ジャンル : コンピュータ

22:53  |  Android  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.17 (Wed)

11/16のツイートまとめ

kobayutapon

位置計算資料もういっちょ。 http://stjarnhimlen.se/comp/ppcomp.html
11-16 21:20

太陽・惑星の位置計算 http://www.toyama-cmt.ac.jp/~mkawai/lecture/tensoku/altazi/scriptsun/altazisunjs.html
11-16 21:03

ヒッパルコス星表のダウンロード先 http://www4.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/cadcbin/astrocat/hipparcos
11-16 20:58

やっぱりIS01は黒歴史だったか。手を出さなくてよかった。。。
11-16 20:46

久しぶりに体調悪くてダウン。休んで一日寝ていたが、一向によくならん。。。腰痛だけでもよくなればなぁ。。。
11-16 20:43

むー、まぢで具合悪い。。。風邪か?
11-16 07:39

07:58  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.16 (Tue)

11/15のツイートまとめ

kobayutapon

早く帰れたので、お家でご飯。今日は寒いから白菜鍋でごわす。
11-15 19:49

07:22  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.15 (Mon)

11/14のツイートまとめ

kobayutapon

で、冷蔵庫の整理をしてたら賞味期限切れた食材がワラワラ...
11-14 22:15

明日からしばらく長野なので、自炊の食材を仕入れてくる。
11-14 21:45

御代田駅前の木すぎって店で夕飯。カレーライス200円って、激安!
11-14 19:32

カーリング終了http://bit.ly/bFHDal
11-14 17:13

東部湯の丸サービスエリアでケバブをくらう
11-14 12:36

今日は自衛隊の車をよく見るなぁ。自衛隊のバイクはじめてみたけどカッコいいなぁ
11-14 12:27

む、なんとなく風邪気味な予感...
11-14 10:34

最近、お疲れ様とご苦労様の使い分けがわからなくなるときがある。。。
11-14 10:02

12:24  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.14 (Sun)

11/13のツイートまとめ

kobayutapon

AndroidのInput DeviceのEventの上がり方を調べてみました。http://kobayuta.blog47.fc2.com/blog-entry-240.html
11-13 23:53

中野えびす講、なんか寂しいかんじ
11-13 17:05

久しぶりに中野のえびす講にでも行くか。十五年ぶりかなぁ?
11-13 15:02

むー、なんか寒いでゲソ
11-13 14:59

車検は十万円台で済みそうな感じ。よかったー。
11-13 11:48

これから車の点検&車検の見積り。七年目13万キロはいくらかかるのだろう??
11-13 10:03

結局LuvPadは19日になったのか。。。
11-13 08:01

なんと、android-x86はjdk6でもビルドが通るのか!
11-13 07:27

08:07  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.13 (Sat)

[Android]Input Eventの流れ

昔調べたAndroidの入力関連に関して、もう少し詳しく調べてみた。


Input Eventの流れ

最下層はNativeコードでかかれた処理になる。
/frameworks/base/lib/ui/EventHub.cpp
/dev/input以下のデバイスノードを検索し、そこから入力されるEventを監視して上位層にあげる。コンストラクタでWAKE_LOCK_ID "KeyEvents"でPARTIAL_WAKE_LOCKをかける。このイベントはJNIを通じてJava層(KeyInputQueueクラス)に通知される。デコンストラクタにてWAKE_LOCKが開放される。

/frameworks/base/services/jni/com_android_server_KeyInputQueue.cpp
EventHubのJNI層の実装。そのまま上にイベントをあげる。

/frameworks/base/services/java/com/android/server/KeyInputQueue.java
KeyInputQueueクラスが実装されている。実際のインプットイベントの監視はスレッド内で行われている。スレッドの処理自体はnewKeyEvent内で定義されている。各処理でこのnewKeyEventが呼ばれたのちにstartが呼ばれ、キー入力監視が行われる。実際はWindowManagerServiceの内部でKeyInputQueueクラスの派生クラスとなるKeyQクラスが使用される。(WindowManagerServiceの実装は
/frameworks/base/services/java/com/android/setver/WindowManagerService.java)

WindowManagerServiceの入力イベント監視は、KeyQクラス内で生成されるThreadとInputDispatcherThread
クラスで動くスレッドで行われる。WindowManagerServiceのコンストラクタが実行された段階でKeyInputQueueクラス内部に実装されるキー監視スレッドが実行される。このスレッドは下位層から上がってくるイベントを監視し、Queueに追加を行う。InputDispatcherThreadはKeyQクラスで監視しているイベントキューからイベントを取得し、イベント種類によって処理を切り分ける。
キーイベントの場合はdispatchKey()で処理が行われる。

大体こんな感じか?

テーマ : android - ジャンル : コンピュータ

23:47  |  Android  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.12 (Fri)

[Android]Shutdownの処理の流れ

訳あってAndroidのシャットダウン処理を調べたので覚書。

実際にShutdownの処理を行うのはShutdownThreadクラスに実装されている。
(framework/base/core/java/com/android/internal/app/ShutdownThread.java)

実際にはShutdownThread.shutdown()が呼び出される。
ここで電源をOFFしてもよいか確認用のダイアログを表示し、OKであれば実際のシャットダウン処理を開始する。
beginShutdownSequence()で電源オフ時に表示されるプログレスダイアログを表示し、シャットダウン中に電源が切れないようにWAKE_LOCKを確保する。
その後シャットダウンスレッドが動き始める。

まず、Intent.ACTION_SHUTDOWNをBroadcastで発行する。
その後、IActivityManager.shutdown()を実行する。ここでSHUTDOWN_TRANSACTIONを発行する。

その後、無線系デバイスの電源OFF処理、マウントされたストレージのアンマウント処理を行い、
要因によって再起動、もしくは電源オフする。
再起動/電源オフをするのはPowerクラスで行う。(frameworks/base/core/java/android/os/Power.java)
この中でshutdown/rebootを実行しているが、実態はframeworks/base/core/jni/android_os_Power.cppに実装
されていて、ここでLinuxのシステムコールを呼び出して再起動/電源オフを実現している。


ではこのShutdownThread.shutdown()はどこから呼び出されるのか?
ソースのgrepを行うと、

frameworks/policies/base/{mid, phone}/com/android/internal/policy/impl/GlobalAction.java
frameworks/policies/base/{mid, phone}/com/android/internal/policy/impl/PowerDialog.java

から呼び出されているが、PowerDialogは今はどこからも呼び出されていない様に見える。
GlobalActionクラスでIntent.ACTION_CLOSE_SYSTEM_DIALOGSかACTION_SCREEN_OFFをレシーバーに登録し、受けたらhandlerにMESSAGE_DISMISSをsendする。そのhandlerの中からダイアログを表示し、シャットダウンやマナーモードや機内モードに切り替えを行うDialogの表示を行っているようだ。

しかし、互換性のためか、過去の使用されていないコードまで残っているのはちょっと勘弁して欲しい。
センサーまわりもそんなんだよなー。。。

テーマ : android - ジャンル : コンピュータ

22:56  |  Android  |  TB(0)  |  CM(2)  |  EDIT  |  ↑Top

2010'11.12 (Fri)

Androidのsource取得とビルド

開発環境が整ったので、ソースの取得とビルドを行います。

本家のページを参考にしてやります。
http://source.android.com/source/download.html

まず、ソースを置いとくディレクトリを作成し、移動ます。


$ mkdir ~/mydroid
$ cd mydroid



作成し、移動したらrepoの初期化を行います。


$ repo init -u git://android.git.kernel.org/platform/manifest.git


proxyがある環境では別途設定が必要になります。(corkscrewなどを設定する必要あり)
初期化が正常に完了したら以下のコマンドを実行し、ファイルを取得します。


$ repo sync



正常にファイルが取得できたら以下のコマンドを実行してビルドを行います。



$ make



これで正常にビルドが終わればOKです。






テーマ : android - ジャンル : コンピュータ

20:00  |  Android  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

2010'11.11 (Thu)

Ubuntu 10.04 64bitでのAndroid開発環境構築


久しぶりの更新です。

最近のAndroid SDKのmasterブランチは64bit環境でないと動かない、という話を聞いたので開発環境の再構築を行っているのでそのメモです。なぜ10.4かというとLTSだから。8.10でちょっと面倒な目にあったので。。。

Android Open Source ProjectのDownloadページ
sola_dolphon_1さんのブログ記事
を参考に構築していきます。

まず、ubuntu10.04の64bit版をInstall。今まではWindows7のVirtualBox上の仮想マシンでやっていたのですが、非常に遅いので別パーティションを作ってインストールします。
インストールが終わった後に必要なパッケージをインストールします。

まずはビルドに必要なパッケージ群をインストール。以下のコマンドを実行します。

$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev


この後にJAVA SDKをインストールします。JAVA SDKは5と6。で、以下のコマンドでインストールを実行。

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse"
$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk
$ sudo apt-get install sun-java6-jdk



必要なパッケージを入れたら、以下のコマンドを実行してrepoをとってきます。


$ mkdir bin
$ echo $PATH
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo



取得したら、パスを通しておくと便利。.bashrcとかに追加しときます。


export PATH=$PATH:~/bin


以上でビルド環境の準備はおしまいです。




テーマ : Linux - ジャンル : コンピュータ

23:37  |  Android  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top
 | HOME |