Click here to load reader
Upload
denise-ellis
View
394
Download
0
Embed Size (px)
DESCRIPTION
ANDROID 底层开发专题 1 Android 移植. 刘健培 北京邮电大学 [email protected] 2013.05. 本次内容. Android 底层开发 专题 之 Android 移植 Android 移植概念 Android 移植流程 Android 移植示例. 参考资料. 源代码 Linux 源代码 Android 源代码 图书 Linux 设备驱动程序 Android 系统源代码情景分析 网站 Android on TI OMAP http://elinux.org/Android_on_OMAP - PowerPoint PPT Presentation
Citation preview
ANDROID
ljp020993@gmail.com2013.05ANDROID1AndroidAndroidAndroidAndroidAndroidAndroidLinuxAndroidLinuxAndroidAndroid on TI OMAPhttp://elinux.org/Android_on_OMAPAndroid on X86http://www.android-x86.org/beagleboard http://beagleboard.org/ Rowboathttp://code.google.com/p/rowboat/http://hala01.com/
AndroidAndroidLinux/bootloaderLinuxHALNDKJ2ME->Android
AndroidAndroidArchISAAndroid-x86http://www.android-x86.org/Android-mips http://developer.mips.com/android/SocSOCAndroid on OMAPhttp://elinux.org/Android_on_OMAPAndroid for MSMhttps://www.codeaurora.org/projects/all-active-projects/android-msmAndroid on NVIDIAs Tegrahttps://developer.nvidia.com/tegra-android-development-packBoardSOCRowboathttp://code.google.com/p/rowboat/BeagleBoardhttp://beagleboard.org/Device()CyanogenModhttp://www.cyanogenmod.org/MIUIhttp://www.miui.com/AndroidBootloaderLinuxAndroid//Android/AndroidRAMROMbootloaderlinuxAndroidTIMSMNVIDIAAndroidAndroidLinuxLinuxAndroidbuilding environmentLinuxlinuxUbuntu LinuxEclipseviGDBDDDcscopestracereadelf/objdump/objcopy/nmTFTPBOOTP/DHCPNFS
AndroidDIYLinuxLinuxlinuxlinuxlinuxLinuxGNU makeapt-get/wget/rpm tar./configuremakemake installMakeMakefileEmbedded Linux System
Embedded Linux System
Bootloader BootloaderBootloaderDRAMDRAMDRAMFlashRAMBootloaderFlashRAMldCRAMCDRAMBootloaderLinuxbootloaderU-BootLiloGRUBBootloaderUARTUSBlinux kernel
BootloaderU-Boot U-BootI/OU-BootSOCmakefileJtagGDBLinux kernelLinux kernel Linux kernelVFS Linux kernelLinux kernel
Linux kernel
Linux kernelPure Embedded Linux KernelAndroid Runtime SystemLinux KernelAndroidandroid kernel patcheslinux device driverAndroid libraryAndroid FrameworkAndroid applicationAndroidLinuxRecent (~2.6.23) Linux kernel with Thumb & MMU & EABI etc supportAndroidLinux Kernel3AndroidGoldfishG1Pure Linux KernelAndroidKernelAndroidLinux KernelAndroidlinux device driverAndroid libraryAndroid FrameworkAndroid applicationside effectsAndroid2Linux kernelAndroid HAL
linuxLinux devfssysfsudevopenreadwritecloselinux
AndroidAndroidAshmem/dev/ashmem, malloc: kernelmm/ashmeme.cC libutilssystem/core/libcutils/ashmeme-*.c Loggerlog/dev/log/main, /dev/log/event, /dev/log/radio kernel/drivers/misc/logger.clogcatsystem/core/logcatLogger BinderOpenbinderAndroidIPCAndroidBinder/dev/binder, IPC,AndroidIPClibutils(framework/base/libs/utils)Service ManagerBinder Android Power ManagementPMLow Memrry KillerAndroid PMEM AndroidAndroidFramebufferFramebufferLCDFB/dev/fbXAndroid/dev/graphic/fb0,initlibuiFBioctlmmapwriteioctl/mmapFramebufferwriteEventEventEvent/dev/input/eventX,initlibuiread,ioctl,pollEventAndroidV4L2 Camera & VideoV4L2AndroidV4L2CameraOverlayioctl, mmapV4L2OSSOpen Sound System ioctl/read/write/dev/mixer, /dev/dsp, /dev/xxxAndroidOSSOSSAndroid AudioALSAOSSOSSioctlALSAALSAALSAAndroidALSAAndroid>Audio>ALSA>ALSAAndroidMTDMemory Technology Device,LinuxFlash(/dev/mtdX)(/dev/block/mtdblockXMTD + HCISCOL2CAPBNEPSDIO/UART/USBWlansocketWifiAndroidmoduleAndroidFramebuffer
datasheetGPIO Android
AndroidAndroidAndroidLinux4Service ManagerNativeZygoteJava VMSystem ServerAndroid HOME
AndroidJava applicationJava frameworkJniLib.so
AndroidSurface
AndroidJNI JNIJava Native InterfaceJAVA Java JNIJava
Android Makefile &Build SystemMakefilemake AndroidMakefilebuild/core/mkbuild systemAndroid build systemFrameworkCPU ARM/PPC/X86 C/C++/Java static lib/share lib/execute/Java/Java library
Android Makefile &Build SystemMakefile productproduct product toolchain(*-.mk)/BoardConfig.mk module ruleimageAndroid build system
Build systemAndroid product config (user package)target TARGET_ARCH, TARGET_OS, TARGET_BUILD_TYPE, TARGET_PREBUILT_TAGhost HOST_OS, HOST_ARCH, HOST_BUILD_TYPE, HOST_PREBUILT_TAGtargetlinux-arm-cccflagincludehost
Build system host targetCC++JavaPythonshellstatic library, dynamic libraryjava libraryjava app
mkAndroid .mkmodulepackagemodule/packageAndroid .mkAndroidProducts.mkproduct product product applicationtarget_-.mk, host_-.mk and -.mkCPU BoardConfig.mkproduct driver buildspec.mksource product module/package main.mkbuild/core/ Build system
/J2MEC/C++ /J2MEAndroidAndroidSun Java ME AndroidMediaPlayermp3midwavmp4J2ME / AndroidSQLiteSun J2MERecord Management System (RMS) Androidimport SunI/OInputStreamSunURLConnection /C/C++Android NDKandroid NDKC/C++configureNDKrestrictSTLandroid.mkNDK-buildNDKc.soadb push android/system/libInitinit.rc
DmesgAndroidprintkLogcat
AndroidCTSSDFLASH