`

如何写Android.mk

 
阅读更多

如何将第三方的APK 加入到我们自己的 img 里面呢?

如果只有apk :

一:在/vendor/....../generic/apps/ 目录下创建新的目录如:test/

二:将apk 文件(如:AAA.apk)直接copy 到/vendor/....../generic/apps/test/ 目录中

三:在test 目录中创建Android.mk 文件,即此文件和AAA.apk 在同一目录下

四:编写Android.mk 脚本:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_POST_PROCESS_COMMAND := $(shell cp -r $(LOCAL_PATH)/AAA.apk$(TARGET_OUT)/app/)

如果有多个apk需要添加,直接复制LOCAL_POST_PROCESS_COMMAND............ 这一句,然后将AAA.apk 改为相应的名字即可。

保存脚本,编译sdk ,系统会自动将apk 文件copy 到/out/target/....../system/app 中,并将apk添加到system.img 中

TARGET_ROOT_OUT: 表示根文件系统 out/target/product/root/

TARGET_OUT: 表示system文件系统 out/target/product/system/

TARGET_OUT_DATA: 表示data文件系统 out/target/product/data/

如果只有源码,没有apk

一:将源码文件夹(test)copy 到/vendor/....../generic/apps/ 目录下创建新的目录下

二:在源码文件夹test 目录中创建Android.mk 文件

三:编写Android.mk 脚本:

。。。。。。。

保存脚本,编译sdk ,系统会自动编译源码生成对应的apk 文件,并且将其放到/out/target/....../system/app 中,最终将apk添加到system.img 中

编译一个简单的APK

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Build all java files in the java subdirectory

LOCAL_SRC_FILES := $(call all-subdir-java-files)

# Name of the APK to build

LOCAL_PACKAGE_NAME := LocalPackage

# Tell it to build an APK

include $(BUILD_PACKAGE)

编译一个依赖静态.jar文件的APK

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# List of static libraries to include in the package

LOCAL_STATIC_JAVA_LIBRARIES := static-library

# Build all java files in the java subdirectory

LOCAL_SRC_FILES := $(call all-subdir-java-files)

# Name of the APK to build

LOCAL_PACKAGE_NAME := LocalPackage

# Tell it to build an APK

include $(BUILD_PACKAGE)

编译一个需要platform key签名的APK

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Build all java files in the java subdirectory

LOCAL_SRC_FILES := $(call all-subdir-java-files)

# Name of the APK to build

LOCAL_PACKAGE_NAME := LocalPackage

LOCAL_CERTIFICATE := platform

# Tell it to build an APK

include $(BUILD_PACKAGE)

编译一个需要特殊vendor key签名的APK

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Build all java files in the java subdirectory

LOCAL_SRC_FILES := $(call all-subdir-java-files)

# Name of the APK to build

LOCAL_PACKAGE_NAME := LocalPackage

LOCAL_CERTIFICATE := vendor/example/certs/app

# Tell it to build an APK

include $(BUILD_PACKAGE)

添加一个第三方APK

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Module name should match apk name to be installed.

LOCAL_MODULE := LocalModuleName

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_CERTIFICATE := platform

include $(BUILD_PREBUILT)

第三方APK针对需要.so的apk的示例如下:

LOCAL_PATH := $(my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := baiduinput_android_v1.1_1000e

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_CERTIFICATE := platform

include $(BUILD_PREBUILT)

#################################################################

####### copy the library to /system/lib #########################

#################################################################

include $(CLEAR_VARS)

LOCAL_MODULE := libinputcore.so

LOCAL_MODULE_CLASS := SHARED_LIBRARIES

LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)

LOCAL_SRC_FILES := lib/$(LOCAL_MODULE)

OVERRIDE_BUILD_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)

include $(BUILD_PREBUILT)

添加静态java库

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Build all java files in the java subdirectory

LOCAL_SRC_FILES := $(call all-subdir-java-files)

# Any libraries that this library depends on

LOCAL_JAVA_LIBRARIES := android.test.runner

# The name of the jar file to create

LOCAL_MODULE := sample

# Build a static jar file.

include $(BUILD_STATIC_JAVA_LIBRARY)

分享到:
评论

相关推荐

    Android系统定制之Android.mk和Android.bp语法详解(精通版).mp4

    3.Android.mk或Android.bp中引用Android的第三方(jar、aar、so)、Androidx的类库等的使用方法 4.Android.mk或Android.bp编译生成Apk、静态库、动态库、可执行文件等的使用方法 5.Android系统定制有源码App或无源码...

    Android.mk转化Android.bp工具

    将android.mk转换为android.bp

    生成android.mk文件

    `android.mk`文件是Android原生构建系统(NDK)中用于定义模块构建规则的脚本,主要用于C/C++原生库的编译。本篇文章将深入探讨`android.mk`文件的生成及其作用。 **1. android.mk文件简介** `android.mk`文件是...

    androidmk 转换Android.bp工具方法

    本篇文章将详细介绍如何进行`androidmk`到`Android.bp`的转换,并探讨两者之间的差异以及转换工具的使用方法。 一、`Android.mk`与`Android.bp`概述 1. `Android.mk`:这是Android早期使用的构建系统,基于GNU ...

    Android NDK开发指南-android.mk文件

    "Android NDK开发指南-android.mk文件" Android NDK 是 Android 操作系统中的一种开发工具,用于使用 C/C++ 语言编写 Android 应用程序。Android.mk 文件是 NDK 中的一个重要组件,用于描述编译系统的配置,使得...

    高通8155p平台QNX+Android9开启ASAN定位内存问题方法Android.mk与Android.bp都有

    不会写Android.mk与Android.bp,或者常有编译问题的可以下载参考,解决无法使能ASAN的问题。不会用的一定要展开下面链接看使用方法,以及编译问题示例,别啥也不懂就开始抱怨。 使用方法参考: ...

    Android.mk文件语法规范

    Android.mk文件是Android系统构建过程中不可或缺的一部分,它用于定义模块(module)的编译规则,包括源文件、依赖项、编译选项等。本篇文章将深入探讨Android.mk文件的语法规范,帮助开发者理解和掌握Android系统...

    Android.mk 详解剖析

    **Android.mk 深度解析** Android.mk 是Android构建系统中的关键文件,它定义了如何编译和构建Android项目的特定部分,如APK程序、Java库、C/C++应用程序、静态库和动态库。这份文档将详细介绍Android.mk的各个方面...

    android studio 配置gradle使用android.mk编译jni

    android studio 配置gradle 使用android.mk进行编译jni,简单的jni调用,使用android.mk进行编译,注意事项:app下的gradle,以及编译生成的 .h文件,复制修改为 .cpp时,里面的文件的宏逻辑,最好去掉这个宏(#...

    Android.mk用法介绍

    Android.mk用法介绍 Android.mk文件是Android系统中的编译配置脚本,类似于Linux中的Makefile。它用于描述源代码结构,并告诉编译系统如何编译和生成目标文件。 Android.mk文件是GNU Makefile的一部分,将被编译...

    Android.mk文档规范

    ### Android.mk文档规范详解 #### 一、概述 Android.mk 文件是 Android NDK 的核心组成部分之一,用于描述 C 或 C++ 源代码文件的编译规则。通过深入理解 Android.mk 文档规范,开发者能够更好地掌握 Android 编译...

    android编译系统makefile(Android.mk)写法

    其中,`Android.mk`文件是Android构建系统的核心部分,它是一个Makefile,用于指导NDK(Native Development Kit)如何处理C/C++代码。本文将深入探讨`Android.mk`文件的写法和关键知识点。 1. **LOCAL_PATH变量的...

    android.mk 拷贝文件的脚本

    android 拷贝文件的mk脚本,bin,lib

    Cocos2d-x Android.mk文件自动修改器

    在Android平台上,构建Cocos2d-x项目时,开发者需要配置`Android.mk`文件,这是一个Makefile,用于指示Android NDK如何编译和链接C++源代码。然而,手动编辑`Android.mk`文件可能既耗时又容易出错。为了简化这一过程...

    Android.mk文件中文版

    ### Android.mk 文件详解 #### 一、概述 `Android.mk` 是 Android NDK(Native Development Kit)中的核心配置文件之一,用于定义如何编译 C/C++ 源代码以生成可执行文件、共享库或静态库。对于那些希望在 Android...

    Android_makefile编译系统_Android.mk_文件语法规范

    ### Android.mk 编译系统与文件语法规范 #### 引言 `Android.mk`作为Android NDK中的核心配置文件之一,主要用于向构建系统描述项目的C/C++源代码组织方式及构建逻辑。对于深入理解Android NDK项目构建流程、优化...

    ffmpeg 2.0 Android.mk file

    在你提供的文件列表中,我们看到三个相关的`Android.mk`文件:`Android_configure.mk`、`Android.mk`以及`Android_.mk`。这些文件是构建过程的关键部分,用于指定编译选项、依赖关系和目标。 `Android.mk`是Android...

    Android.mk编译内置无源码apk

    `Android.mk`文件是Android构建系统的关键部分,用于定义模块属性和编译规则。在本场景中,我们将讨论如何使用`Android.mk`来编译内置一个无源码的APK,即`wukong.apk`,并将其预置到Android系统的`packages/apps/...

    ffmpeg移植android需要的android.mk

    3. **Android.mk文件**:`Android.mk`是Android Makefile系统的文件,用于描述如何编译和链接本地C/C++代码。在FFmpeg移植过程中,我们需要创建一个自定义的`Android.mk`文件,声明FFmpeg源代码的位置、依赖库、编译...

    Android.mk文件语法规范及使用模板.pdf

    ### Android.mk 文件语法规范及使用模板详解 #### 一、引言 在深入探讨`Android.mk`文件的具体语法规范和使用模板之前,我们先来简要回顾一下`Android.mk`文件的基本概念及其在Android NDK中的作用。`Android.mk`...

Global site tag (gtag.js) - Google Analytics