当前位置:   article > 正文

APP 引用第三方aar包和jar包 Android.bp 和 Android.mk 编写_android.bp 引入assets

android.bp 引入assets

APP 引用第三方aar包和jar包 Android.bp 和 Android.mk 编写

项目目录结构:

 Android.bp
 AndroidManifest.xml
 Android.mk
 assets
 libs
 res
 src
第三方 aar 包 :phg_lib.aar
第三方 jar 包 : phg_test.jar
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Android.bp 编写:

android_library_import {  // 预编译 aar 包
   name: "phglib",
   aars: ["libs/phg_lib.aar"],
   sdk_version: "current",
}

java_import {  // 预编译 jar 包
    name: "phgtest",
    jars: ["libs/phg_test.jar"],
    sdk_version: "current",
}

android_app {
    name: "PHG_APP",
    certificate: "platform",

    srcs: ["src/**/*.java",
    ],

    static_libs: [
        "phglib",  // 引用 aar 包
        "phgtest", //引用 jar 包
        "android-support-v7-appcompat",
        "android-support-constraint-layout",
        "android-support-design",        
        "android.hidl.base-V1.0-java",
    ],

    resource_dirs: ["res"],
    asset_dirs: ["assets"],

    optimize: {  // 有时候编译会出错,需要加这个变量
        enabled: false,
    },

    dex_preopt: {  // 有时候编译会出错,需要加这个变量
        enabled: false,
    },

    platform_apis: true,

    aaptflags: [
       "--auto-add-overlay",
       "--extra-packages",  
       "com.test.phg.service", // 这里要加上 aar 包里面的包名,可以多个
    ],
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

Android.mk

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
// 预编译 aar 包 和 jar 包
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := phglib:libs/phg_lib.aar \ 
                                       phgtest:libs/phg_test.jar

include $(BUILD_MULTI_PREBUILT)


include $(CLEAR_VARS)

LOCAL_PACKAGE_NAME = CP_GFspmt

LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SRC_FILES += $(call all-Iaidl-files-under, src)
LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets

LOCAL_CERTIFICATE := platform

LOCAL_STATIC_JAVA_LIBRARIES := \
    android-support-v7-appcompat \
    android-support-constraint-layout \
    android-support-design \
    android.hidl.base-V1.0-java \
    phgtest   // 引用jar包
   

LOCAL_STATIC_JAVA_AAR_LIBRARIES += \
    phglib  //引用aar 包

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages com.test.phg.service \  // aar包里的包名,可以多个

#LOCAL_SDK_VERSION := current
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_MIN_SDK_VERSION := 25
#LOCAL_MODULE_TAGS := optional

include $(BUILD_PACKAGE)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

Android.mk 和Android.bp 的对应关系,可以查看 Android 源码下
/build/soong/androidmk/cmd/androidmk/android.go 文件

"LOCAL_SHARED_LIBRARIES":            "shared_libs",     【动态 引用 C/C++ 库】
"LOCAL_STATIC_LIBRARIES":            "static_libs",     【静态 引用 C/C++ 库】
"LOCAL_JAVA_LIBRARIES":              "libs",            【动态引用JAVA 库】
"LOCAL_STATIC_JAVA_LIBRARIES":       "static_libs",     【静态引用JAVA库】 

java_library                 会把aidl  java 等文件编译成  .jar 库
android_library              会把 xml 资源文件, aidl  java 等文件 编译成 .aar 库

java_import                   预编译 .jar 库 (引用 第三方 jar 库)
android_library_import       这是预编译 .aar 库 (引用第三方aar库)
android_app_import      这是 预编译 apk,相当于 BUILD_PREBUILT

默认模块可用于在多个模块中重复使用相同的属性 :
defaults  
cc_defaults
java_defaults
如:
cc_defaults {
    name: "gzip_defaults",
    shared_libs: ["libz"],
    stl: "none",
}
cc_binary {
    name: "gzip",
    **defaults**: ["gzip_defaults"],
    srcs: ["src/test/minigzip.c"],
}

hostdex: true                for hiddenapi check . Hostdex is only for ART testing on host: 

privileged: true,    // this needs to be a privileged application
dex_preopt: {     //Make sure the build system doesn't try to resign the APK
       enabled: false,
},
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/331410
推荐阅读
相关标签
  

闽ICP备14008679号