android.mk 编译选项,Android.mk中加入选项,编译生成可以直接安装的apk包
平台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包相关推荐
- android ndk 编译选项,Android NDK 对于c++的支持(mk文件内编译选项)
2019独角兽企业重金招聘Python工程师标准>>> 一 Android ndk 支持c ++标准库文档,阉割很多c++ stl特性 C++ support with th ...
- python安装第三方包出现无法在安装目录中创建文件_解决pip安装的第三方包在PyCharm无法导入的问题...
一般我们安装Python的第三方包都会在终端执行下列命令进行安装: pip install 要安装的包名 安装成功后发现在PyCharm中仍然存在找不到包的问题,为什么呢? 总之就是PyCharm找不 ...
- Android签名版本,签名版本以供发布 | Android 开源项目 | Android Open Source Project...
Android 操作系统映像在两个地方使用加密签名: 映像中的所有 .apk 文件都必须经过签名.Android 软件包管理器通过下列两种方式使用 .apk 签名:更换应用时,必须使用与旧应用相同的密 ...
- Visual Studio 2017为Android APK包签名
Visual Studio 2017为Android APK包签名 为Android APK包签名,可以保证后期的App顺利升级.在Visual Studio 2015中,IDE会自动生成两个APK包 ...
- android packagemanagerservice目录,Android重学系列 PackageManagerService的启动与安装(下)
前言 PMS installStage PMS中的安装步骤 void installStage(String packageName, File stagedDir, IPackageInstallO ...
- unity语音聊天--亲加通讯云(Android/iOS)---android
注:最近项目需求要做语音聊天这一块的功能,想了几种方案,最后还是决定用第三方服务,毕竟日活50W以下亲加是免费的! 亲加官方给了一定的技术文档,但是遇到很多坑,我顺便都介绍一下 废话不多说,先介绍An ...
- android 换主题换皮肤(apk包方式)
更换皮肤(主题)的方式有很多种,首先要弄清楚换肤的定义,软件皮肤包括图标.字体.布局.交互风格等,换肤就是换掉皮肤包括的部分或者全部资源.皮肤一般含多个文件,有图片.配置等文件,分散的文件不利于传输和 ...
- Node.js中创建package.json文件,安装第三方包
在当前项目根目录下打开命令窗口 输入,开启安装向导 npm init 依次输入之后即可生成package.json文件,也可以不完全填写全部信息,不想填的回车可跳过. package name: (包 ...
- android.mk local_cppflags,android.mk中LOCAL_CFLAGS 介绍
模块描述变量: 下面的变量用于向编译系统描述你的模块.你应该定义在'include $(CLEAR_VARS)'和'include $(BUILD_XXXXX)'之间定义.正如前面描写的那样,$(CL ...
- 深入浅出Android NDK之Android.mk常用C/C++编译选项
目录 上一篇 深入浅出Android NDK之Android.mk基本语法 在之前的深入浅出Android NDK之Hello-Ndk一章我们已经学习了编译一个动态库.静态库.可执行文件所需要的最基本 ...
最新文章
- 注册CSDN帐号的见闻续
- android7.0 拦截短信,变化很大!微信安卓版7.0.17内测体验
- 面试编程岗,期望40K,为什么老板给我翻倍?
- gridcontrol选中多行数据进行复制_终于整理全了,数据核对的6钟方法,掌握它们数据核对你就是大神...
- plsql 误删表,使用flashback query恢复被删除plsql
- java虚拟机之垃圾回收器
- 数据结构课程设计实验报告
- Keil 5 解锁被锁定的文件 修改其中的代码 STM32
- CI管道-Github+ACR
- git log 查找某天之后的提交
- PC浏览器模拟手机浏览器访问网站
- PyQt5 --- 进度条拖动点击视频播放
- Combo( 自定义下拉框) 组件
- 妙用CSS变量,让你的CSS变得更心动
- 从用户心理看游戏运营和推广
- 创建steam账户反复人机验证_Steam国区已经无法注册新账号!原因是添加了这个。。。...
- 朴素贝叶斯分类器实现正面负面文本分类
- neo4j使用教程(数据的导入和简单的语句)
- 设备管理之磁盘存储管理
- Python解决unicode编码 \xe7\xbb\x87转化为中文
热门文章
- 《Linux/UNIX OpenLDAP实战指南》——1.4 OpenLDAP目录条目概述
- CSS布局:图片在DIV中上下左右居中(水平和垂直都居中)
- ios - 带动画圆形旋转的进度条
- 美国Compuware败退中国市场!又一家外企逃离
- Android SDK Manager Proxy on MAC
- Kyoto Tycoon挂载LevelDB,编译安装篇
- Ulipad中设置自定义模块(module)路径的方法(图)
- 05-Vue报错 Uncaught SyntaxError: Identifier has already been declared和路由
- c# 通过MailHelper发送QQ邮件
- python 函数篇(2)