2011年10月21日 (金)

Android 4.0のAVDがSegmentation faultする(Ubuntu11.04)

Android 4.0が公開された。
早速、SDKをダウンロードして、
AVDを作成。

で、起動してみた。


・・画面すぐ消えるんだけど・・。
しかも、Android 4.0のAVDだけ。

別のPCで試すと動くのだけど、
ノートPC(VAIO君)でやるとだめ。
(Ubuntu 10.10と11.04)

いじってみると、追加された、
「ウェブカメラエミュレーション」の
影響でSegmentation fault が発生してる模様。

 ウェブカメラエミュレーションは、
 adakodaさんのページにあるので、
 興味ある方はぜひ。


予想だけど、
カメラ付きのPCだと、
発生する可能性があるのかな。
(Windowsはさっぱり)

解決方法は、2つある。
 1.エミュレータ起動時にオプション指定
 2.AVDの設定ファイルを変更


1.エミュレータ起動時にオプション指定
 adakodaさんのページにある、
 ウェブカメラエミュの機能を無効化する方法。
 "-webcam off" を付ければいい。
 なので、こんなコマンドになる。
  $emulator @ICS -webcam off


2.AVDの設定ファイルを変更
 こっちは、
 Googleグループの
 Android Developers にあった方法。

 AVDの設定ファイルの「config.ini」に、
 以下の1行を追加。
  hw.webcam.count = 0

 AVD managerで作ると、
 ~/.android/avd/<名前>.avd/config.ini
 になるのかな。


最後にFaultの場合のログの最後の部分を張り付けておく。
(最後繰り返しっぽいので・・)
$strace emulator @ICS とやった場合のログ。


--- SIGALRM (Alarm clock) @ 0 (0) ---
clock_gettime(CLOCK_MONOTONIC, {19671, 86038083}) = 0
clock_gettime(CLOCK_MONOTONIC, {19671, 86069175}) = 0
sigreturn() = ? (mask now [])
clock_gettime(CLOCK_MONOTONIC, {19671, 86341994}) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
clock_gettime(CLOCK_MONOTONIC, {19671, 87045010}) = 0
clock_gettime(CLOCK_MONOTONIC, {19671, 87080382}) = 0
sigreturn() = ? (mask now [])
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault

同じようにはまってる人がいないことを祈って・・。


リンク:
「[Android] エミュレーターで
 ウェブカメラエミュレーションを使用する」
 by adakoda様

「SDK 4, if I select WXGA resolution,
emulator doesn't start.」
 from Android Developers

| | コメント (0) | トラックバック (0)

2011年10月13日 (木)

onPause()とonStop()の経路

勉強会の資料を作るついでに、
ActivityのonPause()/onStop()が
呼ばれる場所を調べてみた。

前回のonResume()と同じく、
個人メモ程度だけど・・。

関係者は同じくこれぐらいかな。
 android.app.Instrumentation
 android.app.Activity
 android.app.ActivityThread

ActivityをPause/Stopするのは、
こんなケースになるのかな。
(必要そうなところだけ抜粋)
関数の後にインデントがあるのは、
内訳って感じで・・。
(ifの中身もインデント)


ポーズする場合。
元々onSaveInstanceState()を見たかっただけなの。

ActivityThread.handlePauseActivity()
 if (userLeaving)
  performUserLeavingActivity()
   mInstrumentation.callActivityOnUserLeaving()
    activity.performUserLeaving()
     onUserInteraction()
     onUserLeaveHint()
 performPauseActivity(IBinder,?,?)
  performPauseActivity(ActivityClientRecord,*,*)
   mInstrumentation.callActivityOnSaveInstanceState()
    activity.performSaveInstanceState()
     onSaveInstanceState()
     saveManagerdDialogs()
   mInstrumentation.callActivityOnPause()
    activity.performPause()
     onPause()
   listeners.get(i).onPaused()
 ActivityManagerNative.getDefault().activityPaused()


再起動する場合。
これがどんな場合に発生するのか不明だけど、
一旦閉じてからの起動になるのかな。

handleRelaunchAcitivity()
 handleConfigurationChangede()
 performPauseAcitivity()
 handleDestroyAcitivity()
 handleLaunchActivity()


