解决 vscode 中导入 android aosp 源码卡顿问题

正常情况,我们clone 了 aosp 源码,直接导入vscode ,搜索和点击方法跳转都是要等半天的。解决方案如下,先查看一下源码下各目录的大小

du -h --max-depth=1 ~/aosp | sort -h

显然能看出整体源码占 305G,其中out .repo,prebuilts 占了大头,因此可以在vscode 设置排除,从而减少索引建立时间

我的排除列表

源码目录,新建一个.vscode 目录,下面创建一个 settings.json 文件

复制代码
{
    "files.exclude": {
        "**/.repo": true,
        "**/out": true,
        "**/prebuilts": true,
        "**/kernel": true,
        "**/cts": true,
        "**/packages": true,
        "**/developers/**": true,
        "**/development/**": true,
        "**/test/**": true,
        "**/tools/**": true,
        "**/platform_testing/**": true,
        "**/toolchain/**": true,
        "**/pdk/**": true,
        "**/sdk/**": true,
        "**/build/**": true
    },
    "search.exclude": {
        "**/.repo": true,
        "**/out": true,
        "**/prebuilts": true,
        "**/kernel": true,
        "**/cts": true,
        "**/packages": true,
        "**/developers/**": true,
        "**/development/**": true,
        "**/test/**": true,
        "**/tools/**": true,
        "**/platform_testing/**": true,
        "**/toolchain/**": true,
        "**/pdk/**": true,
        "**/sdk/**": true,
        "**/build/**": true
    },
    "files.watcherExclude": {
        "**/.repo/**": true,
        "**/out/**": true,
        "**/prebuilts/**": true,
        "**/kernel": true,
        "**/cts": true,
        "**/packages": true,
        "**/developers/**": true,
        "**/development/**": true,
        "**/test/**": true,
        "**/tools/**": true,
        "**/platform_testing/**": true,
        "**/toolchain/**": true,
        "**/pdk/**": true,
        "**/sdk/**": true,
        "**/build/**": true
    },
    "C_Cpp.errorSquiggles": "disabled",
    "java.project.sourcePaths": [
        "frameworks/base",
        "libcore"
    ],
    "java.import.exclusions": [
        "**/.repo",
        "**/out",
        "**/prebuilts",
        "**/external",
        "**/device",
        "**/kernel",
        "**/cts",
        "**/packages",
        "**/test",
        "**/tools",
        "**/developers",
        "**/development",
        "**/platform_testing",
        "**/sdk",
        "**/toolchain",
        "**/pdk",
        "**/bootable"
    ],
    "java.autobuild.enabled": false,
    "java.import.gradle.enabled": false,
    "java.import.maven.enabled": false
}

以上是我的一些排除选项,现在解决了搜索慢的问题,还存在点击代码接口跳转慢的问题需要解决

解决点击接口跳转慢的问题

在 ~/.vscode/c_cpp_properties.json 里粘贴这个完整配置,如果没有自行创建这个文件

复制代码
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/bionic/libc/include",
                "${workspaceFolder}/system/core/include",
                "${workspaceFolder}/frameworks/native/include",
                "${workspaceFolder}/frameworks/base/include",
                "${workspaceFolder}/hardware/libhardware/include",
                "${workspaceFolder}/external/**",
                "${workspaceFolder}/libnativehelper/include",
                "${workspaceFolder}/system/core/libcutils/include",
                "${workspaceFolder}/system/core/libutils/include",
                "${workspaceFolder}/frameworks/native/libs/binder/include"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

注意

如果配置都基本一样的情况,你的跳转或者搜索还是慢

  1. 看看配置的json 文件格式是否有误,例如结尾不能加逗号等等(可以发送给AI 帮你审查)
  2. 看看插件是否安装上,问ai 它会推荐对应的插件给你的。下面插件截图供参考,说不定过段时间就改名了,或者有其他更好用的插件,起码目前来说我的搜索慢,点击接口跳转慢或者无法跳转问题都得到解决了。
相关推荐
plainGeekDev10 小时前
JUnit 4 → JUnit 5 + Kotlin
android·java·kotlin
plainGeekDev10 小时前
Mockito → MockK
android·java·kotlin
10 小时前
使用ffmpeg将mp4视频转为m3u8格式
android·ffmpeg·音视频
00后程序员张10 小时前
使用Instruments工具深入分析iOS应用性能与启动时间优化
android·macos·ios·小程序·uni-app·cocoa·iphone
zbmwa11 小时前
jetpack compose 副作用 snapshotFlow
android
爱笑鱼11 小时前
Binder 实战(九):一次调用变慢,到底卡在客户端、驱动、Binder 线程还是 Handler?
android
2601_9609067211 小时前
AI研发加速中式及泛亚洲
人工智能·vscode·macos·sublime text·phpstorm
恋猫de小郭12 小时前
Flutter hit,一个可以灵活控制溢出点击的第三方包
android·前端·flutter
啦啦啦!12 小时前
虚拟机如何接入Codex并配置中转站(vscode插件版)
linux·vscode·ubuntu·编辑器
骇客野人12 小时前
IntelliJ IDEA 菜单中英对照
java·ide·intellij-idea