aosp framework子目录解析

framework/base下各子目录 

~/src/aosp_master/frameworks $ tree base/ -L 1

base/
├── Android.bp
├── Android.mk
├── api 全是xml文件,定义了API
├── CleanSpec.mk
├── cmds android中的重要命令(am, app_proce等)
├── compiled-classes-phone
├── core 核心库
├── data 声音字体等数据文件
├── docs 文档
├── drm 数字版权管理
├── graphics 图形图像
├── keystore 数字签名相关
├── legacy-test
├── libs
├── location 地理位置
├── media 多媒体
├── MODULE_LICENSE_APACHE2
├── native 本地库
├── nfc-extras NFC相关
├── NOTICE
├── obex 蓝牙传输
├── opengl OpenGL相关
├── packages 设置、TTS,VPN程序
├── preloaded-classes
├── proto
├── rs
├── samples
├── sax xml解析器
├── services android的服务
├── telecomm
├── telephony 电话相关
├── test-runner 测试相关
├── tests 测试相关
├── tools 工具

└── wifi 无线网络



aosp_master/frameworks/base $ tree services/ -L 1
services/
├── accessibility
├── Android.mk
├── appwidget
├── backup
├── core
├── devicepolicy
├── java 其他重要服务的Java层
├── midi
├── net
├── print
├── restrictions
├── retaildemo
├── tests
├── usage
├── usb
└── voiceinteraction


aosp_master/frameworks/base/services/core/java/com/android $ tree server/ -L 1
server/
├── accounts
├── AlarmManagerService.java 闹钟服务
├── am
├── AnyMotionDetector.java
├── AppOpsService.java
├── AssetAtlasService.java
├── AttributeCache.java
├── audio
├── backup
├── BatteryService.java 电池相关服务
├── BluetoothManagerService.java 蓝牙
├── BluetoothService.java
├── BrickReceiver.java
├── camera
├── CertBlacklister.java
├── clipboard
├── CommonTimeManagementService.java 时间管理服务
├── connectivity
├── ConnectivityService.java
├── ConsumerIrService.java
├── content
├── ContextHubSystemService.java
├── CountryDetectorService.java
├── DeviceIdleController.java
├── DiskStatsService.java 磁盘状态服务
├── display
├── DisplayThread.java
├── DockObserver.java 底座监视服务
├── dreams
├── DropBoxManagerService.java
├── emergency
├── EntropyMixer.java
├── EventLogTags.logtags
├── FgThread.java
├── fingerprint
├── firewall
├── GestureLauncherService.java
├── GraphicsStatsService.java
├── HardwarePropertiesManagerService.java
├── hdmi
├── INativeDaemonConnectorCallbacks.java
├── input
├── InputContentUriTokenHandler.java
├── InputMethodManagerService.java 输入法管理服务
├── IntentResolver.java
├── IoThread.java
├── IpSecService.java
├── job
├── lights
├── location
├── LocationManagerService.java 地理位置服务
├── LockGuard.java
├── LockSettingsService.java
├── LockSettingsStorage.java
├── LockSettingsStrongAuth.java
├── MasterClearReceiver.java
├── media
├── MmsServiceBroker.java
├── MountServiceIdler.java
├── MountService.java 挂载服务
├── NativeDaemonConnectorException.java
├── NativeDaemonConnector.java
├── NativeDaemonEvent.java
├── NativeDaemonTimeoutException.java
├── net
├── NetworkManagementService.java 网络管理服务
├── NetworkScoreService.java
├── NetworkTimeUpdateService.java
├── notification 通知服务
├── NsdService.java
├── os
├── PersistentDataBlockService.java
├── PinnerService.java
├── pm
├── policy
├── power
├── RandomBlock.java
├── RecoverySystemService.java
├── SamplingProfilerService.java
├── search
├── SensorNotificationService.java
├── SerialService.java NFC相关
├── ServiceThread.java
├── ServiceWatcher.java
├── statusbar 状态栏管理服务
├── storage
├── SystemService.java
├── SystemServiceManager.java
├── telecom
├── TelephonyRegistry.java
├── TextServicesManagerService.java
├── timezone
├── trust
├── tv
├── twilight
├── UiModeManagerService.java
├── UiThread.java
├── UpdateLockService.java 锁屏更新服务
├── updates
├── utils
├── VibratorService.java 震动服务
├── vr
├── wallpaper 壁纸服务
├── Watchdog.java 看门狗
├── webkit
├── WiredAccessoryManager.java 无线设备管理服务
└── wm


