• Android系统源码目录详解


    关于源码的阅读,你可以访问:http://androidxref.com/

    我们要先了解Android系统源码目录,为后期源码学习打下基础。
    当然,最好是将源码下载下来。下载源码可以使用清华大学开源软件镜像站提供的Android 镜像:
    https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 
    如果觉得麻烦也可以查找国内的网盘进行下载,推荐使用该百度网盘地址下载:http://pan.baidu.com/s/1ngsZs
    它提供了多个Android版本的的源码下载。

    Android源码根目录(Android 10.0)目录类型描述是否常用
    1级目录2级目录3级目录   
    abi   应用程序二进制接口 
    art   全新的ART运行环境 
    bionic   系统C库,bionic c是Android重写的c库,所以Android使用的c库也并不是传统glibc。 
    bootable   启动引导相关代码 
    build   存放系统编译规则及generic等基础开发包配置常用
     kati  Android 7.0之后引入了ninja,并通过kati工具将makefile转化为ninja套件进行编译,用于提升编译效率。 
     soong  Android8.0之后引入了Android.bp,Android.bp也会被转化为.ninja文件,转换的工具是soong 
    compatibility     
    cts   Android兼容性测试套件标准 
    dalvik   虚拟机 
    developers   开发者目录 
    development   应用程序开发相关 
    device   设备相关配置常用
    docs   参考文档目录 
    external   开源模组相关文件 
    frameworks   存放Android SDK对外提供的API,Android系统核心部分,由Java和C++编写。 
     base    
      core android核心包 
      media 多媒体和音频相关内容 
      graphics 图形处理包 
      opengl Android OpenGL 3D实现 
      location 定位相关的内容 
      telephony 电话相关的内容 
      wifi 无线局域网相关内容 
    hardware   主要是硬件抽象层的代码 
    HW_Vendor_INTF     
    kernel     
    libcore   核心库相关文件 
    libnativehelper   动态库,实现JNI库的基础 
    ndk   NDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码 
    out   out下是编译完成后生产的各种文件,比如各种系统的apk文件,这些都是即将安装到Android设备上面的常用
    packages   应用程序包。package下包含很多Android项目的源码,手机上所有可以点击的图标其实都是一个Android项目,比如录音,电话,系统设置,或者三方的一些程序(阅读器,应用商城)等等常用
    pdk   Plug Development Kit 的缩写,本地开发套件 
    platform_testing   平台测试 
    prebuilts   x86和arm架构下预编译的一些资源 
    repohooks     
    sdk   sdk和模拟器 
    system   底层文件系统库、应用和组件 
    test     
    toolchain   工具链文件 
    tools   工具文件 
    vendor     
    Makefile   全局Makefile文件,用来定义编译规则 

     Android工程目录

    MyApplication
    .gradle
    .idea
    app
    build
    libs
    src
    androidTest
    main
    java
    com.example.myapplicationjava源代码包
    MainActivity
    res
    drawable图像描述文件与用户图片
    drawable-v24
    layoutApp页面的布局文件
    menu
    mipmap-xxx启动图标
    raw
    values各种常量定义文件
    AndroidMainfest.xmlApp的运行配置文件
    test
    .gitignore
    app.iml
    build.gradle模块级的编译配置
    proguard-rules.projava文件的代码混淆规则
    gradle
    wrapper
    .gitignore
    build.gradle
    gradle.properties编译工程的命令行参数
    gradlew
    gradlew.bat
    local.properties
    MyApplication.iml
    settings.gradle工程级的模块编译配置
    External Libraries
    Scratches and Consoles
  • 相关阅读:
    【JAVA】多线程
    【新书推荐】大模型赛道如何实现华丽的弯道超车 —— 《分布式统一大数据虚拟文件系统 Alluxio原理、技术与实践》
    javaSE笔试题
    参数传递的方式
    js小问题:E: missing ; before statement
    git中的cherry-pick和merge有些区别以及cherry-pick怎么用
    国产大语言模型ChatGLM3本地搭建、使用和功能扩展
    tomcat到底是干嘛的?
    day15文件操作
    MySQL之库操作
  • 原文地址:https://blog.csdn.net/wuzheyan2008/article/details/126249263