Android查看源码编译中存在的库
问题场景:
Android.mk中想引入android的库如appcompat,但不知道他的库全称。
解决方法:
可以在源码中这样查找: find prebuilts/sdk/ -name Android.bp | xargs grep “name.*appcompat”
查找结果为:
、、、
prebuilts/sdk/current/androidx/Android.bp: name: “androidx.appcompat_appcompat-nodeps”, prebuilts/sdk/current/androidx/Android.bp: name: “androidx.appcompat_appcompat”, prebuilts/sdk/current/androidx/Android.bp: name: “androidx.emoji_emoji-appcompat-nodeps”, prebuilts/sdk/current/androidx/Android.bp: name: “androidx.emoji_emoji-appcompat”, prebuilts/sdk/current/support/Android.bp: name: “android-support-v7-appcompat-nodeps”, prebuilts/sdk/current/support/Android.bp: name: “android-support-v7-appcompat”, prebuilts/sdk/current/support/Android.bp: name: “android-support-emoji-appcompat-nodeps”, prebuilts/sdk/current/support/Android.bp: name: “android-support-emoji-appcompat”,
、、、
那选择其中的androidx.appcompat_appcompat引入
Android.mk的使用,如下:
LOCAL_STATIC_ANDROID_LIBRARIES += \
androidx.appcompat_appcompat \
androidx-constraintlayout_constraintlayout \
androidx.recyclerview_recyclerview \
。。。
其他的系统中存在的预编译包,也可以参考这个方法,在系统源码中进行确认是否存在。
对应已存在的可以直接使用,否则可以导入jar包,使用mk进行预编译再使用。