framework开发:Android系统内置app

需求

将一个打包好的apk,内置进入系统,并且不能卸载。

思路

1.在package/apps/目录下创建相应的文件夹如:MyApp
2.在build/make/target/product/core.mk加入该Module名字
3.再进行整体的make既可以

实战

在这里插入图片描述

1、不带so的应用

1.1设置Android.mk

#源文件在开发树中的位置
LOCAL_PATH:= $(call my-dir)
#清除LOCAL_PATH变量之外的LOCAL_XXX变量
include $(CLEAR_VARS)
$(warning "MyApp of LOCAL_PATH is $(LOCAL_PATH)")#打印输出
# Module name should match apk name to be installed 生成的模块名称
LOCAL_MODULE := MyApp
#编译的标签
LOCAL_MODULE_TAGS := optional 
#不管是user 还是eng 版本都会编译此app
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#指定签名
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)

1.2 文件复制

  • 在 AOPS8/packages/apps下新增文件夹 MyApp
  • 将Android.mk以及对应的apk安装包拷贝到MyApp文件夹
  • 重新编译make
  • 如下图,APP无法被卸载
    在这里插入图片描述在这里插入图片描述

2、带so的应用

2.1设置Android.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
$(warning "MyApp of LOCAL_PATH is $(LOCAL_PATH)")
# Module name should match apk name to be installed
LOCAL_MODULE := MyApp_SO
LOCAL_MODULE_TAGS := optional 
#不管是user 还是eng 版本都会编译此app
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PREBUILT_JNI_LIBS := lib/x86_64/libnative-lib.so
#@lib/x86/libtest.so \  //注意前面要用tab键隔开
	#@lib/x86/libtest2.so   //这是你需要添加的so 如果是 armeabi-v7a 直接替换掉armeabi
LOCAL_CERTIFICATE := platform
#表示app已经签名
include $(BUILD_PREBUILT)

2.2 文件复制

  • 在 AOPS8/packages/apps下新增文件夹 MyAppSo
  • 将Android.mk以及对应的apk安装包拷贝到MyAppSo文件夹
  • 在MyAppSo文件夹内新增lib文件,将apk内的lib包文件全部拷贝进去,并且在mk文件里配置
  • 将apk包内的so文件拷贝到x86_64文件夹
  • 重新编译make

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值