Android源码(AOSP)中C/C++常用库和头文件位置

Android中间层或底层开发中,有很多是natvie开发的,需要使用native的库。这里整理了AOSP中native库和头文件分散的几个主要位置。以供参考。
以下目录都是以aosp源码作为根目录,显示的项目路径。

1. bionic/

包括CPU平台、操作系统内核、C语言运行时支持、C标准库相关函数

android-changes-for-ndk-developers.md  docs        OWNERS
Android.mk                             libc        PREUPLOAD.cfg
apex                                   libdl       README.md
benchmarks                             libfdtrack  TEST_MAPPING
build                                  libm        tests
CleanSpec.mk                           libstdc++   tools
CPPLINT.cfg                            linker

2. hardware/

broadcom  interfaces  libhardware         qcom
google    invensense  libhardware_legacy  ril

3. hardware/interfaces/

这个子目录很重要,单独列出。比如automotive目录下包含车机开发中用到的can信号等硬件通信相关代码。

Android.bp              fastboot                PREUPLOAD.cfg
atrace                  gatekeeper              radio
audio                   gnss                    rebootescrow
authsecret              graphics                renderscript
automotive              health                  secure_element
biometrics              identity                sensors
bluetooth               input                   soundtrigger
boot                    ir                      TEST_MAPPING
broadcastradio          keymaster               tests
camera                  light                   tetheroffload
cas                     media                   thermal
CleanSpec.mk            memtrack                tv
common                  MODULE_LICENSE_APACHE2  update-base-files.sh
compatibility_matrices  neuralnetworks          update-makefiles.sh
configstore             nfc                     usb
confirmationui          NOTICE                  vibrator
contexthub              oemlock                 vr
current.txt             OWNERS                  weaver
drm                     power                   wifi
dumpstate               prebuilt_hashes

4. system/

系统底层运行时支持,以及相关支持库。例如hidl、hwbinder等。

apex              incremental_delivery  netd
bpf               iorap                 nfc
bpfprogs          keymaster             nvram
bt                libartpalette         security
ca-certificates   libfmq                sepolicy
chre              libhidl               server_configurable_flags
connectivity      libhwbinder           teeui
core              libsysprop            testing
extras            libufdt               timezone
gatekeeper        libvintf              tools
gsid              linkerconfig          update_engine
hardware          media                 vold
hwservicemanager  memory

5. system/core/

这个子目录比较重要,很多获取native系统级能力的库都在这个目录下,其中也包括一些native层的进程或服务。如fastboot、logd等。

adb               libcutils             llkd
Android.bp        libdiskconfig         logcat
base              libgrallocusage       logd
bootstat          libion                logwrapper
CleanSpec.mk      libkeyutils           MODULE_LICENSE_APACHE2
cli-test          liblog                NOTICE
code_coverage     libmodprobe           OWNERS
cpio              libnetutils           PREUPLOAD.cfg
debuggerd         libpackagelistparser  property_service
deprecated-adf    libprocessgroup       qemu_pipe
diagnose_usb      libprocinfo           reboot
fastboot          libqtaguid            rootdir
fs_mgr            libsparse             run-as
gatekeeperd       libstats              sdcard
healthd           libsuspend            set-verity-state
include           libsync               shell_and_utilities
init              libsystem             storaged
janitors          libsysutils           TEST_MAPPING
libappfuse        libunwindstack        toolbox
libasyncio        libusbhost            trusty
libbacktrace      libutils              usbd
libbinderwrapper  libvndksupport        watchdogd
libcrypto_utils   libziparchive

6. external/

系统中用到的第三方开源库,一共有300多个库,列举几个常见的:

