Android Notes [system view]

android系统是一个典型的嵌入式linux,基础是linux kernel,整个android框架运行于一个称为dalvik的虚拟机之上,因此app是平台无关的,如果没有使用特殊的硬件,在armv6上运行的app可以直接放在android on mips中一致运行。事实上android为常用的硬件(gps,加速度感应等)提供了jni的接口,移植时只要重新把硬件操作包裹成.so供框架调用。 flash分为几个block: # cat /proc/mtd dev:    size   erasesize  name mtd0: 00040000 00020000 “misc” mtd1: 00500000 00020000 “recovery” mtd2: 00280000 00020000 “boot” mtd3: 05a00000 00020000 “system” mtd4: 05000000 00020000 “cache” mtd5: 127c0000 00020000 “userdata” mtd6: 20000000 00020000 “msm_nand” # boot存放kernel和ramdisk,dump出来后需要split_bootimg.pl或者unpack-H.pl来把两者分离出来。boot区的结构如下: format (from bootimg.h) ** +—————–+ ** | boot header     | 1 page ** [...]