Androidの中身-第26回NaCl社内勉強会

2,637 views
2,564 views

Published on

android inside

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,637
On SlideShare
0
From Embeds
0
Number of Embeds
190
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Androidの中身-第26回NaCl社内勉強会

  1. 1. Androidの中身 第26回NaCl社内勉強会 中村 成洋 ネットワーク応用通信研究所 Powered by Rabbit 0.6.1
  2. 2. 今日のアジェンダ
  3. 3. 今日のアジェンダ Androidの中身の話 DalvikVMについて少し 2/19
  4. 4. Androidの中身
  5. 5. Linuxカーネル 基本的にLinuxカーネルのみ使っている たとえばglibcは同梱していない bionicというBSD libcを改良したものを使 う mallocはdlmalloc 4/19
  6. 6. Linuxデバイスドライバ ashmem Anonymous Shared Memory Subsystem(無 名共有メモリサブシステム) このデバイスに対してmmapするとtmpfs経由で メモリ確保できる pin,unpinで簡単にキャッシュの実装ができるらし い Javaレベルからは「android.os.MemoryFile」で つかえる 5/19
  7. 7. ashmemの便利なシーン Javaはメモリ管理が隠蔽されてしまっている 組み込みでは困ることもあるよね OSからメモリを取って直接管理したいとか そんなときに使えそう 6/19
  8. 8. マルチタスク iPhoneはシングルタスク。。 Androidはマルチタスク! ってか、これが普通なんですよね? 7/19
  9. 9. 実現方法 Linuxのfork()を使うよ 1アプリ、1プロセス スレッドとかではない 8/19
  10. 10. なんでforkか? 安全だから アプリに問題があって落ちても他のプロセス に影響を与えにくい Linuxにその辺り任せとけばいいじゃん 9/19
  11. 11. DalvikVM
  12. 12. DalvikVMって何? Android上のVM アプリはこのVM上で動作する 11/19
  13. 13. DalvikVM作者 Dan Bornstein作 Dalvikはアイスランド語 「谷間の入り江」って意味 地名 12/19
  14. 14. 特徴 JVMじゃない Javaバイトコードを使わない .dexファイルという独自形式のバイトコード jarを更に圧縮したようなファイル構成になってい るそう 13/19
  15. 15. 特徴(2) レジスタマシン 最近の主流はスタックマシン 14/19
  16. 16. なぜレジスタマシン? 端末がARMなんで〜 レジスタマシンにした方が効率いいし〜 VM演算部分は全部ARMアセンブラで書いている 最近はx86にも対応してる 15/19
  17. 17. 特徴(3) GCは「マークスイープ」 マークはBitmapMarking 16/19
  18. 18. なぜBitmapMarkingか? copy-on-write問題 あれ、なんか聞いたことある。。 アプリforkしまくり GCでマークすると共有メモリが私有領域に コピーされちゃう BitmapMarkingしましょう 17/19
  19. 19. 詳細はGC本を待て!
  20. 20. おしまい

×