android系统内置第三方app

本文详细介绍如何在Android项目中内置第三方应用,包括创建文件夹、编辑Android.mk文件配置及最终编译验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内置第三方app算是基本的常用需求,每个项目总会需要内置那么一两个,下面看看如何内置app

  1. 新建文件夹(源码目录下,位置任意,但是不能放太深不然刚开始编译遍历android.mk的时候无法遍历到) 命名app的名字(这样方便查找),将要内置的app放入文件夹中。
  2. 在新建文件夹中添加空文件,文件名Android.mk ,在文件中添加(以google拼音输入法为例)
#将当前的路径赋值给LOCAL_PATH
LOCAL_PATH := $(call my-dir)

#具体什么意思不懂,但是其他的每份Android.mk都有这句就借鉴过来了
include $(CLEAR_VARS)
#定义模块的名称,一般就是app的名字
LOCAL_MODULE := GoogleInput
#要在哪总版本下编译,可选择值有user eng tests optional,optional表示任意版本都编译
LOCAL_MODULE_TAGS := optional 
#源app的位置
LOCAL_SRC_FILES := GoogleInput.apk
#定义编译完成之后的类型:除了APPS,还有ETC,EXECUTABLES(.bin)SHARED_LIBRARIES(.so) 等选择值
LOCAL_MODULE_CLASS := APPS
#定义编译完成之后模块的后缀
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

#添加lib文件的引用,使用LOCAL_PREBUILT_JNI_LIBS列出所有so的路径,不要忘记使用@。@标识符会将apk中的so抽离出来build进apk同级目录下的lib文件夹中,可根据CPU 的(TARGET_ARCH)不同类型对SO  进行处理。
LOCAL_PREBUILT_JNI_LIBS := \
	@lib/armeabi-v7a/liben_data_bundle.so \
	@lib/armeabi-v7a/libgnustl_shared.so \
	@lib/armeabi-v7a/libhmm_gesture_hwr_zh.so \
	@lib/armeabi-v7a/libhwrword.so \
	@lib/armeabi-v7a/libpinyin_data_bundle.so

#定义编译之后的位置
LOCAL_MODULE_PATH := $(TARGET_OUT)/app
#定义使用原app签名可用选择项platform,shared,media
LOCAL_CERTIFICATE := PRESIGNED
#不进行odex化
LOCAL_DEX_PREOPT := false

#具体什么意思不懂,但是其他的app每份Android.mk都有这句就借鉴过来了
include $(BUILD_PREBUILT)

  1. 最后一步 将PRODUCT_PACKAGES += GoogleInput 加入的能的系统编译的的.mk中。PRODUCT_PACKAGES后跟的是模块名称

最最后全编验证

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值