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

What's hot (20)

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

Viewers also liked (10)

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

More from Narihiro Nakamura (20)

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

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