ストップする場合。
正直、onPauseと間違えて調べた・・。
(中途半端かも・・)

ActivityThread.handleStopActivity()
 performStopActivityInner()
  activity.performStop()
   mInstrumentation.callActivityOnStop()
    activity.onStop()
 updateVisibility()
 ActivityManagerNative.getDefault().activityStopped()


見えなくなる場合。
呼ばれるケースがあったのでついでに。

ActivityThread.handleWindowVisibility(?,false)
 performStopActivityInner() →上で。

詳しく知りたい方は、がんばって・・(謎)
Resumeと同じくGingerBread。

| | コメント (0) | トラックバック (0)

2011年10月12日 (水)

onResume()の経路

勉強会の資料を作るついでに、
ActivityのonResume()が呼ばれる場所を
調べてみた。

個人メモ程度だけど・・。

関係者はこれぐらいかな。
 android.app.Instrumentation
 android.app.Activity
 android.app.ActivityThread

ActivityThreadが管理してるイメージなのかな。
Instrumentationの役割がよくわからないが、
よく真ん中にいる。

ActivityをResumeするのは、
こんなケースになるのかな。
(必要そうなところだけ抜粋)

関数の後にインデントがあるのは、
内訳って感じで・・。
(ifの中身もインデント)


リジュームする場合1。
onStop後だと、onStartを呼ぶルートがある。

ActivityThread.handleResumeActivity()
 ActivityThread.performResumeActivity()
  if (pendingIntents)
   deliverNewIntents()
  if (pendingResults)
   deliverResults()
  activity.performResume()
   performRestart()
    if (mStopped)
     mInstrumentation.callActivityOnRestart()
      activity.onRestart()
     performStart()
   mInstrumentation.callActivityOnResume()
    activity.onResume()
   onPostResume()


リジュームする場合2。

Activity.performResume()
 Instrumentation.callActivityOnResume(this)
  activity.onResume()
 onPostResume()


起動する場合1。

ActivityThread.handleLaunchAcitivity()
 performLaunchActivity() →下で。
 handleResumeActivity()


起動する場合2(続き)。
onCreate→onStart→onResumeの流れが見える。

performLaunchActivity()
 mInstrumentation.callActivityOnCreate()
  activity.onCreate()
 activity.performStart()
  mInstrumentation.callActivityOnStart()
   activity.onStart()
 mInstrumentation.callActivityOnRestoreInstanceState()
  activity.performRestoreInstanceState()
   onRestoreInstanceState()
 mInstrumentation.callActivityOnPostCreate()
  activity.onPostCreate()


詳しく知りたい方は、
ソースでもがつがつと・・。
上の調査は、Gingerbreadのソースから。
(バージョンはどれだろう・・)

| | コメント (0) | トラックバック (0)

2011年10月 6日 (木)

「相手に9割しゃべらせる質問術」を読んで

話すのが苦手なので・・

相手に9割しゃべらせる質問術
おちまさと:著(PHP新書)
を読んでみた。


エッセンス的なことは書いてあるが、
やっぱり訓練なんだな。
その証拠に、
最後に「エクササイズ」がついてた。

エッセンス的には、
相手をよく観察することと、
素直さというか真摯さになるのかな。


流れの導入とか、方向性とか、
テクニック的なことも書いてある。
一方で、
相手がいることなので・・と、
各所にちりばめられている。

そして、結論的に、
場慣れというか、
経験値を稼ぐ必要があると進む。

その根底となる心構えが
この本の中心になっている。
そんな印象を受けた。


話を続ける手段がほしいと
手に取った記憶があるが、
ちょっと私には早かったかな。

まずは、まねまね用の
文言集でも探した方が
てっとり早そう。

質問がある程度できてる人には、
心構えを学ぶ意味でいいのかもしれない。


リンク:
amazon(この本)
おちまさとオフィシャルブログ

| | コメント (0) | トラックバック (0)

2011年10月 5日 (水)

OSC広島2011に行ってみた

セミナーの事前登録無しに、
OSC広島に行ってきた。

でも、なぜか、
スタッフ登録されてたんだけど・・(汗)
スタッフらしいことしてないけど・・(滝汗)


今回が広島初らしいけど、
なんか人がいっぱいいた。

