let's play with goldfish

Download Let's play with Goldfish

Post on 20-May-2015

2.846 views

Category:

Technology

3 download

Embed Size (px)

DESCRIPTION

How to build android emulator And quick review of Eclair source release.

TRANSCRIPT

  • 1. Goldfish 2009.11.30 1

2. Android Eclair(Android2.0) 2 3. Who am I? N OS iTRON Java Linux gcc http://d.hatena.ne.jp/embedded/ 20083 http://www.kmckk.co.jp/ 4. Goldfish Eclair() VFParmv7 Webkit V8 JavaScript DalvikVMJIT4 5. Goldfish ( emulator) CPUarm926 6. envsetup.sh$cdmydroid$sourcebuild/envsetup.sh$lunchgenericeng$timemakej42>&1|teemake.log$emulator& 7. Eclair() 2009.11.15 VFParmv7 Webkit V8 JavaScript DalvikVMJIT 8. ARM DalvikVM armv4t armv5te (default) armv5te-vfp armv7-a TARGET_ARCH_VARIANT 9. VFP $exportTARGET_ARCH_VARIANT=armv5tevfp$timemakej42>&1|teemake.log $emulator& VFP VFP(-msoft-flaot) Kernel, qemuOK 10. armv7a$exportTARGET_ARCH_VARIANT=armv7a $timemakej42>&1|teemake.log$emulatorkernelprebuilt/androidarm/ kernel/kernelqemuarmv7& Kernelarmv7 gcc4.4.0armv7 11. Webkit V8 Javascript http://code.google.com/intl/ja/apis/v8/ C++ X86, x86-64, ARM ARM32bit(Thumb 12. V8$exportJS_ENGINE=v8 $timemakej42>&1|teemake.log$emulator& 13. V8 webkit/v8Binding/Android.libv8.mk LOCAL_CFLAGS += -DENABLE_DISASSEMBLER webkit/v8Binding/src/flag_definitions.h print_code true print_builtin_code true 14. V8 I/v8(201):Builtin:Illegal I/v8(201):kind=BUILTIN I/v8(201):name=Illegal I/v8(201):Instructions(size=40) I/v8(201):0x45a509200e59fc014ldrip,[pc,#+20] I/v8(201):0x45a509244e58c1000strr1,[ip,#+0] I/v8(201):0x45a509288e2800001addr0,r0,#1 I/v8(201):0x45a5092c12e59f100cldrr1,[pc,#+12] I/v8(201):0x45a5093016e59fc00cldrip,[pc,#+12] ;;code:STUB,CEntry,minor:0 I/v8(201):0x45a5093420e12fff1cbxip I/v8(201):0x45a509382403000003constantpoolbegin I/v8(201):0x45a5093c28aa438d10constant I/v8(201):0x45a5094032aa2d94e1constant I/v8(201):0x45a509443645a50120constant I/v8(201):32bitARM$ adb logcat 15. Dalvik VmJIT C ARM Armv5te (Thumb) Armv5te-vfp (Thumb + VFP) armv7-a(Thumb2) V8 16. JIT$exportWITH_JIT=true $timemakej42>&1|teemake.log$emulator& 17. JIT vm/Init.c setCommandLineDefaults() gDvmJit.printMe = true; 18. JITD/dalvikvm(97):dalvikoffset:0x0062@agetbyte D/dalvikvm(97):0x44a83544(0018):ldrr2,[r5,#124] D/dalvikvm(97):0x44a83546(001a):strr3,[r5,#80] D/dalvikvm(97):0x44a83548(001c):movr3,#128 D/dalvikvm(97):0x44a8354a(001e):ldrr3,[r5,r3] D/dalvikvm(97):0x44a8354c(0020):cmpr2,#0 D/dalvikvm(97):0x44a8354e(0022):beq0x44a835b6 D/dalvikvm(97):0x44a83550(0024):ldrr0,[r2,#8] D/dalvikvm(97):0x44a83552(0026):addr2,r2,#16 D/dalvikvm(97):0x44a83554(0028):cmpr3,r0 D/dalvikvm(97):0x44a83556(002a):bcs0x44a835b6 D/dalvikvm(97):0x44a83558(002c):ldrsbr0,[r2,r3]$ adb logcat 19. JITDEX D/dalvikvm(97):dalvikoffset:0x0062@agetbyte D/dalvikvm(97):0x44a83544(0018):ldrr2,[r5,#124] D/dalvikvm(97):0x44a83546(001a):strr3,[r5,#80] D/dalvikvm(97):0x44a83548(001c):movr3,#128 D/dalvikvm(97):0x44a8354a(001e):ldrr3,[r5,r3] D/dalvikvm(97):0x44a8354c(0020):cmpr2,#0 null D/dalvikvm(97):0x44a8354e(0022):beq0x44a835b6 D/dalvikvm(97):0x44a83550(0024):ldrr0,[r2,#8] D/dalvikvm(97):0x44a83552(0026):addr2,r2,#16 D/dalvikvm(97):0x44a83554(0028):cmpr3,r0 D/dalvikvm(97):0x44a83556(002a):bcs0x44a835b6 D/dalvikvm(97):0x44a83558(002c):ldrsbr0,[r2,r3] DEX 20. JIT JIT 21. ... 3 VM 22. JIT ... 23. Thumb2EE JITarmv7 null (SMP) JIT 24.