• idgen导入Android11源码



    注意:

    1. 有些时候发现为啥自己编译就这么难呢?不是卡死就无数次重启虚拟机,一切的原罪在配置过低,换句话说就是
    2. 关于导入源码的下载参考 Android Studio for Platform (ASfP) 使用教程
    3. 内存消耗非常惊人!!! 建议编译内存在32G,避免出现卡顿甚至卡死,因为即使有交换内存仍然会卡顿,如下一共使用到11+8≈20G内存之多,加上Ubuntun本地内存高达7G左右,如果是虚拟机开发,建议直接上64G内存。
      在这里插入图片描述
      在这里插入图片描述
    配置

    1. 选择android.ipr导入源码
    2. 建立一个空的jdk, 并设置为工程依赖的jdk
    3. 删除所有的依赖库
    4. 将
    frameworks
    external目录作为依赖,并调整依赖优先级
    5. 将
    out/target/common/R/设置为依赖
    6. 将不需要的目录从索引中删除,提高检索速度
    **

    下载AS

    下载

    1. https://developer.android.com/studio/install?hl=zh-tw#linux
    2. 在这里插入图片描述
      3.双击解压到 :/opt/android-studio

    创建快捷方式
    /usr/share/applications/android-studio.desktop

    [Desktop Entry]
    Encoding=UTF-8
    Name=RealAndroidStudio                                     
    Comment=RealAndroidStudio                                  
    Exec=/opt/android-studio/bin/studio.sh
    Icon=/opt/android-studio/bin/studio.png
    Terminal=false
    StartupNotify=true
    Type=Application
    Categories=Application;Development;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    编译
    
    soruce build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j8
    mmm development/tools/idegen/
    . development/tools/idegen/idegen.sh
    
    sudo chmod 777 android.iml
    sudo chmod 777 android.ipr
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • android.ipr:通常是保存工程相关的设置,比如编译器配置,入口,相关的libraries等
    • android.iml:则是主要是描述了modules,比如modules的路径,依赖关系等.
    • android.iws:则主要是包含了一些个人工作区的设置.

    在这里插入图片描述

    在这里插入图片描述
    修改 iml 内容
    gedit /data/android-11.0.0_r9/android.iml

    1. 源码只需要external(第三方依赖),frameworks(框架)
        <content url="file://$MODULE_DIR$"> 
          <sourceFolder url="file://$MODULE_DIR$/external" isTestSource="false" /> 
          <sourceFolder url="file://$MODULE_DIR$/frameworks" isTestSource="false" />
          <excludeFolder url="file://$MODULE_DIR$/.repo" />
          <excludeFolder url="file://$MODULE_DIR$/abi" />
          <excludeFolder url="file://$MODULE_DIR$/art" />
          <excludeFolder url="file://$MODULE_DIR$/bionic" />
          <excludeFolder url="file://$MODULE_DIR$/bootable" />
          <excludeFolder url="file://$MODULE_DIR$/build" />
          <excludeFolder url="file://$MODULE_DIR$/cts" />
          <excludeFolder url="file://$MODULE_DIR$/dalvik" />
          <excludeFolder url="file://$MODULE_DIR$/developers" />
          <excludeFolder url="file://$MODULE_DIR$/development" />
          <excludeFolder url="file://$MODULE_DIR$/device" />
          <excludeFolder url="file://$MODULE_DIR$/docs" />
          <excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs" />
          <excludeFolder url="file://$MODULE_DIR$/hardware" />
          <excludeFolder url="file://$MODULE_DIR$/kernel" />
          <excludeFolder url="file://$MODULE_DIR$/libcore" />
          <excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
          <excludeFolder url="file://$MODULE_DIR$/ndk" />
          <excludeFolder url="file://$MODULE_DIR$/out" />
          <excludeFolder url="file://$MODULE_DIR$/pdk" />
          <excludeFolder url="file://$MODULE_DIR$/platform_testing" />
          <excludeFolder url="file://$MODULE_DIR$/prebuilt" />
          <excludeFolder url="file://$MODULE_DIR$/prebuilts" />
          <excludeFolder url="file://$MODULE_DIR$/rc_projects" />
          <excludeFolder url="file://$MODULE_DIR$/sdk" />
          <excludeFolder url="file://$MODULE_DIR$/system" />
          <excludeFolder url="file://$MODULE_DIR$/tools" />
          <excludeFolder url="file://$MODULE_DIR$/trusty" />
        </content>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    完成之后,按照上面说的步骤,使用Android Studio选中"android.ipr"打开项目即可。
    在这里插入图片描述

    源码依赖导入

    如果之前没有删除orderEntry* 会出现很多依赖项,直接删除,然后导入frameworksexternal源码依赖*

    在这里插入图片描述

    导入后提示如下
    在这里插入图片描述

    玩一下andorid.iml

    1. 我们删除整个项目
    在这里插入图片描述
    2. 打开iml 发现sourceFolder直接消失了,只剩下orderEntry 依赖
    在这里插入图片描述
    3.重新打开Project Structure
    在这里插入图片描述
    4.选择frameworkpackages 发现右边多了些Source Folders的源文件
    在这里插入图片描述

    https://blog.csdn.net/ChaoLi_Chen/article/details/121947970
    https://juejin.cn/post/6859181913232375815
    https://juejin.cn/post/7216495812577427517
    https://www.jianshu.com/p/30a628335114
    https://blog.csdn.net/qq_20330595/article/details/133764506

  • 相关阅读:
    table表格初始化根据字段数字排序,table表格进入后返回上一级设置,第一级隐藏
    c# 泛型
    Mac安装nacos超详细步骤|解决打不开http://127.0.0.1:8848/nacos
    毫秒级精度计划任务管理、系统运维管理、定时执行任务、定时任务执行、任务定时执行软件 —— 定时执行专家
    META在2022年提出的最新创新
    神经生物学博士就业前景,神经网络硕士就业前景
    [附源码]计算机毕业设计springboot天狗电子商城系统
    HTML事件列表
    【前端版】分布式医疗云平台【登陆页面修改、页面 title 修改、登陆接口准备说明、把前端和后端统一使用 git 管理、启动前端 VUE 项目、用户登陆】(十七)
    什么是黑盒测试
  • 原文地址:https://blog.csdn.net/qq_20330595/article/details/133862516