平台ubuntu 64, 环境 android 4.0.3, 可以直接编译出可安装apk的Android.mk大致如下

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# We only want this apk build for tests.

LOCAL_MODULE_TAGS := eng

# 加入这个选项,避免生成odex文件

WITH_DEXPREOPT := false

LOCAL_STATIC_JAVA_LIBRARIES := libarity android-support-v4

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_SDK_VERSION := current

LOCAL_PACKAGE_NAME := kivi

include $(BUILD_PACKAGE)

在android里如何将一个应用的apk包编译到自己的系统里呢,我总结了一下三种方法,供大家参考:

方法一:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

file := $(TARGET_OUT_APPS)/AppInstaller.apk

$(file) : $(LOCAL_PATH)/AppInstaller.apk | $(ACP)

$(transform-prebuilt-to-target)

ALL_PREBUILT += $(file)

方法二:

include$(CLEAR_VARS)

LOCAL_SRC_FILES:= AppInstaller.apk

LOCAL_BUILT_MODULE_STEM:= AppInstaller.apk

LOCAL_MODULE_SUFFIX:= .pak

LOCAL_MODULE:= AppInstaller

LOCAL_MODULE_CLASS:= APPS

LOCAL_CERTIFICATE:= paltform

include$(BUILD_PREBUILT)

方法三:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := AppInstaller.apk

LOCAL_MODULE_TAGS := user

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_PATH :=$(TARGET_OUT_APP)

LOCAL_SRC_FILES := $(LOCAL_MODULE)

LOCAL_CERTIFICATE := paltform

include $(BUILD_PREBUILT)

如果你想了解Android.mk的更多内容请参考《Android.mk简介》

一、编译一个简单的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)

注:LOCAL_STATIC_JAVA_LIBRARIES 后面应是你的APK程序所需要的JAVA库的JAR文件名。

三、编译一个需要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)

注:LOCAL_CERTIFICATE 后面应该是签名文件的文件名

四、编译一个需要特殊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)

六、装载需要.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)

注:LOCAL_JAVA_LIBRARIES表示生成的java库的jar文件名。

android.mk 编译选项,Android.mk中加入选项,编译生成可以直接安装的apk包相关推荐

  1. android ndk 编译选项,Android NDK 对于c++的支持(mk文件内编译选项)

    2019独角兽企业重金招聘Python工程师标准>>> 一   Android ndk  支持c ++标准库文档,阉割很多c++  stl特性 C++ support with th ...

  2. python安装第三方包出现无法在安装目录中创建文件_解决pip安装的第三方包在PyCharm无法导入的问题...

    一般我们安装Python的第三方包都会在终端执行下列命令进行安装: pip install 要安装的包名 安装成功后发现在PyCharm中仍然存在找不到包的问题,为什么呢? 总之就是PyCharm找不 ...

  3. Android签名版本,签名版本以供发布  |  Android 开源项目  |  Android Open Source Project...

    Android 操作系统映像在两个地方使用加密签名: 映像中的所有 .apk 文件都必须经过签名.Android 软件包管理器通过下列两种方式使用 .apk 签名:更换应用时,必须使用与旧应用相同的密 ...

  4. Visual Studio 2017为Android APK包签名

    Visual Studio 2017为Android APK包签名 为Android APK包签名,可以保证后期的App顺利升级.在Visual Studio 2015中,IDE会自动生成两个APK包 ...

  5. android packagemanagerservice目录,Android重学系列 PackageManagerService的启动与安装(下)

    前言 PMS installStage PMS中的安装步骤 void installStage(String packageName, File stagedDir, IPackageInstallO ...

  6. unity语音聊天--亲加通讯云(Android/iOS)---android

    注:最近项目需求要做语音聊天这一块的功能,想了几种方案,最后还是决定用第三方服务,毕竟日活50W以下亲加是免费的! 亲加官方给了一定的技术文档,但是遇到很多坑,我顺便都介绍一下 废话不多说,先介绍An ...

  7. android 换主题换皮肤(apk包方式)

    更换皮肤(主题)的方式有很多种,首先要弄清楚换肤的定义,软件皮肤包括图标.字体.布局.交互风格等,换肤就是换掉皮肤包括的部分或者全部资源.皮肤一般含多个文件,有图片.配置等文件,分散的文件不利于传输和 ...

  8. Node.js中创建package.json文件,安装第三方包

    在当前项目根目录下打开命令窗口 输入,开启安装向导 npm init 依次输入之后即可生成package.json文件,也可以不完全填写全部信息,不想填的回车可跳过. package name: (包 ...

  9. android.mk local_cppflags,android.mk中LOCAL_CFLAGS 介绍

    模块描述变量: 下面的变量用于向编译系统描述你的模块.你应该定义在'include $(CLEAR_VARS)'和'include $(BUILD_XXXXX)'之间定义.正如前面描写的那样,$(CL ...

  10. 深入浅出Android NDK之Android.mk常用C/C++编译选项

    目录 上一篇 深入浅出Android NDK之Android.mk基本语法 在之前的深入浅出Android NDK之Hello-Ndk一章我们已经学习了编译一个动态库.静态库.可执行文件所需要的最基本 ...

最新文章

  1. 注册CSDN帐号的见闻续
  2. android7.0 拦截短信,变化很大!微信安卓版7.0.17内测体验
  3. 面试编程岗,期望40K,为什么老板给我翻倍?
  4. gridcontrol选中多行数据进行复制_终于整理全了,数据核对的6钟方法,掌握它们数据核对你就是大神...
  5. plsql 误删表,使用flashback query恢复被删除plsql
  6. java虚拟机之垃圾回收器
  7. 数据结构课程设计实验报告
  8. Keil 5 解锁被锁定的文件 修改其中的代码 STM32
  9. CI管道-Github+ACR
  10. git log 查找某天之后的提交
  11. PC浏览器模拟手机浏览器访问网站
  12. PyQt5 --- 进度条拖动点击视频播放
  13. Combo( 自定义下拉框) 组件
  14. 妙用CSS变量,让你的CSS变得更心动
  15. 从用户心理看游戏运营和推广
  16. 创建steam账户反复人机验证_Steam国区已经无法注册新账号!原因是添加了这个。。。...
  17. 朴素贝叶斯分类器实现正面负面文本分类
  18. neo4j使用教程(数据的导入和简单的语句)
  19. 设备管理之磁盘存储管理
  20. Python解决unicode编码 \xe7\xbb\x87转化为中文

热门文章

  1. 《Linux/UNIX OpenLDAP实战指南》——1.4 OpenLDAP目录条目概述
  2. CSS布局:图片在DIV中上下左右居中(水平和垂直都居中)
  3. ios - 带动画圆形旋转的进度条
  4. 美国Compuware败退中国市场!又一家外企逃离
  5. Android SDK Manager Proxy on MAC
  6. Kyoto Tycoon挂载LevelDB,编译安装篇
  7. Ulipad中设置自定义模块(module)路径的方法(图)
  8. 05-Vue报错 Uncaught SyntaxError: Identifier has already been declared和路由
  9. c# 通过MailHelper发送QQ邮件
  10. python 函数篇(2)