SlideShare a Scribd company logo
Androidの中身
                           第26回NaCl社内勉強会

                              中村 成洋
                          ネットワーク応用通信研究所



Powered by Rabbit 0.6.1
今日のアジェンダ
今日のアジェンダ
 Androidの中身の話
 DalvikVMについて少し




                  2/19
Androidの中身
Linuxカーネル
 基本的にLinuxカーネルのみ使っている
 たとえばglibcは同梱していない
 bionicというBSD libcを改良したものを使
 う
  mallocはdlmalloc




                          4/19
Linuxデバイスドライバ
 ashmem
   Anonymous Shared Memory Subsystem(無
   名共有メモリサブシステム)
   このデバイスに対してmmapするとtmpfs経由で
   メモリ確保できる
   pin,unpinで簡単にキャッシュの実装ができるらし
   い
   Javaレベルからは「android.os.MemoryFile」で
   つかえる
                                     5/19
ashmemの便利なシーン
 Javaはメモリ管理が隠蔽されてしまっている
 組み込みでは困ることもあるよね
  OSからメモリを取って直接管理したいとか

 そんなときに使えそう




                         6/19
マルチタスク
 iPhoneはシングルタスク。。
 Androidはマルチタスク!
  ってか、これが普通なんですよね?




                     7/19
実現方法
 Linuxのfork()を使うよ
 1アプリ、1プロセス
 スレッドとかではない




                    8/19
なんでforkか?
 安全だから
 アプリに問題があって落ちても他のプロセス
 に影響を与えにくい
 Linuxにその辺り任せとけばいいじゃん




                        9/19
DalvikVM
DalvikVMって何?
 Android上のVM
 アプリはこのVM上で動作する




                  11/19
DalvikVM作者
 Dan Bornstein作
   Dalvikはアイスランド語
   「谷間の入り江」って意味
   地名




                    12/19
特徴
 JVMじゃない
  Javaバイトコードを使わない

 .dexファイルという独自形式のバイトコード
  jarを更に圧縮したようなファイル構成になってい
  るそう




                        13/19
特徴(2)
 レジスタマシン
  最近の主流はスタックマシン




                  14/19
なぜレジスタマシン?
 端末がARMなんで〜
 レジスタマシンにした方が効率いいし〜
  VM演算部分は全部ARMアセンブラで書いている
  最近はx86にも対応してる




                       15/19
特徴(3)
 GCは「マークスイープ」
  マークはBitmapMarking




                      16/19
なぜBitmapMarkingか?
 copy-on-write問題
   あれ、なんか聞いたことある。。

 アプリforkしまくり
 GCでマークすると共有メモリが私有領域に
 コピーされちゃう
 BitmapMarkingしましょう

                      17/19
詳細はGC本を待て!
おしまい

More Related Content

ODP
97th Kernel code reading party, TOMOYO Linux Night
PPTX
マイコンと機械学習を使って行動認識システムを作ろう
PDF
20090513 Cmsnight
PDF
VSUG Leaders Summit 2008 - Ustream
PPTX
090501Homework 구글
PPTX
TodayでLDR読んでみよう
PDF
Introduction to Android (in tamil)
PDF
三国志演義 第9集
97th Kernel code reading party, TOMOYO Linux Night
マイコンと機械学習を使って行動認識システムを作ろう
20090513 Cmsnight
VSUG Leaders Summit 2008 - Ustream
090501Homework 구글
TodayでLDR読んでみよう
Introduction to Android (in tamil)
三国志演義 第9集

What's hot (20)

