Androidアプリの内部動作に関する情報(2) - Togetter
Twitterのつぶやきマッシュアップメディア!
@togetter_jpをフォロー
ホーム
まとめ作成
お知らせ
設定
ログイン
ついに決定!第2回トゥギャッターまとめまとめ!2月25日開催!
トップ
ニュース
社会
地域
芸能・スポーツ
IT・Web
科学・教養
カルチャー
趣味
生活
仕事
ネタ・お笑い
ログ・日記
震災
AKB48
放射能
援助
支援物資
アーサー
復興
iwj
速報
国内
アジア
アメリカ
ヨーロッパ
その他
政治
経済
国際
法律
環境
コラム
東京
東京近郊
北海道
東北
関東
北陸・信越
東海
近畿
中国・四国
九州・沖縄
海外
芸能
テレビ
ラジオ
野球
サッカー
ゴルフ
格闘技
競馬
モータースポーツ
その他
Android
Apple
インターネット
パソコン
モバイル
ガジェット
サイト制作
プログラミング
その他
科学
テクノロジー
エネルギー
数学
物理
宇宙
自然
人文
建築
心理
その他
アニメ
ゲーム
マンガ
アイドル
映画
音楽
書籍
演劇
ファッション
社会学
カメラ
車・バイク
電車
旅行
釣り
歴史
アート
デザイン
動物
その他
ハウツー
レシピ
グルメ
恋愛
マネー
節約
健康・医療
教育
ペット
起業・ベンチャー
経営
マーケティング
会計・人事
法務
就職・転職
語学・資格
ネタ
お笑い
大喜利
画像・動画
やってみた
その他
ログ
日記
思い出
雑談
メモ
飲み会
議事録
イベント
セミナー
復興
原発
支援
政府
自治体
トップ
>
トップ
>
AKB48
> Androidアプリの内部動作に関する情報(2)
2010/04/10 12:49:21
編集可能
android
+
Androidアプリの内部動作に関する情報(2)
AkioHoshiのAndroidの内部動作モデルに関する質問に対して、今度は組み込みJavaやLinuxで豊富な経験をお持ちのtetsu_kobaさんが情報を寄せて頂きました。情報をまとめてみます。いままでの経緯はこちら。
http://togetter.com/li/13467
by
AkioHoshi
23 fav
8970 view
お気に入りに登録ならここをクリック!
まとめ
メニューを開く
一括削除
皆さまに質問:iPhoneOS4.0のマルチタスク化で、改めて
#Android
の動作モデルに興味が湧きました。Dalvik VMの各インスタンスがそれぞれLinuxプロセスとして動きずっとメモリ常駐、との理解で合ってますか? また良い資料があれば教えてくださいませんか?
返信する
RTする
ふぁぼる
AkioHoshi
2010/04/09 18:46:50
@AkioHoshi
Google I/O 2008での Anatomy&Physiology of an Android
http://bit.ly/6dDKXL
と Dalvik VM Internals
http://bit.ly/bPqWN
が未だに一番詳しいです。
返信する
RTする
ふぁぼる
androidzaurus
2010/04/09 19:12:10
Androidの動作モデルに関するGoogle I/Oの発表資料を見てます。今更ながら改めて見直すと、JavaでもLinuxでもない。独自OSぐらいに思った方がいいですね。現実的でモダンで独創的。しかもオープンソース。
返信する
RTする
ふぁぼる
AkioHoshi
2010/04/09 22:47:41
Androidの動作モデルの件、Dan Bornsteinの "Dalvik VM Internals"
http://bit.ly/bPqWN
にいは "OS without swap space" との問題意識とメモリ効率についての議論があり、興味深く見ました。
返信する
RTする
ふぁぼる
AkioHoshi
2010/04/09 23:03:56
亀レスですが
http://bit.ly/9vW7Cf
の 「androidの画面描画機構をチューニングする!」の資料が一部役に立つかも QT
@AkioHoshi
: 皆さまに質問:… Dalvik VMの各インスタンスがそれぞれLinuxプロセスとして動きずっとメモリ常駐、との…
返信する
RTする
ふぁぼる
mryo0826
2010/04/10 04:24:40
@mryo0826
情報ありがとうございます。見てみます。なお、今まで頂いた情報を
http://bit.ly/aK7kng
にまとめています。
返信する
RTする
ふぁぼる
AkioHoshi
2010/04/10 07:06:04
.
@AkioHoshi
DalvikVMについて。ZygoteのプロセスはDalvikVMそのもののインスタンス。Javaのプログラムを実行するプロセスはZygoteからforkされる。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:23:19
@tetsu_koba
ありがとうございます。Anatomy&Physiology of an Android
http://bit.ly/6dDKXL
のスライドpp.82-94 あたりが関係ありそうですね。
返信する
RTする
ふぁぼる
AkioHoshi
2010/04/10 10:35:10
このときLinuxのシステムコールのforkが使用されるが、exec系は使われない。なので、プロセスの中のメモリの初期状態はZygoteと同じ。書き込みがあったところだけCopyOnWriteのしくみが働く。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:26:35
Zygoteは通常必要になる全てのダイナミックリンクライブラリがあらかじめロードされている。だから新しいJavaのプロセスは最初から必要なダイナミックリンクライブラリがすでにメモリ上にある状態から開始される。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:28:59
Zygotoは時々明示的にガベージコレクションを行っている。これも新しいJavaプロセスのJavaのヒープメモリが「綺麗な」状態から始まるようにするための工夫だと思われる。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:30:28
どんどん呟いてー QT
@tetsu_koba
: .
@AkioHoshi
DalvikVMについて。ZygoteのプロセスはDalvikVMそのもののインスタンス。Javaのプログラムを実行するプロセスはZygoteからforkされる。
返信する
RTする
ふぁぼる
androidzaurus
2010/04/10 10:30:30
Javaのプログラムを動かすためにはDalvikVMをはじめとしてたくさんのダイナミックリンクライブラリを必要とするのでメモリの使用量は普通のネイティブのプログラムよりも大きくなる。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:33:24
しかし、たくさんのJavaプログラムが動作している状況では全てのリードオンリーのコードとデータはJavaプロセスの間で共有されるのでトータルのメモリ使用量は節約できる。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:34:06
個々のJavaプログラムが新たに消費するメモリ量はZygoteからの差分だけ。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:35:06
このようにDalvikVMはLinuxの仮想メモリの仕組みを十二分に活用している。システムコール mmap がカナメ。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:37:30
imodeなどのJavaVMは搭載するOS間の互換性を重視するために、このような仮想メモリを活用する実装はできなかったと思われる。最初に携帯にJavaが載った頃のOSには仮想メモリの仕組みはなかった。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:40:46
Androidのダイナミックリンクライブラリも通常のPCのLinuxとは異なる。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:41:54
@tetsu_koba
さんがかっこよすぎる。
返信する
RTする
ふぁぼる
androidzaurus
2010/04/10 10:42:51
最初からシステムに存在するダイナミックリンクライブラリはあらかじめ重ならないようにロードアドレスが決められている。つまりprelinkされている。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:43:33
普通のPCのLinuxでは世の中の全てのダイナミックリンクライブラリを重ならないようにアドレスを決めようするとユーザーメモリのアドレス空間に入りきれなくなる。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:51:02
なので、プロセスごとにダイナミックリンクのprelinkを行っている。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:52:24
Androidの場合は同時に使う可能性のあるダイナミックリンクライブラリを全て並べてもユーザーメモリ空間からはみ出ることはないことを前提にしてよい。なのではるかに簡単な仕組みになっている。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:55:03
さらに言えば、AndroidのダイナミックリンクのしくみはZygoteに対して最適化すればよいという割り切りができる。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:57:12
これもそれ以前の携帯とは設計思想が大きくことなるところ。JavaVMは後から追加されたものなので、JavaVMのほうが既存のしくみにあわせるしかなかった。
返信する
RTする
ふぁぼる
tetsu_koba
2010/04/10 10:58:39
Content from Twitter
残りを読む(8)
2011年を振り返ろう!傑作まとめランキングベスト20をこちらで公開中だよ。
みんなのおすすめ商品
商品を編集
おすすめ商品を登録する
設定を変更する
Check
お気に入り
いいね
うーん
ブログ等に貼付ける?
iframe版
拡張版
new
張付けプレビュー
コメント
ツイート追加。
AkioHoshi
2010/04/10 13:12:17
コメントを入力してください。
Twitterにも投稿する
関連するオススメまとめ
Androidアプリの内部動作に関する情報(1)
Androidの有料アプリの金額の上限と下限について
Androidの◯×ゲームアプリを作ってみるよ!!
#ChibAndroidまとめ(2011年6月19日~21日)
#ChibAndroidまとめ(2011年6月30日~7月2日)
powered by Preferred Infrastructure
まとめを作成する
@togetter_jp
プロフィール
まだ自己紹介が設定されていません。
AkioHoshi
twitter
rss
マイタグ
: 設定されていません。
このユーザの更新状況や活動をチェック!
フォローしている
0
フォローされている
0
まとめ
5
お気に入り
1
コメント
3
モバイルエージェントが普及しない理由はGeneral Magicの基本特許
Androidアプリの内部動作に関する情報(2)
Androidアプリの内部動作に関する情報(1)
竹内郁雄先生の最終講義に関するツイート集
日本の家電大手にはなぜiPhone級のモノが作れなかったのか
もっと見る
安永航一郎さんの手塚治虫憑依ツイート
モバイルエージェントが普及しない理由はGeneral Magicの基本特許
Androidアプリの内部動作に関する情報(2)
Androidアプリの内部動作に関する情報(1)
注目のまとめリスト
長船蒼一郎くん(小6)「橋下市長は平成の伊達成実」反応まとめ
本を手にとりたくなる売場の演出について
nissan氏とNHK_PR氏のやりとりにちょっと萌えた。
#男子鎖骨晒し祭 さらした野郎どもリスト
漫画の日
勘と電子レンジだけでプリン作ってみた☆
トゥギャッター通信
第64回「ネコストーブとクレカトラブル」
第63回「iPhone爆発と震災の備え」
第62回「byeハドソンとエロ駅弁」
第61回「謎の雲とセンター試験」
第60回「江戸ハックとお雑煮」
トゥギャッターからのお知らせ
とっても簡単!はじめてのトゥギャッター..
まとめへのフィードバック機能がつきました!
まとめ作成画面でつぶやきへの返信の流れ..
トゥギャッターのまとめは「はてなダイア..
t.coやbit.lyなど、短縮された..
過去のアーカイブ
2012-02-09の人気まとめ
2012-02-08の人気まとめ
2012-02-07の人気まとめ
2012-02-06の人気まとめ
2012-02-05の人気まとめ
最近追加された商品
ジュニアのための考える柔道―一本をとるヒント
柔道の教科書―いちばんわかりやすい!
柔道組み手・体さばき上達法―無敵王者が伝授する奥義のすべて (B・B MOOK 751 スポーツ..
柔道 組み手入門 (試合に勝つための実戦テクニックシリーズ)
鳥居智男 インテリジェンス柔道 寝技篇 上巻 [DVD]
UNIDEN 地震津波警報機 EWR200
コメント