curl
dagger2
googletest
google-protobuf
okhttp
libcxx
llvm
volley
valkan-headers
zxing
# 完整列表
aac                      conscrypt       fsck_msdos            jcommander          libiio                  mockftpserver        python                        tinyxml
adeb                     cpu_features    fsverity-utils        jdiff               libjpeg-turbo           mockito              rappor                        tinyxml2
adhd                     cpuinfo         FXdiv                 jemalloc            libkmsxx                mockwebserver        Reactive-Extensions           toolchain-utils
android-clat             crcalc          gemmlowp              jemalloc_new        libldac                 modp_b64             replicaisland                 toybox
androidplot              cros            gflags                jline               libmpeg2                mp4parser            rmi4utils                     tremolo
angle                    crosvm          giflib                jsilver             libnetfilter_conntrack  mtpd                 robolectric-shadows           turbine
ant-glob                 curl            glide                 jsmn                libnfnetlink            nanohttpd            roboto-fonts                  u-boot
antlr                    dagger2         golang-protobuf       json-c              libnl                   nanopb-c             rootdev                       ukey2
ant-wireless             deqp            google-benchmark      jsoncpp             libogg                  naver-fonts          rust                          unicode
apache-commons-bcel      deqp-deps       google-breakpad       jsr305              libopus                 neon_2_sse           scapy                         universal-tween-engine
apache-commons-compress  desugar         google-fonts          jsr330              libpcap                 neven                scrypt                        v4l2_codec2
apache-commons-math      dexmaker        google-fruit          junit               libphonenumber          newfs_msdos          scudo                         v8
apache-harmony           dlmalloc        google-styleguide     junit-params        libpng                  nfacct               seccomp-tests                 vboot_reference
apache-http              dng_sdk         googletest            kernel-headers      libprotobuf-mutator     nist-pkits           selinux                       virglrenderer
apache-xml               dnsmasq         gptfdisk              kmod                libsrtp2                nist-sip             setupcompat                   vixl
arm-neon-tests           doclava         grpc-grpc             kotlinc             libtextclassifier       nos                  setupdesign                   vogar
arm-optimized-routines   dokka           grpc-grpc-java        kotlinx.coroutines  libunwind               noto-fonts           sfntly                        volley
arm-trusted-firmware     drm_hwcomposer  guava                 ksoap2              libunwind_llvm          oauth                shaderc                       vulkan-headers
autotest                 drrickorang     guice                 libaom              libusb                  objenesis            shflags                       vulkan-validation-layers
avb                      dtc             gwp_asan              libavc              libutf                  oj-libjdwp           skia                          walt
bc                       dynamic_depth   hamcrest              libbackup           libvpx                  okhttp               skqp                          wayland
bcc                      e2fsprogs       harfbuzz_ng           libbrillo           libvterm                one-true-awk         sl4a                          wayland-protocols
blktrace                 easymock        honggfuzz             libcap              libxaac                 opencensus-java      slf4j                         webp
boringssl                eigen           hyphenation-patterns  libcap-ng           libxkbcommon            OpenCL-CTS           smali                         webrtc
bouncycastle             elfutils        icu                   libchrome           libxml2                 OpenCSD              snakeyaml                     wpa_supplicant_8
brotli                   emma            igt-gpu-tools         libcups             libyuv                  openssh              sonic                         wycheproof
bsdiff                   error_prone     image_io              libcxx              linux-kselftest         oss-fuzz             sonivox                       xmp_toolkit
bzip2                    ethtool         ImageMagick           libcxxabi           llvm                    owasp                speex                         XNNPACK
caliper                  exoplayer       ims                   libdaemon           lmfit                   parameter-framework  sqlite                        xz-embedded
capstone                 expat           iperf3                libdivsufsort       ltp                     pcre                 squashfs-tools                xz-java
catch2                   f2fs-tools      iproute2              libdrm              lua                     pdfium               strace                        yapf
cblas                    fastrpc         ipsec-tools           libepoxy            lz4                     perfetto             stressapptest                 zlib
cbor-java                fdlibm          iptables              libese              lzma                    piex                 subsampling-scale-image-view  zopfli
chromium-libpac          fec             iputils               libevent            markdown                ply                  swiftshader                   zxing
chromium-trace           flac            iw                    libexif             mdnsresponder           ppp                  tagsoup
chromium-webview         flatbuffers     jacoco                libffi              mesa3d                  proguard             tcpdump
clang                    fmtlib          jarjar                libfuse             mime-support            protobuf             tensorflow
cldr                     fonttools       javaparser            libgav1             minigbm                 psimd                testng
cn-cbor                  FP16            javapoet              libgsm              minijail                pthreadpool          tinyalsa
compiler-rt              freetype        javasqlite            libhevc             mksh                    puffin               tinycompress
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抓饼先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值