Android系统预制APK、so和bin的方法
来源:互联网 发布:网络教育好不好 编辑:程序博客网 时间:2024/05/16 00:29
一、Android系统中预制APK
1. 预制有源码的APK的Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional // optional:指该模块在所有版本下都编译
LOCAL_SRC_FILES := $(call all-java-files-under, src)// 获取所有子目录的java文件
LOCAL_PACKAGE_NAME := TestDemo // 包名
LOCAL_CERTIFICATE := platform //签名
LOCAL_PROGUARD_ENABLED := disabled //不要使用代码混淆的工具进行混淆
include $(BUILD_PACKAGE) // 编译 APK
2. 预制没有源码的APK的Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := SogouInput
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE:=PRESIGNED // 签名,注意,PRESIGNED表示保留apk文件之前的签名
#LOCAL_CERTIFICATE:=platform // 签名,注意,platform是对apk重新进行签名
LOCAL_SRC_FILES := $(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
注:device.mk中需要添加PRODUCT_PACKAGES += LOCAL_MODULE,
这样在Android代码全Build时,APK才会预制到system.img里面。
二、Android系统中预制so
1. 预制有源码的so的Android.mk
LOCAL_PATH := $(call my-dir)
sources := ***
cincludes := ***
LOCAL_MODULE := lib
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(sources)
LOCAL_C_INCLUDES := $(cincludes)LOCAL_32_BIT_ONLY := true
LOCAL_CFLAGS := -DMSOS_TYPE_LINUX -DENABLE_LOGGER
LOCAL_SHARED_LIBRARIES := *** ***
LOCAL_MODULE_TARGET_ARCH:= arm64//如果64换成32就是32bit
LOCAL_MULTILIB := 64 //如果64换成32就是32bit
include $(BUILD_SHARED_LIBRARY)
2. 预制没有源码的so的Android.mk
// 如果同时预制32位和64位的so
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE := libabc
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_SRC_FILES_arm :=lib/abc.so
LOCAL_SRC_FILES_arm64 :=lib64/libabc.so
LOCAL_MODULE_TARGET_ARCHS:= arm arm64
LOCAL_MULTILIB := both
include $(BUILD_PREBUILT)
//如果只预制32 bit的so
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE := libabc
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_SRC_FILES_arm :=lib/libabc.so
LOCAL_MODULE_TARGET_ARCHS:= arm
LOCAL_MULTILIB := 32
include $(BUILD_PREBUILT)
//如果只想预制64 bit的so
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE := libabc
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_SRC_FILES_arm64 :=lib64/libabc.so
LOCAL_MODULE_TARGET_ARCHS:= arm64
LOCAL_MULTILIB := 64
include $(BUILD_PREBUILT)
注:so文件涉及到ABI的兼容性问题,详细可参考如下博客的文章:
http://blog.csdn.net/yanleizhouqing/article/details/51803392
三、Android系统中预制bin
1. 预制有源码的bin的Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= netcfg.c
LOCAL_MODULE:= netcfg
LOCAL_SHARED_LIBRARIES := libc libnetutils
include $(BUILD_EXECUTABLE)
2. 预制没有源码的bin的Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := pppd
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
3.apk的Android.mk中预制bin
LOCAL_POST_PROCESS_COMMAND := $(shell cp -rf $(LOCAL_PATH)/libs/armeabi/traceroute $(PRODUCT_OUT)/system/bin/opt/bin/)
// 此命令预制的bin apk有读写执行的权限
- Android系统预制APK、so和bin的方法
- android 预制32 64 位so, bin
- android 预制32 64 位so, bin
- android 预制32 64 位so, bin
- android 5.0预制APK方法
- android 5.0预制APK方法
- android 5.0预制APK方法,android5.0预制apk
- android 5.0预制APK方法,android5.0预制apk
- android 5.0预制APK方法,android5.0预制apk
- android 5.0预制APK方法,android5.0预制apk
- android 5.0预制APK方法,android5.0预制apk
- 预制第三方APK, 库的方法
- android 5.0预制APK
- Android 5.0预制APK
- 如何在 android 预制apk
- Android.mk编译.apk .so .jar .a第三方.apk .so .jar .a的方法
- Android的支持库 && app/apk包进系统 && 预置so库进系统 && 预置文件和文件夹进系统
- Android 系统安装 apk 时解压 so 的逻辑问题
- AJAX $.toJSON的用法或把数组转换成json类型
- oracle数据库员工表查询
- 51Nod 1042 数字0-9的数量
- CodeCombat中国 - 通过游戏学习编程,寓教于乐
- 手机端页面自适应解决方案—rem布局
- Android系统预制APK、so和bin的方法
- 滚动条只让行分页列不分页
- JS 如何判断一个数字在某一个区间内
- 编写头文件时需要注意的事
- 字符串查找
- 在单文档视图中加入对话框
- android button双击监听事件
- ios基本控件详解(持续更新)
- POI之setCellType操作数字类型