• Android.mk 使用 环境 小结


    一、将无源码的 APK 和它 依赖的库预置进系统,此apk可以升级

    二、



    ++++++++++++++++++++++++++++++

    一、将无源码的 APK 和它 依赖的库预置进系统,此apk可以升级

    ---------- cut here ------------------
    LOCAL_PATH := $(call my-dir)
    #预置aliuyi.apk
    
    include $(CLEAR_VARS)
    LOCAL_MODULE := wwwa.apk 
    LOCAL_SRC_FILES := aliuyi.apk
    LOCAL_MODULE_TAGS := optional
    LOCAL_MODULE_CLASS := APPS
    LOCAL_CERTIFICATE := PRESIGNED
    LOCAL_MODULE_PATH := $(TARGET_OUT)/app
    include $(BUILD_PREBUILT)
    
    #方法一:预置so等资源文件
    include $(CLEAR_VARS)
    LOCAL_MODULE := wanghai.so
    LOCAL_SRC_FILES := wanghai.so
    LOCAL_MODULE_TAGS := optional
    LOCAL_MODULE_CLASS := SHARED_LIBRARIES
    LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/
    include $(BUILD_PREBUILT)
    
    #方法二:预置so等资源文件
    
    include $(CLEAR_VARS)
    LOCAL_MODULE_TAGS := optional
    LOCAL_PREBUILT_LIBS := sdfapk.so sdffff.so
    include $(BUILD_MULTI_PREBUILT)

    #方法三:
    预置so等资源文件,在Android.mk里 添加 这样一句,注意:这样的方式 如果路径不存在,这条指令 执行 失败,但 不会 报错!
    $(shell cp -rf $(LOCAL_PATH)/libs/*.so $(TARGET_OUT)/lib)

     
    ---------- cut here ------------------
    解释:

    LOCAL_MODULE 指定 拷贝后的apk的名字(全名),这个变量里可以有路径,但路径也会被拷贝,创建如果 是在编译整个android的源码,这个apk必须已经添加到了PRODUCT_PACKAGES 变量里,否则 不会拷贝到,相应的位置,

    LOCAL_MODULE_PATH 指定拷贝的路径,如果路径不存在自己创建

    LOCAL_SRC_FILES 指定 源apk

    LOCAL_CERTIFICATE := PRESIGNED 表示 这个apk已经签过名了,系统不需要再次 签名;

    LOCAL_MODULE_CLASS 指定文件类型,apk文件用APPS, 并且 会检查 是否是apk文件,动态库so文件用SHARED_LIBRARIES ,bin文件用EXECUTABLES,其他文件 用ETC

    注意:若是被预置的apk里有so库,需要将从Test.apk的 so库拷贝到 out/target/product/xxx/system/lib/目录下,若无 so 库,则去掉此步;

    方法一 只能针对 一个文件,方法二 可以 针对多个文件,但 只能 把 文件 拷贝到 system/lib/ 下,
    Android提供了Prebuilt编译方法,两个文件prebuilt.mk和multi_prebuilt.mk,对应的方法宏是BUILD_PREBUILT和 BUILD_MULTI_PREBUILT。
    prebuilt.mk就是prebuilt的具体实现,它是针对独立一个文件的操作,multi_prebuilt.mk 可以针对多个文件的,它对多个文件进行判断,然后调用prebuilt对独立一个文件进行处理。








  • 相关阅读:
    git 的常用命令(未完待补充)
    Mysql占用内存过高参数优化
    mysql安全基线设置
    redis安全基线设置
    centos7安全基线设置
    检查shell脚本
    redis安装和配置
    TIME_WAIT状态全是3306解决办法
    PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted 错误
    tcp的三次握手和四次挥手(二)
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744742.html
Copyright © 2020-2023  润新知