PDF
Web技術勉強会9回目2(Slideshare用)
PDF
CAPとBASEとEventually Consistent
PDF
ケータイサイトのはなし(入門編)
PDF
第23回WebSig会議「ストレスフリーのWebプロジェクト Web担当者に出来ること、制作会社に望むこと 」
PDF
ประวัติปฏิณญา
PDF
イケテルRuby開発環境
PDF
Howtousenetboss
PDF
How To Survive In A Company As A Mac
PPT
말레이시아 Ytl증권서비스방향
PDF
Ppt Pdf
PDF
Solutions@ Web Slides (Chinese)
PPTX
每隻I Phone平均裝53個應用程式
PPTX
European soccer and money
PDF
FOSS4G LT - Invitation to ActionScript Programming
PDF
Calendar
PDF
Ppt Pdf
PDF
Do The Debian Live!
PDF
経緯度・エリアマッチング技術(080730第2回ジオメディアサミットライトニングトーク)
PDF
ICTA Project
PDF
コンサルティングと私 Lightning Talk
Web技術勉強会9回目2(Slideshare用)
CAPとBASEとEventually Consistent
ケータイサイトのはなし(入門編)
第23回WebSig会議「ストレスフリーのWebプロジェクト Web担当者に出来ること、制作会社に望むこと 」
ประวัติปฏิณญา
イケテルRuby開発環境
Howtousenetboss
How To Survive In A Company As A Mac
말레이시아 Ytl증권서비스방향
Ppt Pdf
Solutions@ Web Slides (Chinese)
每隻I Phone平均裝53個應用程式
European soccer and money
FOSS4G LT - Invitation to ActionScript Programming
Calendar
Ppt Pdf
Do The Debian Live!
経緯度・エリアマッチング技術(080730第2回ジオメディアサミットライトニングトーク)
ICTA Project
コンサルティングと私 Lightning Talk
Ad

Viewers also liked (10)

PDF
Bond の v4 について
PDF
Pf部第24回資料
PDF
Binderのはじめの一歩
PPTX
Androidアプリ解析の基礎 公開用
PDF
Binderのはじめの一歩とAndroid
PDF
Behaviour of the track in hot weather. Rail thermal forces for jointed and CW...
PDF
Malwat4 20130223 analyzing_android_malware
PDF
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
PPTX
進化するArt
PDF
Xamarin によるクロスプラットフォームモバイルアプリ開発(2014.06)
Bond の v4 について
Pf部第24回資料
Binderのはじめの一歩
Androidアプリ解析の基礎 公開用
Binderのはじめの一歩とAndroid
Behaviour of the track in hot weather. Rail thermal forces for jointed and CW...
Malwat4 20130223 analyzing_android_malware
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
進化するArt
Xamarin によるクロスプラットフォームモバイルアプリ開発(2014.06)
Ad

More from Narihiro Nakamura (20)

PDF
PDF
PDF
Ruby's GC 20
PDF
桐島、Rubyやめるってよ
PDF
Rubyによる本気のGC
PDF
Fxxking gc.c
PDF
Parallel worlds of CRuby's GC
PDF
Parallel worlds of CRuby's GC
PDF
G1GCへ伸びていた「いばらの道」
PDF
CRubyGCの並列世界
PDF
円環の理(Garbage Collection)
PDF
地獄のGC本スピンオフ
PDF
シャイなRubyistがRubyKaigiでできること
PDF
われわれは、GCをX倍遅くできる
PDF
GCが止まらない
PDF
GC本をGCしないための100の方法
PDF
GC生誕50周年を祝って
PDF
GC本のツクリカタ
PDF
シャイなRubyistにできること
Ruby's GC 20
桐島、Rubyやめるってよ
Rubyによる本気のGC
Fxxking gc.c
Parallel worlds of CRuby's GC
Parallel worlds of CRuby's GC
G1GCへ伸びていた「いばらの道」
CRubyGCの並列世界
円環の理(Garbage Collection)
地獄のGC本スピンオフ
シャイなRubyistがRubyKaigiでできること
われわれは、GCをX倍遅くできる
GCが止まらない
GC本をGCしないための100の方法
GC生誕50周年を祝って
GC本のツクリカタ
シャイなRubyistにできること

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