作者:Season3266
一、aidegen介绍
aidegen是AOSP中自带的一个工具,可以将源码中的某个工程导入进IDE,从而可以使用IDE的智能提示,提高编码效率。而源码中的工程并不是独立存在的,还会依赖其他工程中的各种模块,aidegen 会主动把对应的模块编译一遍,同时把这些依赖都整理好导入到IDE中,从而避免因为找不到依赖而爆红的问题。
二、aidegen用法
在使用aidegen之前,首先需要在AOSP根目录下执行:
$ source build/envsetup.sh && lunch <TARGET>
然后便可以使用aidegen命令了。
aidegen使用方法为:
$ aidegen modulename -i [c/s/j] -p [clion path] -s [skip build]
modulename,模块名称,也就是工程中Android.bp中的name字段
-i 指定IDE,c = Clion, s = Android Studio, j = Intellij
-p 指定IDE路径,如: /home/season/Applications/CLion
-s 是否跳过build,第一次执行时会编译工程,编译过一次之后,可以加这个标记跳过编译过程
例如:
$ aidegen android.hardware.automotive.vehicle@V1-default-service -i c -p /home/season/Applications/CLion
上述命令执行完毕将会用CLion打开android.hardware.automotive.vehicle@V1-default-service这个工程
三、配置Clion toolchains
在正常情况下,打开CLion后仍然会爆红,提示找不到各种文件,这个时候需要重新配置一下build toolchain,将默认的build toolchain配置为Android SDK中的CMake和NDK中的Compiler即可。
1.安装Cmake和NDK
打开Android Studio SDK Manager,安装Cmake和NDK:
任选一个版本安装都可以。
2.配置Clion toolchains
打开Clion设置,选择Build,Execution,Deployment -> Toolchains:
点击+ 号,创建一个新的Toolchains,Name随便填,如:System
重点设置CMake,C Compiler,C++ Compiler三个选项,路径设置为Android SDK目录中的CMake和NDK。
例如:
CMake:
/home/season/Android/Sdk/cmake/3.22.1/bin/cmake
C Compiler:
/home/season/Android/Sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android33-clang
C++ Compiler:
/home/season/Android/Sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android33-clang++
3.设置工程,使用新的toolchains
打开Clion设置,选择Build,Execution,Deployment -> CMake:
在Toolchain这一栏中,下拉选择刚创建的Toolchain,然后保存
4.Reload Project
点击File -> Reload CMake Project重新加载工程即可。
5.如果遇到提示:This file does not belong to any project target; code insight features might not work property; 直接根据提示将该文件添加到CMakeList中即可
Android 学习笔录
Android 性能优化篇:https://qr18.cn/FVlo89
Android 车载篇:https://qr18.cn/F05ZCM
Android 逆向安全学习笔记:https://qr18.cn/CQ5TcL
Android Framework底层原理篇:https://qr18.cn/AQpN4J
Android 音视频篇:https://qr18.cn/Ei3VPD
Jetpack全家桶篇(内含Compose):https://qr18.cn/A0gajp
Kotlin 篇:https://qr18.cn/CdjtAF
Gradle 篇:https://qr18.cn/DzrmMB
OkHttp 源码解析笔记:https://qr18.cn/Cw0pBD
Flutter 篇:https://qr18.cn/DIvKma
Android 八大知识体:https://qr18.cn/CyxarU
Android 核心笔记:https://qr21.cn/CaZQLo
Android 往年面试题锦:https://qr18.cn/CKV8OZ
2023年最新Android 面试题集:https://qr18.cn/CgxrRy
Android 车载开发岗位面试习题:https://qr18.cn/FTlyCJ
音视频面试题锦:https://qr18.cn/AcV6Ap