全体的に狭い印象があったけど、
初めてだとそんなもんなのかなぁー。
セミナーによっては、
入れないところもあったようで、
盛り上がってたのかな。
(私も中国GTUGのに入れなかった・・)


参加してきたセミナーは、
キーワード的に、
QT、クラウド、KVM、
NetBSD、キャリアデザイン。

内容と関係ないけど、
MACでのプレゼン率が高かった。

それでは、簡単にひとつずつ。

QTは便利そうだけど、
私にはC++の壁が・・。
追加されたQT quickなるものが、
なかなか取っつきやすそうだった。
これでUIだけとかいいかも。

クラウドは、IIJさんの話。
ぶっちゃけ、web関係さっぱりだけど、
インフラ提供が使命という感じが
伝わってきた。
Rubyの環境提供というのも、
方向のあったサービスになる気がする。

KVMの話は、環境構築の話。
説明ができそうな感じで聞けたし、
注意点とか聞けたのでやってみたいが・・。
説明がFedoraだったので、保留。
やっぱ、Ubuntuがいいな。

NetBSDな話。
と思いきや、x68kのエミュの話だった。
x68kは特に・・だったので。
でも、エミュの苦労話は、
なかなかおもしろかった。
アライメントの話とか、
エミュならではのバグ発見談とか、
普段聞けないよね。

最後に、キャリアデザインな話。
いきなり、
就職して目指してたイメージと
仕事内容が違ってた話から始まった。
身に染みて感じてることだけど、
前からそんなんだったのね・・。
そして、一番印象だったのは、
「知識の陳腐化」みたいな言葉かな。
いろいろ考えないとなぁ。


ってことで、簡単に、振り返ってみた。
全体的におもろい話を聞けたけど、
キャリアデザインの話が
今一番合ってたのかな。

次回もあれば、また参加したいな。
(もっとゆったり会場希望・・)


リンク:
OSC広島2011の公式

| | コメント (0) | トラックバック (0)

2011年9月27日 (火)

「お金持ちのお金はなぜなくならないの?」を読んで

最近、読書記事しか
アップしていないなぁと思いつつ、
さらに読書記事を追加。

最近、買う量の方が多いので、
読むペースをあげないといけないなぁ。

お金持ちのお金はなぜなくならないの?
宮本弘之:著(メディアファクトリー)

とりあえず、
お金持ちになる方法でもないかなと
探ってみたくなる。

しかし、前書きにもこう書いてある。
 「どうしたらお金持ちになれるか」は、
 書いてない

そして、本当に、
お金持ちになる方法とか手段の項目がない。
それでも、ヒントというか、
ある方法の指針みたいなものはあるのかな。


基本的には、お金持ちの人の
お金の持ち方とか、接し方とか、
考え方が書いてる。

お金持ちのリスクとか、
続けることの難しさとか、
雑誌では見たことがないような視点が
描かれているので、読んでて楽しい。

まぁ、比較した雑誌は、
メインテーマが、
お金の貯め方とか、増やし方なので、
当然ではあるが・・。


個人的に一番参考になったのは、
お金の持ち方の話。
持ち方によるリスク、
利点・欠点とか。

お金持ちじゃないので、
そこまで神経質になる内容じゃないが、
貯金とか投資を考える場合に、
基本的なことにつながるように見えた。


お金持ちを目指すのであれば、
一度目を通してみてもいいんじゃないのかなぁ。
(目指す場合、専門書で、
 いっぱいいっぱいな気もするけど)


リンク:
Amazon(この本)
メディアファクトリー(この本)

| | コメント (0) | トラックバック (0)

2011年9月 5日 (月)

「エンジニアとしての生き方」を読んで

著者の方は知らなかったが、
帯を書いてた人に見覚えがあったので、
手に取ってみた。

買ったままの「Being Geek」と
かぶりそうだったけど、手に取ってみた。

エンジニアとしての生き方
中島聡:著(インプレスジャパン)

帯に「豪速球の正論」と書かれているが、
そんな印象をそのまま受けた。

ブログをまとめたような一冊だけど、
今の日本のIT業界の問題点とか、
今から目指すべき方向性について書かれている。


考えてた方向と似てるので、
妙に納得できてしまった。


