使用 CLion 查看 AOSP Native 代码
背景
Android Studio
对于 AOSP Native
部分的代码支持还不够完善,比如不支持跳转,无法查看引用以及无法通过 CTRL + F12
查看代码结构,给代码阅读造成了极大的不便。查看了谷歌官方文档,了解到可以通过配置 CMakeLists.txt
导入到 CLion
来进行阅读 Native
部分代码。
源码环境
本人使用的是 ProtonAOSP
,基于 AOSP
的三方 ROM
开源项目
生成 CLion
项目
配置相关环境变量用于生成 CMakeLists.txt
1 2
| $ export SOONG_GEN_CMAKEFILES=1 $ export SOONG_GEN_CMAKEFILES_DEBUG=1
|
编译相关模块
1 2
| $ source build/envsetup.sh $ mmm frameworks/av/media/mediaserver
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=11 TARGET_PRODUCT=aosp_arm TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=generic ...... ============================================ ...... [100% 4951/4951] Install: out/target/product/generic/system/bin/mediaserver
|
导入 CLion
1 2 3 4
| $ ls -l out/development/ide/clion/frameworks/av/media/mediaserver/mediaserver-arm-android total 44 drwxrwxr-x 4 shumxin shumxin 4096 8月 13 23:35 cmake-build-mediaserver -rw-rw-r-- 1 shumxin shumxin 40090 8月 13 23:28 CMakeLists.txt
|
在一个项目里面整合多个源码目录
比如想看 mediaserver
相关的 Native
代码,其有涉及到其他模块,可以重新创建一个 CMakeList.txt
放在 out/development/ide/clion/frameworks
下,将相关模块整合进来,如下:
1 2 3 4 5 6
| cmake_minimum_required(VERSION 3.6) project(frameworks) add_subdirectory(av/media/libmediaplayerservice/libmediaplayerservice-arm-android) add_subdirectory(av/media/mediaserver/mediaserver-arm-android) add_subdirectory(native/cmds/servicemanager/servicemanager-arm-android) add_subdirectory(native/libs/binder/libbinder-arm-android)
|