aosp_master/frameworks/av $ tree services/ -L 1
services/
├── audioflinger 音频管理服务
├── audiopolicy
├── camera
├── mediacodec
├── mediadrm
├── mediaextractor
├── medialog
├── mediaresourcemanager
├── radio
└── soundtrigger


aosp_master/bionic $ tree . -L 1
.
├── Android.bp
├── android-changes-for-ndk-developers.md
├── Android.mk
├── benchmarks
├── build
├── CleanSpec.mk
├── CPPLINT.cfg
├── libc C库
├── libdl 动态链接库相关
├── libm 数学库
├── libstdc++ C++实现库
├── linker 链接器相关
├── PREUPLOAD.cfg
├── README.md
├── tests
└── tools


aosp_master/frameworks/av/media $ tree . -L 1
.
├── audioserver
├── common_time 时间相关
├── img_utils
├── libaudioclient
├── libcpustats
├── libeffects 多媒体效果
├── libmedia 多媒体录制,播放
├── libmediaplayerservice 多媒体播放服务的实现库
├── libnbaio
├── libstagefright stagefright的实现库
├── mediaserver 跨进程多媒体服务
├── mtp mtp协议的实现(媒体传输协议)
├── ndk
└── utils


图层显示库

aosp_master/frameworks/native/services/surfaceflinger $ tree . -L 1
.
├── Android.mk
├── Barrier.h
├── Client.cpp                                       显示的客户端实现文件
├── Client.h
├── clz.h
├── Colorizer.h
├── DdmConnection.cpp
├── DdmConnection.h
├── DisplayDevice.cpp                             显示设备相关
├── DisplayDevice.h
├── DisplayHardware                                显示底层相关
├── DispSync.cpp
├── DispSync.h
├── Effects
├── EventControlThread.cpp
├── EventControlThread.h
├── EventLog
├── EventThread.cpp                               消息线程
├── EventThread.h
├── FenceTracker.cpp
├── FenceTracker.h
├── FrameTracker.cpp
├── FrameTracker.h
├── GpuService.cpp
├── GpuService.h
├── Layer.cpp                                           图层相关
├── LayerDim.cpp                                    图层相关
├── LayerDim.h
├── Layer.h
├── main_surfaceflinger.cpp
├── MessageQueue.cpp                         消息队列
├── MessageQueue.h
├── MODULE_LICENSE_APACHE2
├── MonitoredProducer.cpp
├── MonitoredProducer.h
├── RenderEngine
├── SurfaceFlingerConsumer.cpp
├── SurfaceFlingerConsumer.h
├── SurfaceFlinger.cpp                          图层管理者,图层管理的核心类
├── SurfaceFlinger.h
├── SurfaceFlinger_hwc1.cpp
├── surfaceflinger.rc
├── tests
├── Transform.cpp
└── Transform.h


aosp_master/frameworks/native/opengl $ tree . -L 1
.
├── Android.bp     
├── include                OpenGL中的头文件
├── libagl               在macos上的库
├── libs                      OpenGL的接口和实现库
├── specs            OpenGL的文档
├── tests 
└── tools             工具库


sqlite的实现分为java和c两部分,java层主要实现sqlite的框架和接口,代码在:

aosp_master/frameworks/base/core/java/android/database $ tree . -L 1
.
├── AbstractCursor.java                                                                  游标的抽象类
├── AbstractWindowedCursor.java                                               
├── BulkCursorDescriptor.java
├── BulkCursorNative.java
├── BulkCursorToCursorAdaptor.java                                           游标适配器
├── CharArrayBuffer.java
├── ContentObservable.java
├── ContentObserver.java                                                                 内容观察者
├── CrossProcessCursor.java
├── CrossProcessCursorWrapper.java                                             
├── CursorIndexOutOfBoundsException.java
├── Cursor.java                                                                                  游标实现类
├── CursorJoiner.java
├── CursorToBulkCursorAdaptor.java                                                  适配器
├── CursorWindow.aidl
├── CursorWindowAllocationException.java
├── CursorWindow.java
├── CursorWrapper.java
├── DatabaseErrorHandler.java
├── DatabaseUtils.java
├── DataSetObservable.java
├── DataSetObserver.java
├── DefaultDatabaseErrorHandler.java
├── IBulkCursor.java
├── IContentObserver.aidl                                                         aidl用于跨进程通信
├── MatrixCursor.java
├── MergeCursor.java
├── Observable.java
├── package.html
├── SQLException.java
├── sqlite                                                              sqlite的框架文件
└── StaleDataException.java


c层代码位于 

/aosp_master/external/sqlite $ tree . -L 1
.
├── android                    Android数据库的一些工具包
├── Android.bp
├── CleanSpec.mk
├── dist                          Android数据库底层实现
└── README.version