それと同時に、わかってたつもりだけど、
やってないことを突きつけられた。


IT業界で行き先に悩んでる人は、
いい後押しをもらえるかもしれない。

書いてある生き方は、
めざすべき方向だけど、
つらく楽しい道になりそうだなぁ(笑)


リンク:
amazon(この本)
Life is beautiful

| | コメント (0) | トラックバック (0)

2011年8月10日 (水)

「働かないアリに意義がある」を読んで

アリと言えば・・
女王アリ以外は、
せこせこと働いてるイメージ。

そんなところから気になった一冊。

働かないアリに意義がある
長谷川英祐:著(メディアファクトリー)


生物学者さんが書いた、
生物学のおもしろさを伝えよとしている本。
全体的には、そこを目指しているように見えた。


でも・・。

実際の社会との対比という形で、
話が進んでいるため、
アリ(昆虫)の世界と、
人の社会との関連性がわかっておもしろい。

社会全体の効率化と個人の効率化の話、
社会の為の役割分担の話、
そして、裏切り者の話。


社会=コミュニティが、
企業とか、国とかいう単位でも
成り立つことから、
身近に感じる例もあるだろう。

特に、裏切り者の話は、
今の社会問題とも
無関係じゃないように見える。
そして、
企業の中の問題とも、
関連性が見えるかもしれない。


でも、関連性は見えるが、
解決策を求めるのはこの本では難しい。
(アリの話だと、裏切り者がいると、
 その団体は縮小するらしいので・・)

働かないアリに興味をひかれた人は、
実社会との関連性をにらみつつ、
読んでみてはどうだろうか。


リンク:
amazon(この本)

| | コメント (0) | トラックバック (0)

2011年7月26日 (火)

ABC2011summerに行ってみて3

ABC2011夏に行ってきた。

前回から間が開いてしまったが、
参加したセッションについて
つらつらと書いておく。

開発の濃い方と言われてた、
開発2を前半聞いてから、
Robotに移動した。


まずは、「Android is NOT just 'Java on Linux'」
特に聞きたかったセッションのひとつ。
資料が英語だったのが、
どきどきでしたが、日本語でよかった。

Androidの全体的なことを
ポイント毎にまとめてあるので、
一度見た方が良いような内容だった。

個人的には、prelinkのところが聞けたので、
これだけでこの日来てよかった気になった。

JN-DK01とかで思いっきり、
はまっててよくわかってない部分だったので、
概略だけはつかめた気がする。

もうひとつ、Cばかりやってて、
気にしてなかったけど、
C++のライブラリは
glibcと大きな差があるようで・・。
使うことが少ないと聞いたが、
知らないと、はまるよね・・。


次に、「Linuxカーネルから紐解くAndroid」
一つ前のセッションとうまく連携したように、
カーネル内に特化した話。

Sandboxの概念とか、
始めて聞くこともあったけど、
Ubuntuとの比較ってスタイルなので、
目的がわかりやすかった。

細かいところはソースを読めってことなので、
資料のコメントでおもしろそうなところは
見ていかないとなぁー。
(誰かに宿題をもらった気も・・)

そういえば、binderは、
カーネルだけみてもさっぱりだった。
パケットの処理だけっぽくて、
プロトコルっぽいところは、
フレームワークの中な気がする。


次に、
「AndroidプログラマのためのARM概論。
 でも少しIntelの話も!」

いろいろ残念な感じだった。
講演用のPCがオートで動くという
怪しい現象でぐんにょり感。
そして、文字が小さすぎて、
どっちにしても資料が見えなかった。

キーワードとしては、
NEONとGPUってところだったのかな。
パフォーマンスの話として、
アセンブラ実装で重要なキーワードらしい。
ARM系以外が出てない理由も、
この辺の最適化の話らしい。

資料出てきたら、
まともに見れてないので、
見てみたいなぁ。


こっから、Robotに移動。
「ABC2011Sロボットサミット実行委員会」
途中から参加。
神戸支部と横浜支部には、
ロボット部なるものがあるらしく、
どんなものを作ってるかの発表だった。

PICとか他のICにつないだりとか、
adb経由のBridgeを使ったりとか、
BridgeとADKの共通Framework化とか、
研究色が強くて、かなりひかれた。
混ざってみたいけど、遠いな・・。

