`
jiagou
  • 浏览: 2523557 次
文章分类
社区版块
存档分类
最新评论

android framework

 
阅读更多
framework 目录为框架层 代码,framework 为android四个层次中的第二层。




frameworks/
├── base
│ ├── Android.mk
│ ├── api
│ │ ├── 1.xml
│ │ ├── 2.xml
│ │ ├── 3.xml
│ │ ├── 4.xml
│ │ ├── 5.xml
│ │ ├── 6.xml
│ │ ├── 7.xml
│ │ ├── 8.xml
│ │ └── current.xml
│ ├── awt
│ │ ├── Android.mk
│ │ ├── com
│ │ │ └── android
│ │ ├── java
│ │ │ ├── awt
│ │ │ └── beans
│ │ ├── javax
│ │ │ └── imageio
│ │ ├── org
│ │ │ └── apache
│ │ └── resources
│ │ └── org
│ ├── build
│ │ └── jarjar-rules.txt
│ ├── camera
│ │ ├── libcameraservice
│ │ │ ├── Android.mk
│ │ │ ├── CameraHardwareStub.cpp
│ │ │ ├── CameraHardwareStub.h
│ │ │ ├── CameraService.cpp
│ │ │ ├── CameraService.h
│ │ │ ├── CannedJpeg.h
│ │ │ ├── FakeCamera.cpp
│ │ │ └── FakeCamera.h
│ │ └── tests
│ │ └── CameraServiceTest
│ ├── CleanSpec.mk
│ ├── cmds
│ │ ├── am
│ │ │ ├── am
│ │ │ ├── Android.mk
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ └── src
│ │ ├── app_process
│ │ │ ├── Android.mk
│ │ │ ├── app_main.cpp
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ └── NOTICE
│ │ ├── backup
│ │ │ ├── Android.mk
│ │ │ ├── backup.cpp
│ │ │ └── NOTICE
│ │ ├── bmgr
│ │ │ ├── Android.mk
│ │ │ ├── bmgr
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ └── src
│ │ ├── bootanimation
│ │ │ ├── Android.mk
│ │ │ ├── BootAnimation.cpp
│ │ │ ├── BootAnimation.h
│ │ │ └── bootanimation_main.cpp
│ │ ├── bugreport
│ │ │ ├── Android.mk
│ │ │ └── bugreport.c
│ │ ├── dumpstate
│ │ │ ├── Android.mk
│ │ │ ├── dumpstate.c
│ │ │ ├── dumpstate.h
│ │ │ └── utils.c
│ │ ├── dumpsys
│ │ │ ├── Android.mk
│ │ │ ├── dumpsys.cpp
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ └── NOTICE
│ │ ├── ime
│ │ │ ├── Android.mk
│ │ │ ├── ime
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ └── src
│ │ ├── input
│ │ │ ├── Android.mk
│ │ │ ├── input
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ └── src
│ │ ├── installd
│ │ │ ├── Android.mk
│ │ │ ├── commands.c
│ │ │ ├── installd.c
│ │ │ ├── installd.h
│ │ │ └── utils.c
│ │ ├── keystore
│ │ │ ├── Android.mk
│ │ │ ├── keystore.c
│ │ │ ├── keystore_cli.c
│ │ │ ├── keystore_get.h
│ │ │ └── keystore.h
│ │ ├── pm
│ │ │ ├── Android.mk
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ ├── pm
│ │ │ └── src
│ │ ├── rawbu
│ │ │ ├── Android.mk
│ │ │ ├── backup.cpp
│ │ │ └── NOTICE
│ │ ├── runtime
│ │ │ ├── Android.mk
│ │ │ ├── main_runtime.cpp
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ ├── ServiceManager.cpp
│ │ │ ├── ServiceManager.h
│ │ │ ├── SignalHandler.cpp
│ │ │ └── SignalHandler.h
│ │ ├── service
│ │ │ ├── Android.mk
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ └── service.cpp
│ │ ├── servicemanager
│ │ │ ├── Android.mk
│ │ │ ├── bctest.c
│ │ │ ├── binder.c
│ │ │ ├── binder.h
│ │ │ └── service_manager.c
│ │ ├── stagefright
│ │ │ ├── Android.mk
│ │ │ ├── audioloop.cpp
│ │ │ ├── record.cpp
│ │ │ ├── SineSource.cpp
│ │ │ ├── SineSource.h
│ │ │ ├── stagefright.cpp
│ │ │ └── WaveWriter.h
│ │ ├── surfaceflinger
│ │ │ ├── Android.mk
│ │ │ └── main_surfaceflinger.cpp
│ │ ├── svc
│ │ │ ├── Android.mk
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ ├── src
│ │ │ └── svc
│ │ └── system_server
│ │ ├── Android.mk
│ │ ├── library
│ │ ├── MODULE_LICENSE_APACHE2
│ │ ├── NOTICE
│ │ └── system_main.cpp
│ ├── core
│ │ ├── config
│ │ │ ├── debug
│ │ │ ├── ndebug
│ │ │ ├── README.txt
│ │ │ └── sdk
│ │ ├── java
│ │ │ ├── android
│ │ │ ├── com
│ │ │ ├── jarjar-rules.txt
│ │ │ └── overview.html
│ │ ├── jni
│ │ │ ├── ActivityManager.cpp
│ │ │ ├── android
│ │ │ ├── android_backup_BackupDataInput.cpp
│ │ │ ├── android_backup_BackupDataOutput.cpp
│ │ │ ├── android_backup_BackupHelperDispatcher.cpp
│ │ │ ├── android_backup_FileBackupHelperBase.cpp
│ │ │ ├── android_bluetooth_BluetoothAudioGateway.cpp
│ │ │ ├── android_bluetooth_BluetoothSocket.cpp
│ │ │ ├── android_bluetooth_common.cpp
│ │ │ ├── android_bluetooth_common.h
│ │ │ ├── android_bluetooth_HeadsetBase.cpp
│ │ │ ├── android_bluetooth_ScoSocket.cpp
│ │ │ ├── android_database_CursorWindow.cpp
│ │ │ ├── android_database_SQLiteCompiledSql.cpp
│ │ │ ├── android_database_SQLiteDatabase.cpp
│ │ │ ├── android_database_SQLiteDebug.cpp
│ │ │ ├── android_database_SQLiteProgram.cpp
│ │ │ ├── android_database_SQLiteQuery.cpp
│ │ │ ├── android_database_SQLiteStatement.cpp
│ │ │ ├── android_ddm_DdmHandleNativeHeap.cpp
│ │ │ ├── android_debug_JNITest.cpp
│ │ │ ├── android_emoji_EmojiFactory.cpp
│ │ │ ├── android_graphics_PixelFormat.cpp
│ │ │ ├── android_hardware_Camera.cpp
│ │ │ ├── android_hardware_SensorManager.cpp
│ │ │ ├── android_location_GpsLocationProvider.cpp
│ │ │ ├── android_media_AudioRecord.cpp
│ │ │ ├── android_media_AudioSystem.cpp
│ │ │ ├── android_media_AudioTrack.cpp
│ │ │ ├── android_media_JetPlayer.cpp
│ │ │ ├── android_media_ToneGenerator.cpp
│ │ │ ├── android_message_digest_sha1.cpp
│ │ │ ├── Android.mk
│ │ │ ├── android_net_ethernet.cpp
│ │ │ ├── android_net_LocalSocketImpl.cpp
│ │ │ ├── android_net_NetUtils.cpp
│ │ │ ├── android_net_TrafficStats.cpp
│ │ │ ├── android_net_wifi_Wifi.cpp
│ │ │ ├── android_nio_utils.cpp
│ │ │ ├── android_nio_utils.h
│ │ │ ├── android_opengl_GLES10.cpp
│ │ │ ├── android_opengl_GLES10Ext.cpp
│ │ │ ├── android_opengl_GLES11.cpp
│ │ │ ├── android_opengl_GLES11Ext.cpp
│ │ │ ├── android_opengl_GLES20.cpp
│ │ │ ├── android_os_Debug.cpp
│ │ │ ├── android_os_FileUtils.cpp
│ │ │ ├── android_os_MemoryFile.cpp
│ │ │ ├── android_os_ParcelFileDescriptor.cpp
│ │ │ ├── android_os_Power.cpp
│ │ │ ├── android_os_StatFs.cpp
│ │ │ ├── android_os_SystemClock.cpp
│ │ │ ├── android_os_SystemProperties.cpp
│ │ │ ├── android_os_UEventObserver.cpp
│ │ │ ├── android_pim_EventRecurrence.cpp
│ │ │ ├── AndroidRuntime.cpp
│ │ │ ├── android_security_Md5MessageDigest.cpp
│ │ │ ├── android_server_BluetoothA2dpService.cpp
│ │ │ ├── android_server_BluetoothEventLoop.cpp
│ │ │ ├── android_server_BluetoothHidService.cpp
│ │ │ ├── android_server_BluetoothService.cpp
│ │ │ ├── android_server_Watchdog.cpp
│ │ │ ├── android_text_AndroidBidi.cpp
│ │ │ ├── android_text_AndroidCharacter.cpp
│ │ │ ├── android_text_format_Time.cpp
│ │ │ ├── android_text_KeyCharacterMap.cpp
│ │ │ ├── android_util_AssetManager.cpp
│ │ │ ├── android_util_Binder.cpp
│ │ │ ├── android_util_Binder.h
│ │ │ ├── android_util_EventLog.cpp
│ │ │ ├── android_util_FileObserver.cpp
│ │ │ ├── android_util_FloatMath.cpp
│ │ │ ├── android_util_Log.cpp
│ │ │ ├── android_util_Process.cpp
│ │ │ ├── android_util_StringBlock.cpp
│ │ │ ├── android_util_XmlBlock.cpp
│ │ │ ├── android_view_Display.cpp
│ │ │ ├── android_view_Surface.cpp
│ │ │ ├── android_view_ViewRoot.cpp
│ │ │ ├── BindTest.cpp
│ │ │ ├── com_android_internal_graphics_NativeUtils.cpp
│ │ │ ├── com_android_internal_os_ZygoteInit.cpp
│ │ │ ├── com_google_android_gles_jni_EGLImpl.cpp
│ │ │ ├── com_google_android_gles_jni_GLImpl.cpp
│ │ │ ├── CursorWindow.cpp
│ │ │ ├── CursorWindow.h
│ │ │ ├── GraphicsExternGlue.h
│ │ │ ├── GraphicsRegisterGlue.h
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ ├── sqlite3_exception.h
│ │ │ ├── Time.cpp
│ │ │ └── TimeUtils.h
│ │ ├── res
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── assets
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ └── res
│ │ └── tests
│ │ ├── ConnectivityManagerTest
│ │ ├── coretests
│ │ └── hosttests
│ ├── data
│ │ ├── etc
│ │ │ ├── android.hardware.camera.autofocus.xml
│ │ │ ├── android.hardware.camera.flash-autofocus.xml
│ │ │ ├── android.hardware.camera.xml
│ │ │ ├── android.hardware.location.gps.xml
│ │ │ ├── android.hardware.location.xml
│ │ │ ├── android.hardware.sensor.accelerometer.xml
│ │ │ ├── android.hardware.sensor.compass.xml
│ │ │ ├── android.hardware.sensor.light.xml
│ │ │ ├── android.hardware.sensor.proximity.xml
│ │ │ ├── android.hardware.telephony.cdma.xml
│ │ │ ├── android.hardware.telephony.gsm.xml
│ │ │ ├── android.hardware.touchscreen.multitouch.distinct.xml
│ │ │ ├── android.hardware.touchscreen.multitouch.xml
│ │ │ ├── android.hardware.touchscreen.xml
│ │ │ ├── android.hardware.wifi.xml
│ │ │ ├── Android.mk
│ │ │ ├── handheld_core_hardware.xml
│ │ │ └── platform.xml
│ │ ├── fonts
│ │ │ ├── Ahem.ttf
│ │ │ ├── Android.mk
│ │ │ ├── Clockopia.ttf
│ │ │ ├── DroidSansArabic.ttf
│ │ │ ├── DroidSans-Bold.ttf
│ │ │ ├── DroidSansFallbackLegacy.ttf
│ │ │ ├── DroidSansFallback.ttf
│ │ │ ├── DroidSansHebrew.ttf
│ │ │ ├── DroidSansJapanese.ttf
│ │ │ ├── DroidSansMono.ttf
│ │ │ ├── DroidSansThai.ttf
│ │ │ ├── DroidSans.ttf
│ │ │ ├── DroidSerif-BoldItalic.ttf
│ │ │ ├── DroidSerif-Bold.ttf
│ │ │ ├── DroidSerif-Italic.ttf
│ │ │ ├── DroidSerif-Regular.ttf
│ │ │ ├── fonts.xml
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ └── README.txt
│ │ └── sounds
│ │ ├── Alarm_Beep_01.ogg
│ │ ├── Alarm_Beep_02.ogg
│ │ ├── Alarm_Beep_03.ogg
│ │ ├── Alarm_Buzzer.ogg
│ │ ├── Alarm_Classic.ogg
│ │ ├── Alarm_Rooster_01.ogg
│ │ ├── Alarm_Rooster_02.ogg
│ │ ├── AudioPackage2.mk
│ │ ├── AudioPackage3.mk
│ │ ├── AudioPackage4.mk
│ │ ├── effects
│ │ ├── F1_MissedCall.ogg
│ │ ├── F1_New_MMS.ogg
│ │ ├── F1_New_SMS.ogg
│ │ ├── F1_NewVoicemail.ogg
│ │ ├── newwavelabs
│ │ ├── notifications
│ │ ├── OriginalAudio.mk
│ │ ├── ring3.ogg
│ │ ├── Ring_Classic_01.ogg
│ │ ├── Ring_Classic_02.ogg
│ │ ├── Ring_Classic_03.ogg
│ │ ├── Ring_Classic_04.ogg
│ │ ├── Ring_Classic_05.ogg
│ │ ├── Ring_Digital_01.ogg
│ │ ├── Ring_Digital_02.ogg
│ │ ├── Ring_Digital_03.ogg
│ │ ├── Ring_Digital_04.ogg
│ │ ├── Ring_Digital_05.ogg
│ │ ├── ringer.ogg
│ │ ├── Ring_Synth_01.ogg
│ │ ├── Ring_Synth_02.ogg
│ │ ├── Ring_Synth_03.ogg
│ │ ├── Ring_Synth_04.ogg
│ │ ├── Ring_Synth_05.ogg
│ │ ├── ringtones
│ │ └── testfiles
│ ├── docs
│ │ ├── docs-documentation-redirect.html
│ │ ├── docs-redirect.html
│ │ ├── docs-redirect-index.html
│ │ ├── docs-samples-redirect.html
│ │ ├── html
│ │ │ ├── app.yaml
│ │ │ ├── community
│ │ │ ├── favicon.ico
│ │ │ ├── googleb38c1d60b7ba5d19.html
│ │ │ ├── guide
│ │ │ ├── images
│ │ │ ├── index.jd
│ │ │ ├── intl
│ │ │ ├── license.jd
│ │ │ ├── mwc2010
│ │ │ ├── offline.jd
│ │ │ ├── reference
│ │ │ ├── resources
│ │ │ ├── robots.txt
│ │ │ ├── sdk
│ │ │ ├── search.jd
│ │ │ ├── security_at_android_dot_com.txt
│ │ │ ├── shareables
│ │ │ ├── sitemap-intl.txt
│ │ │ ├── sitemap.txt
│ │ │ └── videos
│ │ └── overview-ext.html
│ ├── ethernet
│ │ └── java
│ │ └── android
│ ├── graphics
│ │ ├── java
│ │ │ ├── android
│ │ │ └── com
│ │ ├── jni
│ │ │ ├── Android.mk
│ │ │ └── android_renderscript_RenderScript.cpp
│ │ └── tests
│ │ └── graphicstests
│ ├── include
│ │ ├── android_runtime
│ │ │ ├── ActivityManager.h
│ │ │ ├── AndroidRuntime.h
│ │ │ └── android_util_AssetManager.h
│ │ ├── binder
│ │ │ ├── Binder.h
│ │ │ ├── BpBinder.h
│ │ │ ├── IBinder.h
│ │ │ ├── IInterface.h
│ │ │ ├── IMemory.h
│ │ │ ├── IPCThreadState.h
│ │ │ ├── IPermissionController.h
│ │ │ ├── IServiceManager.h
│ │ │ ├── MemoryBase.h
│ │ │ ├── MemoryDealer.h
│ │ │ ├── MemoryHeapBase.h
│ │ │ ├── MemoryHeapPmem.h
│ │ │ ├── Parcel.h
│ │ │ ├── Permission.h
│ │ │ └── ProcessState.h
│ │ ├── camera
│ │ │ ├── Camera.h
│ │ │ ├── CameraHardwareInterface.h
│ │ │ ├── CameraParameters.h
│ │ │ ├── ICameraClient.h
│ │ │ ├── ICamera.h
│ │ │ └── ICameraService.h
│ │ ├── media
│ │ │ ├── AudioRecord.h
│ │ │ ├── AudioSystem.h
│ │ │ ├── AudioTrack.h
│ │ │ ├── IAudioFlingerClient.h
│ │ │ ├── IAudioFlinger.h
│ │ │ ├── IAudioPolicyService.h
│ │ │ ├── IAudioRecord.h
│ │ │ ├── IAudioTrack.h
│ │ │ ├── IMediaDeathNotifier.h
│ │ │ ├── IMediaMetadataRetriever.h
│ │ │ ├── IMediaPlayerClient.h
│ │ │ ├── IMediaPlayer.h
│ │ │ ├── IMediaPlayerService.h
│ │ │ ├── IMediaRecorder.h
│ │ │ ├── IOMX.h
│ │ │ ├── JetPlayer.h
│ │ │ ├── mediametadataretriever.h
│ │ │ ├── MediaMetadataRetrieverInterface.h
│ │ │ ├── mediaplayer.h
│ │ │ ├── MediaPlayerInterface.h
│ │ │ ├── MediaProfiles.h
│ │ │ ├── MediaRecorderBase.h
│ │ │ ├── mediarecorder.h
│ │ │ ├── mediascanner.h
│ │ │ ├── Metadata.h
│ │ │ ├── PVMediaRecorder.h
│ │ │ ├── PVMetadataRetriever.h
│ │ │ ├── PVPlayer.h
│ │ │ ├── stagefright
│ │ │ ├── thread_init.h
│ │ │ └── ToneGenerator.h
│ │ ├── pim
│ │ │ └── EventRecurrence.h
│ │ ├── private
│ │ │ ├── binder
│ │ │ ├── media
│ │ │ ├── opengles
│ │ │ ├── surfaceflinger
│ │ │ ├── ui
│ │ │ └── utils
│ │ ├── surfaceflinger
│ │ │ ├── ISurfaceComposer.h
│ │ │ ├── ISurfaceFlingerClient.h
│ │ │ ├── ISurface.h
│ │ │ ├── SurfaceComposerClient.h
│ │ │ └── Surface.h
│ │ ├── tts
│ │ │ └── TtsEngine.h
│ │ ├── ui
│ │ │ ├── android_native_buffer.h
│ │ │ ├── DisplayInfo.h
│ │ │ ├── egl
│ │ │ ├── EGLNativeSurface.h
│ │ │ ├── EGLUtils.h
│ │ │ ├── EventHub.h
│ │ │ ├── FramebufferNativeWindow.h
│ │ │ ├── GraphicBufferAllocator.h
│ │ │ ├── GraphicBuffer.h
│ │ │ ├── GraphicBufferMapper.h
│ │ │ ├── IOverlay.h
│ │ │ ├── KeyCharacterMap.h
│ │ │ ├── KeycodeLabels.h
│ │ │ ├── Overlay.h
│ │ │ ├── PixelFormat.h
│ │ │ ├── Point.h
│ │ │ ├── Rect.h
│ │ │ └── Region.h
│ │ └── utils
│ │ ├── ashmem.h
│ │ ├── AssetDir.h
│ │ ├── Asset.h
│ │ ├── AssetManager.h
│ │ ├── Atomic.h
│ │ ├── BackupHelpers.h
│ │ ├── BufferedTextOutput.h
│ │ ├── Buffer.h
│ │ ├── ByteOrder.h
│ │ ├── CallStack.h
│ │ ├── Debug.h
│ │ ├── Endian.h
│ │ ├── Errors.h
│ │ ├── FileMap.h
│ │ ├── Flattenable.h
│ │ ├── KeyedVector.h
│ │ ├── List.h
│ │ ├── Log.h
│ │ ├── misc.h
│ │ ├── RefBase.h
│ │ ├── ResourceTypes.h
│ │ ├── SharedBuffer.h
│ │ ├── Singleton.h
│ │ ├── SortedVector.h
│ │ ├── StopWatch.h
│ │ ├── String16.h
│ │ ├── String8.h
│ │ ├── StringArray.h
│ │ ├── SystemClock.h
│ │ ├── TextOutput.h
│ │ ├── threads.h
│ │ ├── Timers.h
│ │ ├── TypeHelpers.h
│ │ ├── Vector.h
│ │ ├── VectorImpl.h
│ │ ├── ZipFileCRO.h
│ │ ├── ZipFileRO.h
│ │ └── ZipUtils.h
│ ├── keystore
│ │ ├── java
│ │ │ └── android
│ │ ├── MODULE_LICENSE_APACHE2
│ │ ├── NOTICE
│ │ └── tests
│ │ ├── AndroidManifest.xml
│ │ ├── Android.mk
│ │ └── src
│ ├── libs
│ │ ├── audioflinger
│ │ │ ├── A2dpAudioInterface.cpp
│ │ │ ├── A2dpAudioInterface.h
│ │ │ ├── Android.mk
│ │ │ ├── AudioBufferProvider.h
│ │ │ ├── AudioDumpInterface.cpp
│ │ │ ├── AudioDumpInterface.h
│ │ │ ├── AudioFlinger.cpp
│ │ │ ├── AudioFlinger.h
│ │ │ ├── AudioHardwareGeneric.cpp
│ │ │ ├── AudioHardwareGeneric.h
│ │ │ ├── AudioHardwareInterface.cpp
│ │ │ ├── AudioHardwareStub.cpp
│ │ │ ├── AudioHardwareStub.h
│ │ │ ├── AudioMixer.cpp
│ │ │ ├── AudioMixer.h
│ │ │ ├── AudioPolicyManagerBase.cpp
│ │ │ ├── AudioPolicyService.cpp
│ │ │ ├── AudioPolicyService.h
│ │ │ ├── AudioResampler.cpp
│ │ │ ├── AudioResamplerCubic.cpp
│ │ │ ├── AudioResamplerCubic.h
│ │ │ ├── AudioResampler.h
│ │ │ ├── AudioResamplerSinc.cpp
│ │ │ └── AudioResamplerSinc.h
│ │ ├── binder
│ │ │ ├── Android.mk
│ │ │ ├── Binder.cpp
│ │ │ ├── BpBinder.cpp
│ │ │ ├── IInterface.cpp
│ │ │ ├── IMemory.cpp
│ │ │ ├── IPCThreadState.cpp
│ │ │ ├── IPermissionController.cpp
│ │ │ ├── IServiceManager.cpp
│ │ │ ├── MemoryBase.cpp
│ │ │ ├── MemoryDealer.cpp
│ │ │ ├── MemoryHeapBase.cpp
│ │ │ ├── MemoryHeapPmem.cpp
│ │ │ ├── Parcel.cpp
│ │ │ ├── Permission.cpp
│ │ │ ├── ProcessState.cpp
│ │ │ └── Static.cpp
│ │ ├── camera
│ │ │ ├── Android.mk
│ │ │ ├── Camera.cpp
│ │ │ ├── CameraParameters.cpp
│ │ │ ├── ICameraClient.cpp
│ │ │ ├── ICamera.cpp
│ │ │ └── ICameraService.cpp
│ │ ├── rs
│ │ │ ├── Android.mk
│ │ │ ├── java
│ │ │ ├── RenderScriptEnv.h
│ │ │ ├── RenderScript.h
│ │ │ ├── rsAdapter.cpp
│ │ │ ├── rsAdapter.h
│ │ │ ├── rsAllocation.cpp
│ │ │ ├── rsAllocation.h
│ │ │ ├── rsComponent.cpp
│ │ │ ├── rsComponent.h
│ │ │ ├── rsContext.cpp
│ │ │ ├── rsContext.h
│ │ │ ├── rsDevice.cpp
│ │ │ ├── rsDevice.h
│ │ │ ├── rsElement.cpp
│ │ │ ├── rsElement.h
│ │ │ ├── rsFileA3D.cpp
│ │ │ ├── rsFileA3DDecls.h
│ │ │ ├── rsFileA3D.h
│ │ │ ├── rsgApi.cpp.rsg
│ │ │ ├── rsgApiFuncDecl.h.rsg
│ │ │ ├── rsgApiReplay.cpp.rsg
│ │ │ ├── rsgApiStructs.h.rsg
│ │ │ ├── rsg_generator.c
│ │ │ ├── rsg_ScriptJavaClass.cpp
│ │ │ ├── rsHandcode.h
│ │ │ ├── rsLight.cpp
│ │ │ ├── rsLight.h
│ │ │ ├── rsLocklessFifo.cpp
│ │ │ ├── rsLocklessFifo.h
│ │ │ ├── rsMatrix.cpp
│ │ │ ├── rsMatrix.h
│ │ │ ├── rsMesh.cpp
│ │ │ ├── rsMesh.h
│ │ │ ├── rsNoise.cpp
│ │ │ ├── rsNoise.h
│ │ │ ├── rsObjectBase.cpp
│ │ │ ├── rsObjectBase.h
│ │ │ ├── rsProgram.cpp
│ │ │ ├── rsProgramFragment.cpp
│ │ │ ├── rsProgramFragment.h
│ │ │ ├── rsProgramFragmentStore.cpp
│ │ │ ├── rsProgramFragmentStore.h
│ │ │ ├── rsProgram.h
│ │ │ ├── rsProgramRaster.cpp
│ │ │ ├── rsProgramRaster.h
│ │ │ ├── rsProgramVertex.cpp
│ │ │ ├── rsProgramVertex.h
│ │ │ ├── rsSampler.cpp
│ │ │ ├── rsSampler.h
│ │ │ ├── rsScriptC.cpp
│ │ │ ├── rsScriptC.h
│ │ │ ├── rsScriptC_Lib.cpp
│ │ │ ├── rsScript.cpp
│ │ │ ├── rsScript.h
│ │ │ ├── rsShaderCache.cpp
│ │ │ ├── rsShaderCache.h
│ │ │ ├── rsSimpleMesh.cpp
│ │ │ ├── rsSimpleMesh.h
│ │ │ ├── rs.spec
│ │ │ ├── rsThreadIO.cpp
│ │ │ ├── rsThreadIO.h
│ │ │ ├── rsType.cpp
│ │ │ ├── rsType.h
│ │ │ ├── rsUtils.h
│ │ │ ├── rsVertexArray.cpp
│ │ │ ├── rsVertexArray.h
│ │ │ ├── scriptc
│ │ │ ├── spec.h
│ │ │ └── spec.l
│ │ ├── surfaceflinger
│ │ │ ├── Android.mk
│ │ │ ├── Barrier.h
│ │ │ ├── BlurFilter.cpp
│ │ │ ├── BlurFilter.h
│ │ │ ├── clz.cpp
│ │ │ ├── clz.h
│ │ │ ├── DisplayHardware
│ │ │ ├── LayerBase.cpp
│ │ │ ├── LayerBase.h
│ │ │ ├── LayerBlur.cpp
│ │ │ ├── LayerBlur.h
│ │ │ ├── LayerBuffer.cpp
│ │ │ ├── LayerBuffer.h
│ │ │ ├── Layer.cpp
│ │ │ ├── LayerDim.cpp
│ │ │ ├── LayerDim.h
│ │ │ ├── Layer.h
│ │ │ ├── MessageQueue.cpp
│ │ │ ├── MessageQueue.h
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── SurfaceFlinger.cpp
│ │ │ ├── SurfaceFlinger.h
│ │ │ ├── tests
│ │ │ ├── Tokenizer.cpp
│ │ │ ├── Tokenizer.h
│ │ │ ├── Transform.cpp
│ │ │ └── Transform.h
│ │ ├── surfaceflinger_client
│ │ │ ├── Android.mk
│ │ │ ├── ISurfaceComposer.cpp
│ │ │ ├── ISurface.cpp
│ │ │ ├── ISurfaceFlingerClient.cpp
│ │ │ ├── LayerState.cpp
│ │ │ ├── SharedBufferStack.cpp
│ │ │ ├── SurfaceComposerClient.cpp
│ │ │ └── Surface.cpp
│ │ ├── ui
│ │ │ ├── Android.mk
│ │ │ ├── EGLUtils.cpp
│ │ │ ├── EventHub.cpp
│ │ │ ├── EventRecurrence.cpp
│ │ │ ├── FramebufferNativeWindow.cpp
│ │ │ ├── GraphicBufferAllocator.cpp
│ │ │ ├── GraphicBuffer.cpp
│ │ │ ├── GraphicBufferMapper.cpp
│ │ │ ├── IOverlay.cpp
│ │ │ ├── KeyCharacterMap.cpp
│ │ │ ├── KeyLayoutMap.cpp
│ │ │ ├── KeyLayoutMap.h
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ ├── Overlay.cpp
│ │ │ ├── PixelFormat.cpp
│ │ │ ├── Rect.cpp
│ │ │ ├── Region.cpp
│ │ │ └── tests
│ │ └── utils
│ │ ├── Android.mk
│ │ ├── Asset.cpp
│ │ ├── AssetDir.cpp
│ │ ├── AssetManager.cpp
│ │ ├── BackupData.cpp
│ │ ├── BackupHelpers.cpp
│ │ ├── BufferedTextOutput.cpp
│ │ ├── CallStack.cpp
│ │ ├── Debug.cpp
│ │ ├── FileMap.cpp
│ │ ├── Flattenable.cpp
│ │ ├── misc.cpp
│ │ ├── MODULE_LICENSE_APACHE2
│ │ ├── NOTICE
│ │ ├── README
│ │ ├── RefBase.cpp
│ │ ├── ResourceTypes.cpp
│ │ ├── SharedBuffer.cpp
│ │ ├── Static.cpp
│ │ ├── StopWatch.cpp
│ │ ├── String16.cpp
│ │ ├── String8.cpp
│ │ ├── StringArray.cpp
│ │ ├── SystemClock.cpp
│ │ ├── TextOutput.cpp
│ │ ├── Threads.cpp
│ │ ├── Timers.cpp
│ │ ├── VectorImpl.cpp
│ │ ├── ZipFileCRO.cpp
│ │ ├── ZipFileRO.cpp
│ │ └── ZipUtils.cpp
│ ├── location
│ │ ├── java
│ │ │ ├── android
│ │ │ └── com
│ │ └── tests
│ │ └── locationtests
│ ├── media
│ │ ├── java
│ │ │ └── android
│ │ ├── jni
│ │ │ ├── android_media_AmrInputStream.cpp
│ │ │ ├── android_media_MediaMetadataRetriever.cpp
│ │ │ ├── android_media_MediaPlayer.cpp
│ │ │ ├── android_media_MediaProfiles.cpp
│ │ │ ├── android_media_MediaRecorder.cpp
│ │ │ ├── android_media_MediaScanner.cpp
│ │ │ ├── android_media_ResampleInputStream.cpp
│ │ │ ├── android_media_subtitle.cpp
│ │ │ ├── Android.mk
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ └── soundpool
│ │ ├── libdrm
│ │ │ ├── Android.mk
│ │ │ ├── mobile1
│ │ │ ├── mobile2
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ └── NOTICE
│ │ ├── libmedia
│ │ │ ├── Android.mk
│ │ │ ├── AudioRecord.cpp
│ │ │ ├── AudioSystem.cpp
│ │ │ ├── AudioTrack.cpp
│ │ │ ├── autodetect.cpp
│ │ │ ├── autodetect.h
│ │ │ ├── IAudioFlingerClient.cpp
│ │ │ ├── IAudioFlinger.cpp
│ │ │ ├── IAudioPolicyService.cpp
│ │ │ ├── IAudioRecord.cpp
│ │ │ ├── IAudioTrack.cpp
│ │ │ ├── IMediaDeathNotifier.cpp
│ │ │ ├── IMediaMetadataRetriever.cpp
│ │ │ ├── IMediaPlayerClient.cpp
│ │ │ ├── IMediaPlayer.cpp
│ │ │ ├── IMediaPlayerService.cpp
│ │ │ ├── IMediaRecorder.cpp
│ │ │ ├── IOMX.cpp
│ │ │ ├── JetPlayer.cpp
│ │ │ ├── mediametadataretriever.cpp
│ │ │ ├── mediaplayer.cpp
│ │ │ ├── MediaProfiles.cpp
│ │ │ ├── mediarecorder.cpp
│ │ │ ├── MediaScannerClient.cpp
│ │ │ ├── MediaScanner.cpp
│ │ │ ├── Metadata.cpp
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ └── ToneGenerator.cpp
│ │ ├── libmediaplayerservice
│ │ │ ├── Android.mk
│ │ │ ├── MediaPlayerService.cpp
│ │ │ ├── MediaPlayerService.h
│ │ │ ├── MediaRecorderClient.cpp
│ │ │ ├── MediaRecorderClient.h
│ │ │ ├── MetadataRetrieverClient.cpp
│ │ │ ├── MetadataRetrieverClient.h
│ │ │ ├── MidiFile.cpp
│ │ │ ├── MidiFile.h
│ │ │ ├── MidiMetadataRetriever.cpp
│ │ │ ├── MidiMetadataRetriever.h
│ │ │ ├── StagefrightPlayer.cpp
│ │ │ ├── StagefrightPlayer.h
│ │ │ ├── StagefrightRecorder.cpp
│ │ │ ├── StagefrightRecorder.h
│ │ │ ├── TestPlayerStub.cpp
│ │ │ ├── TestPlayerStub.h
│ │ │ ├── VorbisMetadataRetriever.cpp
│ │ │ ├── VorbisMetadataRetriever.h
│ │ │ ├── VorbisPlayer.cpp
│ │ │ └── VorbisPlayer.h
│ │ ├── libstagefright
│ │ │ ├── AMRExtractor.cpp
│ │ │ ├── AMRWriter.cpp
│ │ │ ├── Android.mk
│ │ │ ├── AudioPlayer.cpp
│ │ │ ├── AudioSource.cpp
│ │ │ ├── avc_utils.cpp
│ │ │ ├── AwesomePlayer.cpp
│ │ │ ├── CachingDataSource.cpp
│ │ │ ├── CameraSource.cpp
│ │ │ ├── codecs
│ │ │ ├── colorconversion
│ │ │ ├── DataSource.cpp
│ │ │ ├── ESDS.cpp
│ │ │ ├── FileSource.cpp
│ │ │ ├── foundation
│ │ │ ├── HTTPDataSource.cpp
│ │ │ ├── HTTPStream.cpp
│ │ │ ├── id3
│ │ │ ├── include
│ │ │ ├── JPEGSource.cpp
│ │ │ ├── matroska
│ │ │ ├── MediaBuffer.cpp
│ │ │ ├── MediaBufferGroup.cpp
│ │ │ ├── MediaDefs.cpp
│ │ │ ├── MediaExtractor.cpp
│ │ │ ├── MediaSource.cpp
│ │ │ ├── MetaData.cpp
│ │ │ ├── MP3Extractor.cpp
│ │ │ ├── MPEG4Extractor.cpp
│ │ │ ├── MPEG4Writer.cpp
│ │ │ ├── OggExtractor.cpp
│ │ │ ├── omx
│ │ │ ├── OMXClient.cpp
│ │ │ ├── OMXCodec.cpp
│ │ │ ├── Prefetcher.cpp
│ │ │ ├── rtsp
│ │ │ ├── SampleIterator.cpp
│ │ │ ├── SampleTable.cpp
│ │ │ ├── ShoutcastSource.cpp
│ │ │ ├── StagefrightMediaScanner.cpp
│ │ │ ├── StagefrightMetadataRetriever.cpp
│ │ │ ├── string.cpp
│ │ │ ├── TimedEventQueue.cpp
│ │ │ ├── TimeSource.cpp
│ │ │ ├── Utils.cpp
│ │ │ └── WAVExtractor.cpp
│ │ ├── libsubtitle
│ │ │ ├── Android.mk
│ │ │ ├── include
│ │ │ └── src
│ │ ├── mediaserver
│ │ │ ├── Android.mk
│ │ │ └── main_mediaserver.cpp
│ │ └── tests
│ │ ├── MediaFrameworkTest
│ │ ├── omxjpegdecoder
│ │ ├── players
│ │ ├── SoundPoolTest
│ │ └── subtitleplayer
│ ├── MODULE_LICENSE_APACHE2
│ ├── native
│ │ ├── graphics
│ │ │ └── jni
│ │ └── include
│ │ └── android
│ ├── NOTICE
│ ├── obex
│ │ ├── Android.mk
│ │ └── javax
│ │ └── obex
│ ├── opengl
│ │ ├── include
│ │ │ ├── EGL
│ │ │ ├── ETC1
│ │ │ ├── GLES
│ │ │ ├── GLES2
│ │ │ └── KHR
│ │ ├── java
│ │ │ ├── android
│ │ │ ├── com
│ │ │ └── javax
│ │ ├── libagl
│ │ │ ├── Android.mk
│ │ │ ├── array.cpp
│ │ │ ├── array.h
│ │ │ ├── BufferObjectManager.cpp
│ │ │ ├── BufferObjectManager.h
│ │ │ ├── context.h
│ │ │ ├── copybit.cpp
│ │ │ ├── copybit.h
│ │ │ ├── dxt.cpp
│ │ │ ├── dxt.h
│ │ │ ├── egl.cpp
│ │ │ ├── fixed_asm.S
│ │ │ ├── fp.cpp
│ │ │ ├── fp.h
│ │ │ ├── iterators.S
│ │ │ ├── light.cpp
│ │ │ ├── light.h
│ │ │ ├── matrix.cpp
│ │ │ ├── matrix.h
│ │ │ ├── mipmap.cpp
│ │ │ ├── primitives.cpp
│ │ │ ├── primitives.h
│ │ │ ├── state.cpp
│ │ │ ├── state.h
│ │ │ ├── texture.cpp
│ │ │ ├── texture.h
│ │ │ ├── TextureObjectManager.cpp
│ │ │ ├── TextureObjectManager.h
│ │ │ ├── Tokenizer.cpp
│ │ │ ├── Tokenizer.h
│ │ │ ├── TokenManager.cpp
│ │ │ ├── TokenManager.h
│ │ │ ├── vertex.cpp
│ │ │ └── vertex.h
│ │ ├── libs
│ │ │ ├── Android.mk
│ │ │ ├── EGL
│ │ │ ├── egl_impl.h
│ │ │ ├── entries.in
│ │ │ ├── ETC1
│ │ │ ├── GLES2
│ │ │ ├── GLES_CM
│ │ │ ├── hooks.h
│ │ │ └── tools
│ │ ├── tests
│ │ │ ├── Android.mk
│ │ │ ├── angeles
│ │ │ ├── fillrate
│ │ │ ├── filter
│ │ │ ├── finish
│ │ │ ├── gl2_basic
│ │ │ ├── gl2_java
│ │ │ ├── gl2_jni
│ │ │ ├── gl_basic
│ │ │ ├── gldual
│ │ │ ├── gl_jni
│ │ │ ├── gralloc
│ │ │ ├── lighting1709
│ │ │ ├── linetex
│ │ │ ├── swapinterval
│ │ │ ├── testPauseResume
│ │ │ ├── textures
│ │ │ └── tritex
│ │ └── tools
│ │ └── glgen
│ ├── packages
│ │ ├── DefaultContainerService
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── res
│ │ │ └── src
│ │ ├── SettingsProvider
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ ├── res
│ │ │ └── src
│ │ ├── TtsService
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── jni
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ ├── proguard.flags
│ │ │ ├── res
│ │ │ └── src
│ │ └── VpnServices
│ │ ├── AndroidManifest.xml
│ │ ├── Android.mk
│ │ ├── MODULE_LICENSE_APACHE2
│ │ ├── NOTICE
│ │ ├── res
│ │ └── src
│ ├── preloaded-classes
│ ├── sax
│ │ ├── java
│ │ │ └── android
│ │ └── tests
│ │ └── saxtests
│ ├── services
│ │ ├── java
│ │ │ ├── Android.mk
│ │ │ └── com
│ │ ├── jni
│ │ │ ├── Android.mk
│ │ │ ├── com_android_server_AlarmManagerService.cpp
│ │ │ ├── com_android_server_BatteryService.cpp
│ │ │ ├── com_android_server_KeyInputQueue.cpp
│ │ │ ├── com_android_server_LightsService.cpp
│ │ │ ├── com_android_server_SensorService.cpp
│ │ │ ├── com_android_server_SystemServer.cpp
│ │ │ ├── com_android_server_VibratorService.cpp
│ │ │ └── onload.cpp
│ │ └── tests
│ │ └── servicestests
│ ├── telephony
│ │ ├── java
│ │ │ ├── android
│ │ │ └── com
│ │ └── tests
│ │ └── telephonytests
│ ├── test-runner
│ │ ├── Android.mk
│ │ ├── src
│ │ │ ├── android
│ │ │ └── junit
│ │ └── tests
│ │ ├── AndroidManifest.xml
│ │ ├── Android.mk
│ │ └── src
│ ├── tests
│ │ ├── appwidgets
│ │ │ ├── AppWidgetHostTest
│ │ │ └── AppWidgetProviderTest
│ │ ├── backup
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── backup_helper_test.cpp
│ │ │ ├── backup_stress_test.sh
│ │ │ ├── src
│ │ │ ├── test_backup_common.sh
│ │ │ ├── test_backup.sh
│ │ │ └── test_restore.sh
│ │ ├── BatteryWaster
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── res
│ │ │ └── src
│ │ ├── BrowserPowerTest
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ └── src
│ │ ├── BrowserTestPlugin
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── jni
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── NOTICE
│ │ │ ├── res
│ │ │ └── src
│ │ ├── CoreTests
│ │ │ ├── android
│ │ │ ├── Android.mk
│ │ │ ├── MODULE_LICENSE_APACHE2
│ │ │ ├── run_core_test.sh
│ │ │ └── run_junit.sh
│ │ ├── DpiTest
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── res
│ │ │ └── src
│ │ ├── DumpRenderTree
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── assets
│ │ │ └── src
│ │ ├── framework-tests
│ │ │ ├── Android.mk
│ │ │ ├── README
│ │ │ └── src
│ │ ├── ImfTest
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── res
│ │ │ ├── src
│ │ │ └── tests
│ │ ├── LocationTracker
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── res
│ │ │ └── src
│ │ ├── LotsOfApps
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── res
│ │ │ └── src
│ │ ├── LowStorageTest
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── res
│ │ │ └── src
│ │ ├── permission
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ └── src
│ │ ├── SmokeTest
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── README
│ │ │ ├── src
│ │ │ └── tests
│ │ ├── SslLoad
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ └── src
│ │ ├── StatusBar
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── Android.mk
│ │ │ ├── res
│ │ │ └── src
│ │ └── TransformTest
│ │ ├── AndroidManifest.xml
│ │ ├── Android.mk
│ │ ├── res
│ │ └── src
│ ├── tools
│ │ ├── aapt
│ │ │ ├── AaptAssets.cpp
│ │ │ ├── AaptAssets.h
│ │ │ ├── Android.mk
│ │ │ ├── Bundle.h
│ │ │ ├── Command.cpp
│ │ │ ├── Images.cpp
│ │ │ ├── Images.h
│ │ │ ├── Main.cpp
│ │ │ ├── Main.h
│ │ │ ├── Package.cpp
│ │ │ ├── printapk.cpp
│ │ │ ├── Resource.cpp
│ │ │ ├── ResourceTable.cpp
│ │ │ ├── ResourceTable.h
│ │ │ ├── SourcePos.cpp
│ │ │ ├── SourcePos.h
│ │ │ ├── StringPool.cpp
│ │ │ ├── StringPool.h
│ │ │ ├── tests
│ │ │ ├── XMLNode.cpp
│ │ │ ├── XMLNode.h
│ │ │ ├── ZipEntry.cpp
│ │ │ ├── ZipEntry.h
│ │ │ ├── ZipFile.cpp
│ │ │ └── ZipFile.h
│ │ ├── aidl
│ │ │ ├── aidl.cpp
│ │ │ ├── aidl_language.cpp
│ │ │ ├── aidl_language.h
│ │ │ ├── aidl_language_l.l
│ │ │ ├── aidl_language_y.y
│ │ │ ├── Android.mk
│ │ │ ├── AST.cpp
│ │ │ ├── AST.h
│ │ │ ├── generate_java.cpp
│ │ │ ├── generate_java.h
│ │ │ ├── options.cpp
│ │ │ ├── options.h
│ │ │ ├── options_test.cpp
│ │ │ ├── search_path.cpp
│ │ │ ├── search_path.h
│ │ │ ├── Type.cpp
│ │ │ └── Type.h
│ │ ├── layoutlib
│ │ │ ├── Android.mk
│ │ │ ├── bridge
│ │ │ └── create
│ │ ├── localize
│ │ │ ├── Android.mk
│ │ │ ├── Configuration.cpp
│ │ │ ├── Configuration.h
│ │ │ ├── file_utils.cpp
│ │ │ ├── file_utils.h
│ │ │ ├── localize.cpp
│ │ │ ├── localize.h
│ │ │ ├── localize_test.cpp
│ │ │ ├── log.h
│ │ │ ├── merge_res_and_xliff.cpp
│ │ │ ├── merge_res_and_xliff.h
│ │ │ ├── merge_res_and_xliff_test.cpp
│ │ │ ├── Perforce.cpp
│ │ │ ├── Perforce.h
│ │ │ ├── Perforce_test.cpp
│ │ │ ├── res_check.cpp
│ │ │ ├── res_check.h
│ │ │ ├── SourcePos.cpp
│ │ │ ├── SourcePos.h
│ │ │ ├── test.cpp
│ │ │ ├── testdata
│ │ │ ├── Values.cpp
│ │ │ ├── ValuesFile.cpp
│ │ │ ├── ValuesFile.h
│ │ │ ├── ValuesFile_test.cpp
│ │ │ ├── Values.h
│ │ │ ├── XLIFFFile.cpp
│ │ │ ├── XLIFFFile.h
│ │ │ ├── XLIFFFile_test.cpp
│ │ │ ├── xmb.cpp
│ │ │ ├── xmb.h
│ │ │ ├── XMLHandler.cpp
│ │ │ ├── XMLHandler.h
│ │ │ ├── XMLHandler_test.cpp
│ │ │ └── XMLNode.h
│ │ ├── makekeycodes
│ │ │ ├── Android.mk
│ │ │ └── makekeycodes.cpp
│ │ └── preload
│ │ ├── 20080522.compiled
│ │ ├── 20090811.compiled
│ │ ├── 20100223.compiled
│ │ ├── Android.mk
│ │ ├── Compile.java
│ │ ├── loadclass
│ │ ├── LoadedClass.java
│ │ ├── MemoryUsage.java
│ │ ├── Operation.java
│ │ ├── Policy.java
│ │ ├── preload.iml
│ │ ├── preload.ipr
│ │ ├── PrintCsv.java
│ │ ├── PrintHtmlDiff.java
│ │ ├── PrintPsTree.java
│ │ ├── Proc.java
│ │ ├── Record.java
│ │ ├── Root.java
│ │ ├── sorttable.js
│ │ └── WritePreloadedClassFile.java
│ ├── vpn
│ │ ├── java
│ │ │ └── android
│ │ └── tests
│ │ └── vpntests
│ └── wifi
│ └── java
│ └── android
├── ex
│ └── common
│ ├── Android.mk
│ ├── java
│ │ └── com
│ ├── tests
│ │ ├── AndroidManifest.xml
│ │ ├── Android.mk
│ │ └── src
│ └── tools
│ └── make-iana-tld-pattern.py
├── opt
│ └── emoji
│ ├── Android.mk
│ ├── CleanSpec.mk
│ ├── EmojiFactory.cpp
│ └── EmojiFactory.h
└── policies
└── base
├── CleanSpec.mk
├── mid
│ ├── Android.mk
│ └── com
├── phone
│ ├── Android.mk
│ └── com
└── PolicyConfig.mk




框架目录结构: 分三类,base, ex, opt,policiece


frameworks/
├── base
│ ├── Android.mk
│ ├── api
│ ├── awt
│ ├── build
│ ├── camera
│ ├── CleanSpec.mk
│ ├── cmds
│ ├── core
│ ├── data
│ ├── docs
│ ├── ethernet
│ ├── graphics
│ ├── include
│ ├── keystore
│ ├── libs
│ ├── location
│ ├── media
│ ├── MODULE_LICENSE_APACHE2
│ ├── native
│ ├── NOTICE
│ ├── obex
│ ├── opengl
│ ├── packages
│ ├── preloaded-classes
│ ├── sax
│ ├── services
│ ├── telephony
│ ├── test-runner
│ ├── tests
│ ├── tools
│ ├── vpn
│ └── wifi
├── ex
│ └── common
├── opt
│ └── emoji
└── policiece
└── base






三层目录:
frameworks/
├── base
│ ├── Android.mk
│ ├── api
│ │ ├── 1.xml
│ │ ├── 2.xml
│ │ ├── 3.xml
│ │ ├── 4.xml
│ │ ├── 5.xml
│ │ ├── 6.xml
│ │ ├── 7.xml
│ │ ├── 8.xml
│ │ └── current.xml
│ ├── awt
│ │ ├── Android.mk
│ │ ├── com
│ │ ├── java
│ │ ├── javax
│ │ ├── org
│ │ └── resources
│ ├── build
│ │ └── jarjar-rules.txt
│ ├── camera : 关于camera的HAL接口库。最终生成native共享库libcamera.so ,编译时根据是否定义USE_CAMERA_STUB来决定系统是否有Camera硬件支持。若没有实际的Camera硬件,
│ │ ├── libcameraservice :则编译时会和虚拟camera静态库(libcamerastub.a,由camerahardwarestub.cpp,fakecamera生成)链接生成libcamera.so。
│ │ └── tests
│ ├── CleanSpec.mk
│ ├── cmds :android系统启动时用到的commands
│ │ ├── am
│ │ ├── app_process :可执行文件app_process,该文件可以根据输入参数决定是Zygote启动(参考init.rc中的语句 service zygote /system/bin/app_process -Xzygote / system/ bin --zygote --start-system-server).
│ │ ├── backup
│ │ ├── bmgr : : java可执行程式, backup manager, java库形式分发到目标系统/system/framework/bmgr.jar
│ │ ├── bootanimation : android启动动画效果程式,该程式必须在android runtime启动后运行。
│ │ ├── bugreport
│ │ ├── dumpstate : ndroid系统调试辅助工具,生成可执行程式dumpstate,同时建立两个程式dumpcrash bugreport指向该程式。
│ │ ├── dumpsys : 生成可执行程式dumpsys
│ │ ├── ime : java可执行程式 ,IME输入法 input method manager, java库形式分发到目标系统/system/framework/ime.jar
│ │ ├── input : java可执行程式,管理input事件例如key event,text event 等,java库形式分发到目标系统/system/framework/input.jar
│ │ ├── installd : 可执行程式installd,install manager,仅在非simulator系统中运行,安装到目标系统/system/bin/installd
│ │ ├── keystore
│ │ ├── pm
│ │ ├── rawbu
│ │ ├── runtime : runtime可执行程式,仅在simulator中使用
│ │ ├── service : service可执行程式,用来查找,检查,呼叫service,安装到目标系统/system/bin/service
│ │ ├── servicemanager : android系统的service manager,可执行文件,安装到目标系统/system/bin/servicemanager,servicemanager会和kernel的binder driver协作共同完成service的添加、查询、获取、检查等。
│ │ ├── stagefright
│ │ ├── surfaceflinger :surfaceflinger可执行程式,安装到目标系统/system/bin/surfaceflinger,该程式会初始化surfaceflinger,surfaceflinger::inistantiate(),该程式会链接到libsurfaceflinger.so
│ │ ├── svc
│ │ └── system_server
│ ├── core
│ │ ├── config
│ │ ├── java : framework的核心,此处主要指application framework,java库形式分发到/system/framework/
│ │ ├── jni :framework所需的JNI接口实现库,分发到/system/lib/lib/libandroid_runtime.so
│ │ ├── res : framework所需的资源文件打包,/system/framework/framework-res.apk。
│ │ └── tests
│ ├── data
│ │ ├── etc
│ │ ├── fonts
│ │ └── sounds
│ ├── docs
│ │ ├── docs-documentation-redirect.html
│ │ ├── docs-redirect.html
│ │ ├── docs-redirect-index.html
│ │ ├── docs-samples-redirect.html
│ │ ├── html
│ │ └── overview-ext.html
│ ├── ethernet
│ │ └── java
│ ├── graphics
│ │ ├── java
│ │ ├── jni
│ │ └── tests
│ ├── include
│ │ ├── android_runtime
│ │ ├── binder
│ │ ├── camera
│ │ ├── media
│ │ ├── pim
│ │ ├── private
│ │ ├── surfaceflinger
│ │ ├── tts
│ │ ├── ui
│ │ └── utils
│ ├── keystore
│ │ ├── java
│ │ ├── MODULE_LICENSE_APACHE2
│ │ ├── NOTICE
│ │ └── tests
│ ├── libs
│ │ ├── audioflinger : 生成libaudioflinger.so,若无实际硬件和静态库libaudiointerface.a(audio interface虚拟设备)链接。若有实际硬件和libaudio.so链接,若支持bluetooth,则和liba2dp.so链接
│ │ ├── binder
│ │ ├── camera
│ │ ├── rs
│ │ ├── surfaceflinger : 生成libsurfaceflinger.so
│ │ ├── surfaceflinger_client
│ │ ├── ui : 生成libui.so
│ │ └── utils : 生成libutils.so
│ ├── location
│ │ ├── java
│ │ └── tests
│ ├── media
│ │ ├── java
│ │ ├── jni
│ │ ├── libdrm
│ │ ├── libmedia
│ │ ├── libmediaplayerservice
│ │ ├── libstagefright
│ │ ├── libsubtitle
│ │ ├── mediaserver
│ │ └── tests
│ ├── MODULE_LICENSE_APACHE2
│ ├── native
│ │ ├── graphics
│ │ └── include
│ ├── NOTICE
│ ├── obex
│ │ ├── Android.mk
│ │ └── javax
│ ├── opengl
│ │ ├── include
│ │ ├── java
│ │ ├── libagl
│ │ ├── libs
│ │ ├── tests
│ │ └── tools
│ ├── packages
│ │ ├── DefaultContainerService
│ │ ├── SettingsProvider
│ │ ├── TtsService
│ │ └── VpnServices
│ ├── preloaded-classes
│ ├── sax
│ │ ├── java
│ │ └── tests
│ ├── services
│ │ ├── java : system server java可执行程式service.jar,分发到/system/framework/service.jar
│ │ ├── jni : ystem server JNI接口实现库,libanroid_servers.so,分发到/system/lib/libanroid_servers.so
│ │ └── tests
│ ├── telephony
│ │ ├── java
│ │ └── tests
│ ├── test-runner
│ │ ├── Android.mk
│ │ ├── src
│ │ └── tests
│ ├── tests
│ │ ├── appwidgets
│ │ ├── backup
│ │ ├── BatteryWaster
│ │ ├── BrowserPowerTest
│ │ ├── BrowserTestPlugin
│ │ ├── CoreTests
│ │ ├── DpiTest
│ │ ├── DumpRenderTree
│ │ ├── framework-tests
│ │ ├── ImfTest
│ │ ├── LocationTracker
│ │ ├── LotsOfApps
│ │ ├── LowStorageTest
│ │ ├── permission
│ │ ├── SmokeTest
│ │ ├── SslLoad
│ │ ├── StatusBar
│ │ └── TransformTest
│ ├── tools
│ │ ├── aapt
│ │ ├── aidl
│ │ ├── layoutlib
│ │ ├── localize
│ │ ├── makekeycodes
│ │ └── preload
│ ├── vpn
│ │ ├── java
│ │ └── tests
│ └── wifi
│ └── java
├── ex
│ └── common
│ ├── Android.mk
│ ├── java
│ ├── tests
│ └── tools
├── opt
│ └── emoji
│ ├── Android.mk
│ ├── CleanSpec.mk
│ ├── EmojiFactory.cpp
│ └── EmojiFactory.h
└── policies
└── base
├── CleanSpec.mk
├── mid
├── phone
└── PolicyConfig.mk






启动 Zygote


-Xzygote /system/bin --zygote --start-system-server


AndroidRuntime->AppRuntime


int main(int argc,const char* const argv[])


{


AppRuntime runtime;生成AndroidRuntime实例


...


AndroidRuntime.Start("com.android.internal.os.ZygoteInit",startSystemServer);


}


其中 AndroidRuntime.Start("com.android.internal.os.ZygoteInit",startSystemServer);


呼叫Android::Start(const char* className,const bool startSystemServer)


/framework/base/core/jni/AndroidRuntime.cpp


该函数的处理内容:


1.处理Jave Virtual Machine的一些参数选项;


2.创建Dalvik Java虚拟机,JNI_CreateJavaVM(&mJavaVM,&env,&initArgs);


3.注册Android Runtime中的JNI接口给虚拟机;


4.呼叫Java类 com.android.internal.os.ZygoteInit的main函数




在 类 com.android.internal.os.ZygoteInit的main函数中,


1.注册Zygote socket用来接收请求;


2.加载preloaded class、resources用来加快启动速度,文件清单在framework.jar中的preloaded-classes,framework-res.apk中的res中;


3.启动System Server;


fork出独立的进程名称为system-server,呼叫com.android.server.SystemServer类的main函数;


在HandleSystemServerProcess函数中,RuntimeInit.ZygoteInit调用会呼叫AppRuntime的OnZygoteInit函数


4.RuntimeInit.ZygoteInit函数会呼叫 com.android.server.SystemServer类的main函数。


在此main函数中,系统首先加载android_server共享库libandroid_server.so 源代码位于/framework/base/service/jni


在该库中有定义JNI_OnLoad函数,所以Dalvik在加载 libandroid_server.so 的时候会首先呼叫该JNI_OnLoad函数,该函数将android server注册到Java虚拟机中,包括 KeyInputQueue,HardwareService,AlarmManager,BatteryService,SensorService,SystemServer 等;


呼叫在libanroid_server.so中注册的native函数init1,该函数位于/frameworks/base/services/jni/com_android_server_SystemServer.cpp中;


init1函数呼叫libsystem_server中的system_init函数,该函数位于/frameworks/base/cmds /system_server/library/system_init.cpp中,该函数将SurfaceFlinger/AudioFlinger /MediaPlayer/CameraService等组件注册到ServiceManager中


system_init函数反过来呼叫java类com.android.server.SystemServer的init2函数;


5.在init2函数中,android创建了serverthread,在该thread中android开始注册各种service到service manager中


包括EntropyService,PowerManager,ActivityManager,Telephony,PackageManager,ContentManager,ContentProvider,


BatteryService,HardwareService,AlarmManager等等。


注意该线程使用Looper来执行thread
至此android system server启动完成。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics