Your SlideShare is downloading. ×
Light talk @ coscup 2011 : Incremental Global Prelink for Android
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Light talk @ coscup 2011 : Incremental Global Prelink for Android

1,194
views

Published on

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,194
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
54
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Incremental Global Prelink for Android Kito Cheng kito@0xlab.org
  • 2. Who am I ? Kito
  • 3. Who am I ? 學術奴隸 @ 熱血工讀生 @天大地大台科大 0xlab
  • 4. Incremental Global Prelink for Android ???????
  • 5. Incremental Global Prelink for Android ??????? 這是碩士論文題目嗎 ?
  • 6. Incremental Global Prelink for Android 先來看一下什麼是 link
  • 7. 執行檔啟動流程執行檔讀入記憶體 Loader libc/libm/ libdvm...載入相關動態函式庫 Dynamic Linker 程式啟動時間 更新符號位址(Relocation) printf, sin, cos, ... Linker 做的事就 開始執行 ! 通通叫 link
  • 8. 執行檔啟動流程執行檔讀入記憶體 Loader載入相關動態函式庫 Dynamic Linker 程式啟動時間 更新符號位址(Relocation) 開始執行 !
  • 9. 所以應該大概知道都 link 是啥了唄 !Incremental Global Prelink for Android
  • 10. 所以應該大概知道都 link 是啥了唄 !Incremental Global Prelink for Android pre : 預先 ...
  • 11. 所以應該大概知道都 link 是啥了唄 !Incremental Global Prelink for Android pre : 預先 ... Prelink : 預先 link!
  • 12. 執行檔啟動流程 Prelink執行檔讀入記憶體 Loader = Link 時間減少載入相關動態函式庫 Dynamic Linker 程式啟動時間 更新符號位址(Relocation) 開始執行 !
  • 13. 執行檔啟動流程 Prelink執行檔讀入記憶體 Loader = Link 時間減少載入相關動態函式庫 Dynamic Linker 程式啟動時間 更新符號位址(Relocation) Link 時間減少 = 程式啟動變快 ! 開始執行 !
  • 14. So what?Prelink = Link 時間減少 = 程式啟動變快 !
  • 15. So what?Prelink = Link 時間減少 = 程式啟動變快 ! Android 開機要載入很多程式
  • 16. So what?Prelink = Link 時間減少 = 程式啟動變快 ! Android 開機要載入很多程式 程式 Prelink 後啟動速度變快
  • 17. So what?Prelink = Link 時間減少 = 程式啟動變快 ! Android 開機要載入很多程式 程式 Prelink 後啟動速度變快 Prelink 後 Android 開機變快 !!
  • 18. 其實 ...你手上的 Android 已經有使用 Prelink 了
  • 19. 其實 ...你手上的 Android 已經有使用 Prelink 了 所以我是來騙台錢的 XD
  • 20. 其實 ...你手上的 Android 已經有使用 Prelink 了 所以我是來騙台錢的 XD
  • 21. 但目前 Android 使用的是 local prelink !Incremental Global Prelink for Android
  • 22. 但目前 Android 使用的是 local prelink !Incremental Global Prelink for Android
  • 23. 但目前 Android 使用的是 local prelink !Incremental Global Prelink for Android Local ( 本地 ) vs Global ( 全球 )
  • 24. 但目前 Android 使用的是 local prelink !Incremental Global Prelink for Android Local ( 本地 ) vs Global ( 全球 ) 名稱大勝 ( 誤 )
  • 25. Local ( 本地 ) vs Global ( 全球 ) void foo (){ printf(“fooooo”); 共兩個 Relocation libc.so printf bar(); printf bar } libfoo.so Local Prelink: foo 還有一個 Relocation bar printf 勝 Global Prelink: 沒半個 Relocation!
  • 26. Local ( 本地 ) vs Global ( 全球 ) 只能處理同檔案資訊 vs 可處理跨檔案資訊
  • 27. 所以到底多厲害 ? 27
  • 28. 所以到底多厲害 ?聽說在 Nexus S 上開機 可以快接近兩秒 28
  • 29. 所以到底多厲害 ?聽說在 Nexus S 上開機 可以快接近兩秒 ????? 29
  • 30. 所以到底多厲害 ? 聽說在 Nexus S 上開機 可以快接近兩秒 ?????因為我是個窮阿宅沒有 Android 手機 ( 泣 30
  • 31. 還是搞不懂在幹嘛耶 !Incremental Global Prelink for Android
  • 32. 還是搞不懂在幹嘛耶 !Incremental Global Prelink for Android用了後開機 / 程式啟動會變快就對了 XD
  • 33. Incremental Global Prelink for Android 被遺忘了 XD
  • 34. 也要 ! Open Source !不知道啥時會 open 就是了 XD