そして、その中に、
IS01の熱狂的なユーザーがいた。
JN-DK01を愛する私から見ると、
お近づきになりたかったが、
忙しそうだったので、近づけずと・・。


最後は、Qualcommの人の
「Androidとロボットに関する考察」
当たり前の話かもしれないが、
宣伝色が強くて、新しいことがなかったのかなと・・。

こんなことやってるよーとか、
チップを使えばこんなことできるよーとかだった。

ADKを使えば、
センサーを使えるという話だったが、
チップ自体が豊富な機能を持ってるので、
発想としてどうなのかと感じた。

最後に開発機が買えるよという宣伝があった。
ここだけは最後に来て「おぉ」と思ったが、
値段が10万越えとか・・。

開発環境の話とか一切なかったので、
どこまでできるのか不安な一品。
途中はしょっても、
ここだけ重点的に話してほしかった。

ショッピングサイトが英語だけだが、
日本から買えるのだろうか・・。


ってな感じで、セッション毎に、
気になるポイントはあった。

録画動画とか資料が配信されたら、
他の興味があったのも確認しないなぁ。

次回は・・録画でもいいかな・・
(行きたくても行けない状況もありそうだし、
 何より人ごみがこわい・・ぇ)


リンク:
Android is NOT just 'Java on Linux'
 by tetsu_koba 様
Linuxカーネルから紐解くAndroid
 by checkela 様
日曜エレクトロニクス(日エレ)
 by いしいっち 様
Snapdragon Mobile Development Platform-ja
 on bSQUARE

| | コメント (0) | トラックバック (0)

2011年7月20日 (水)

ABC2011summerに行ってみて2

ABC2011夏に行ってきた。

前回、全体的なことを書いたので、
参加したバザーについて、
つらつらと書いてみる。


午前中に基調講演を無視して、
8号館へ突撃。

とりあえず、一通り回ってみた。

特に気になったのは、3つ。
ひとつは、ソニーエリクソン
6月発表の日本未発売の端末があった。
Xperiaだけど、
ちっさくて持ちやすくてよかった。
ごつくないのがいい。
でも、Gingerbread 2.3.3.だったのが、
ちょっと残念だ。
(写真をとり忘れたのも残念)


次に富士通研究所の展示。
場所によって、
アプリを入れ替える
ってことをやっていた。
動画ではそうだが、
実演では、NFCのタッチで、
アプリを起動させるようだった。
アプリ起動の設定は、
別の端末でできるようで、
個人の端末を仕事でも使うという
概念だとおもしろい仕組みだと思う。

セキュリティとかの話も、
起動させる設定、外出時の削除設定で、
うまく運用できるんじゃないかなと思う。
ただ、全員がandroidを持つ前提だけど・・。
コードをがりがり書くとかじゃなければ、
タブレットにつっこむのも、
ありかもしれない。
この発表の話かな


最後に、
実際にUIを叩く機械を
展示してるところがあった。
会社名はメモするの忘れました・・(汗)

画像認識で成否判定をするみたい。
モンキーじゃなくて、
指定された通りに動くらしいけど、
再現試験用だと、
ソフトエミュとかなかったけ?と思ってしまった。
エミュだと起きない場合もあるが、
まだまだ開発段階ってところのようだった。
再現時のログ特定とかできればいいが・・。
あと、動作が遅かったので、
いじめる試験だと無理そうな気もした。


他にも、RubyでAndroidとか、
SIPとか気にあるものがいろいろあった。
ロボ関係ももちろん気になったが、
知識の不足をまたまた実感した感じ。
でも、
ADKができる基板の情報があったので、
今度のぞいてみよう。
→基板の情報は、ここ
 (もらった資料では、半田付け依頼もできるらしい。
  でも、サイト上は見つけられず)

次の記事は、
参加したセッションの内容をつらつらと。


リンク:
「Sony Ericsson Urushi will be a smaller Xperia Arc」
 by intomobile
「時間や場所に応じて必要なアプリケーションが
 自動配信・自動実行される情報端末技術を開発」

 by 富士通研究所
「Galileo7 ADK main board」by galileo-7 さん

| | コメント (0) | トラックバック (0)

«ABC2011summerに行ってみて1