hal层部分

aosp_master/hardware $ tree . -L 1
.
├── akm
├── broadcom
├── google
├── intel
├── interfaces
├── invensense
├── libhardware                      新机制硬件库
├── libhardware_legacy          旧机制硬件库 
├── marvell
├── qcom
└── ril                                      ril模块相关底层实现

osp_master/hardware/libhardware $ tree . -L 2 modules
.
├── Android.bp
├── Android.mk
├── CleanSpec.mk
├── hardware.c
├── include
│   └── hardware
├── MODULE_LICENSE_APACHE2
├── modules                                    dex反汇编
│   ├── Android.mk                         
│   ├── audio                                   音频相关底层库
│   ├── audio_remote_submix        音频混合相关
│   ├── camera                                 
│   ├── consumerir
│   ├── fingerprint
│   ├── gralloc                                  帧缓冲
│   ├── hwcomposer                        音频相关
│   ├── input
│   ├── local_time                           本地时间
│   ├── nfc                                      nfc功能
│   ├── nfc-nci                                        nfc的接口
│   ├── power                                  电源
│   ├── radio
│   ├── README.android
│   ├── sensors
│   ├── soundtrigger
│   ├── thermal
│   ├── tv_input
│   ├── usbaudio                                     usb音频设备
│   ├── usbcamera
│   ├── vehicle
│   ├── vibrator
│   └── vr
├── NOTICE
└── tests
    ├── Android.mk
    ├── camera2
    ├── camera3
    ├── fingerprint
    ├── hardware
    ├── hwc
    ├── input
    ├── keymaster
    ├── nusensors
    └── vehicle

ril下是无线硬件设备与电话的实现

aosp_master/hardware $ tree ril/ -L 1
ril/
├── CleanSpec.mk
├── include
├── libril
├── librilutils
├── reference-ril                 reference ril库
└── rild                                 ril守护进程

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android AOSP 源码的 device 目录下添加自定义的 framework 模块的步骤如下: 1. 创建新的模块目录: 在 device/{vendor_name}/{device_name}/ 目录下创建一个新的子目录,用于存放自定义的 framework 模块。例如,可以创建一个名为 myframework目录: ``` mkdir -p device/{vendor_name}/{device_name}/myframework ``` 2. 添加 Android.mk 文件: 在 myframework 目录下创建一个名为 Android.mk 的文件,用于定义自定义的 framework 模块。例如,可以添加以下代码: ``` LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := myframework LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := JAVA_LIBRARIES LOCAL_SRC_FILES := MyFramework.java LOCAL_SDK_VERSION := current LOCAL_JAVA_LIBRARIES := core-libart LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 LOCAL_STATIC_ANDROID_LIBRARIES := libsqlite include $(BUILD_JAVA_LIBRARY) ``` 其中: - LOCAL_MODULE 定义了模块名称; - LOCAL_MODULE_TAGS 定义了模块的标签,optional 表示该模块是可选的; - LOCAL_MODULE_CLASS 定义了模块的类型,JAVA_LIBRARIES 表示该模块是一个 Java 库; - LOCAL_SRC_FILES 定义了该模块中包含的 Java 源代码文件; - LOCAL_JAVA_LIBRARIES 定义了该模块所依赖的 Java 库; - LOCAL_STATIC_JAVA_LIBRARIES 和 LOCAL_STATIC_ANDROID_LIBRARIES 定义了该模块所依赖的静态库和 Android 库。 3. 添加 Android.bp 文件: 在 myframework 目录下创建一个名为 Android.bp 的文件,用于定义自定义的 framework 模块。例如,可以添加以下代码: ``` java_library { name: "myframework", srcs: ["MyFramework.java"], static_libs: [ "core-libart", "android-support-v4", ], shared_libs: [ "libsqlite", ], sdk_version: "current", installable: true, } ``` 其中: - name 定义了模块名称; - srcs 定义了该模块中包含的 Java 源代码文件; - static_libs 定义了该模块所依赖的静态库; - shared_libs 定义了该模块所依赖的共享库; - sdk_version 定义了该模块所需的 Android SDK 版本; - installable 定义了该模块是否可安装。 4. 编译 Android 系统: 在编译 Android 系统之前,需要先执行以下命令: ``` source build/envsetup.sh ``` 然后编译 Android 系统: ``` lunch {device_name}-{build_type} make -j{n} ``` 其中 {device_name} 是设备名称,{build_type} 是编译类型(如 userdebug),{n} 是编译线程数。 编译完成后,就可以在 Android 系统中使用自定义的 framework 模块了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值