关于android.mk学习记录

以谷歌core的内置第三方应用的方式记录下学习内容吧

一下是在android 5.0 新添加的LOCAL_PREBUILT_JNI_LIBS方法用户提取第三方应用的lib方法

LOCAL_STATIC_JAVA_LIBRARIES则加载加载静态库的方式

 这样用于android5.0中方便理解第三方应用内置

<span style="font-family: Arial, Helvetica, sans-serif;">LOCAL_PATH := $(call my-dir)</span>

# -------------------------------------
include $(CLEAR_VARS)

LOCAL_MODULE := GmsCore
LOCAL_MODULE_TAGS := optional

LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE).apk
LOCAL_SRC_FILES := PrebuiltGmsCore.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_PREBUILT_JNI_LIBS := \
@lib/arm/libAppDataSearch.so \
@lib/arm/libappstreaming_jni.so \
@lib/arm/libconscrypt_gmscore_jni.so \
@lib/arm/libdirect-audio.so \
@lib/arm/libgcastv2_base.so \
@lib/arm/libgcastv2_support.so \
@lib/arm/libgmscore.so \
@lib/arm/libgms-ocrclient.so \
@lib/arm/libjgcastservice.so \
@lib/arm/libleveldbjni.so \
@lib/arm/libNearbyApp.so \
@lib/arm/libsslwrapper_jni.so \
@lib/arm/libwearable-selector.so \
@lib/arm/libWhisper.so

LOCAL_STATIC_JAVA_LIBRARIES := camera2 \
dialer \
maps \
media_effects \
widevine_software

LOCAL_MULTILIB := 32
LOCAL_PRIVILEGED_MODULE := true
LOCAL_CERTIFICATE := PRESIGNED
#LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := camera2:framework/com.google.android.camera2.jar \
dialer:framework/com.google.android.dialer.support.jar	\
maps:framework/com.google.android.maps.jar	\
media_effects:framework/com.google.android.media.effects.jar	\
widevine_software:framework/com.google.widevine.software.drm.jar

include $(BUILD_MULTI_PREBUILT)


然后对于android4.x用户而言,5.0的新特性暂未适用于4.x

需要在android.mk后添加动态库声明

include $(CLEAR_VARS)

LOCAL_PREBUILT_LIBS := \
../lib/libfilterpack_facedetect:framework/lib/libfilterpack_facedetect.so \
../lib/libjni_latinime:framework/lib/libjni_latinime.so \
../lib/libjni_latinimegoogle:framework/lib/libjni_latinimegoogle.so \
libjni_latinime:framework/lib64/libjni_latinime.so \
libjni_latinimegoogle:framework/lib64/libjni_latinimegoogle.so

include $(BUILD_MULTI_PREBUILT)
才能在内置apk下引用

LOCAL_REQUIRED_MODULES := \
    libBDVoiceRecognitionClient_MFE_V1 \
libiomx-gingerbread \
libiomx-hc \
libiomx-ics \
libp2pcore \
libtpnsSecurity \
libtpnsWatchdog \
libvjplayer_jni




LOCAL_MODULE_PATH := $(TARGET_OUT)...中,是把apk 内置的位置


让module对象输出至out\target\product\watermelon\system\vendor

通常不能太依靠网络上的写法,android根据不同的系统和不同的平台有不同的写法

app内置的方向有

/system/pri-app,/vendor/app,和/data/app



  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这些都是 Android NDK 内部的 `Android.mk` 文件。其中,`./android-ndk-r25c/sources/android/native_app_glue/Android.mk` 是用于编译 Native Activity 示例应用程序的 `Android.mk` 文件;`./android-ndk-r25c/sources/android/support/Android.mk` 是包含一些 Android 支持库的 `Android.mk` 文件;`./android-ndk-r25c/sources/android/ndk_helper/Android.mk` 是包含一些辅助函数和类的 `Android.mk` 文件;`./android-ndk-r25c/sources/android/cpufeatures/Android.mk` 是用于编译 `cpufeatures` 库的 `Android.mk` 文件,该库提供了一些 CPU 相关的信息和功能;`./android-ndk-r25c/sources/cxx-stl/llvm-libc++abi/Android.mk` 和 `./android-ndk-r25c/sources/cxx-stl/llvm-libc++/Android.mk` 是用于编译 C++ STL 库的 `Android.mk` 文件,分别对应 libc++abi 和 libc++ 两个 STL 库;`./android-ndk-r25c/sources/third_party/googletest/Android.mk` 是用于编译 Google Test 测试框架的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/shaderc/Android.mk` 是用于编译 Shaderc 编译器的 `Android.mk` 文件,该编译器可以将 GLSL 代码编译成 SPIR-V 代码;`./android-ndk-r25c/sources/third_party/shaderc/libshaderc/Android.mk` 是用于编译 Shaderc 库的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/shaderc/libshaderc_util/Android.mk` 是用于编译 Shaderc Util 库的 `Android.mk` 文件,该库提供了一些辅助函数和类;`./android-ndk-r25c/sources/third_party/shaderc/third_party/Android.mk` 是用于编译 Shaderc 编译器依赖的第三方库的 `Android.mk` 文件,包括 glslang 和 spirv-tools 两个库;`./android-ndk-r25c/sources/third_party/shaderc/third_party/glslang/Android.mk` 是用于编译 glslang 库的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/shaderc/third_party/spirv-tools/Android.mk` 是用于编译 spirv-tools 库的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/vulkan/src/build-android/jni/Android.mk` 是用于编译 Vulkan 库的 `Android.mk` 文件。 如果您要在 Android NDK 中编写自己的 `Android.mk` 文件,可以参考这些示例文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值