Android系统添加预置APP(so库自动释放)
将APK直接放入系统目录中,会导致APK找不到so文件。正常情况下的安装是使用PackageManager,它会将so文件拷贝到系统读取的so目录(system/lib或system/lib64)下,提供给App使用,系统应用不会使用PackageManager去安装,所以在使用系统应用前,需要提前将so文件拷贝到system/lib或system/lib64目录下。
那么有没有方法,在系统应用预装时,就自动提取apk中的so拷贝到system/lib或system/lib64目录下呢。下面阐述一下系统预置app的整个流程,包含对这个问题的解决
1、前提
(1)studio已编译好的app 并已经签名
(2)拥有系统源码
2、添加app到系统
将编译号的app在windows中解压,并得到 lib 文件夹,其中有很多的动态链接库(.so)
将编译好的apk如test.apk放到系统源码的packages/apps/test(test 自己创建的)中,
把上面解压的lib文件夹也放到test中。
3、编写Android.mk文件
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := Test
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/armeabi/libtest.so \ //注意前面要用tab键隔开。 通过这种方式来完成半自动提取apk中的so,并拷贝到system/lib或system/lib64目录下@lib/armeabi/libtest2.so //这是你需要添加的so。 如果是 armeabi-v7a 直接替换掉armeabi
LOCAL_CERTIFICATE := PRESIGNED //表示app已经签名
include $(BUILD_PREBUILT)
如果so文件是32位,而源码是针对64机器的,那么还需要在android.mk文件中加上
LOCAL_MULTILIB := 32
4、在系统预置app的配置文件中添加我们目录
我的系统源码的配置文件在bulid/target/product/generic.mk 这个文件中又包含其他的配置文件,最终就是在配置文件中的 PRODUCT_PACKAGES 标志下添加你的test目录
PRODUCT_PACKAGES := \Bluetooth \Camera2 \Gallery2 \Music \MusicFX \OneTimeInitializer \Provision \SystemUI \WallpaperCropper\test
Android系统添加预置APP(so库自动释放)相关推荐
- 为android系统添加USB AUDIO设备的放音和录音功能
转载请注明出处:http://blog.csdn.net/adits/article/details/8242146 开发环境简介 1. 主机系统: Unbuntu10.10 2. android系统 ...
- 为android系统添加USB AUDIO设备的放音和录音功能(转载)
开发环境简介 1. 主机系统: Unbuntu10.10 2. android系统版本: 4.0.3(Linux kernel 3.0.8) 综述 android的音频系统非常庞大复杂:涉及到java ...
- qt android 重启,一种Android系统支持QT APP的实现方法专利_专利查询 - 天眼查
1.一种Android系统支持QT APP的实现方法,其特征在于:所述实现方法首先使 Ministro服务能作为Android系统的系统应用程序运行,其次将QT程序依赖的QT库以及其 他文件部署到An ...
- 开发一个基于 Android系统车载智能APP
很久之前就想做一个车载相关的app.需要实现如下功能: (1)每0.2秒更新一次当前车辆的最新速度值. (2)可控制性记录行驶里程. (3)不连接网络情况下获取当前车辆位置.如(北京市X区X路X号) ...
- android系统视频剪辑app推荐,知乎10w人收藏:玩短视频必装的9款剪辑App(最全)...
声明:本文来自于微信公众号 微果酱(ID:wjam123456),作者: 橙子,授权站长之家转载发布. 做运营的 每天都要面临一些新难题 比如老板想追潮流做短视频 吐血写脚本.拍完视频 磨刀霍霍向 ...
- android系统裁剪之APP精简
APP精简的目标是精简手机root下system/app和system/priv-app两个目录里的APK文件. 精简的手段是:弄清这些应用的用处,搞明白这些应用是否对系统无用,有没有用需要根据自己的 ...
- Android系统添加USB共享网络
文章目录 一.代码修改: 1.内核添加RNDIS的支持 2.init.rc中增加两个针对usb0的配置服务 3.frameworks中修改配置 二.调试 测试平台:MT2712,Android9.0, ...
- text——为android系统添加一种默认字体,类似“sans”,“serif”,“monospace”
在android系统中,默认的中文字体只有一种:DroidSansFallback.ttf,如果想在android应用程序中随意设置想要的中文字体,除了在应用程序中通过assets目录引入字体文件外, ...
- 精简Android系统下的APP
当我们拿到Androd源码后,进行编译和烧写,发现里面有许许多多的内置apk和测试apk,这时就需要对系统里的apk进行精简了. 精简APP时候注意了,要先rm -rf out/target/prod ...
最新文章
- POJ 3458 Colour Sequence(简单题)
- (3)-JSONObject的过滤设置
- 数据库——mysql如何获取当前时间---https://www.cnblogs.com/Chenshuai7/p/5136469.html
- oracle数据文件5属于孤立,system数据文件问题库起不来,当家帮忙看看
- 《高等代数学》(姚慕生),习题1.4:行列式的展开和转置
- 【CISCN2021】第十四届全国大学生信息安全竞赛初赛-writeup
- Lucas-Kanade 20 Years On 正反向/累加/合成求解算法
- 类型查找器 ITypeFinder
- 帝恩思:网站被劫持跳转怎么办?
- MSDC 4.3 接口规范(26)
- 计算机与u盘连接使用,u盘虽然与电脑连接,但是插上后却没有反应,这该如何解决?...
- leaflet地图概念框架图
- 《D o C P》学习笔记(3 - 1)Regular Expressions, other languages and interpreters - Lesson 3
- 重启tomcat命令
- 【MySQL】6.0 表的增删查改
- Qt实现主窗口和子窗口的切换
- 22-函数与string 对象
- matlab fir系数,FIR滤波器的系数问题
- 红色藤野先生课件PPT模板
- zz .Net 实现游戏修改器
热门文章
- Okio基本使用以及源码分析
- 顶尖学术盛宴,CADD计算机辅助药物设计,AIDD人工智能药物发现与深度学习基因组概述
- LOOT 示波器软件功能 8位~13位垂直分辨率讲解
- 并发编程专题五-AbstractQueuedSynchronizer源码分析
- Nepxion Discovery学习笔记3 Sentinel流量防卫兵/服务容错综合方案
- 【英语】本周做了点啥呢?
- 【华为OD机试 2023】 密室逃生游戏(C++ Java JavaScript Python)
- 【Elasticsearch】文本分析 Text analysis (1)
- 计算机专业中,为什么网络工程最不起眼、最不受推荐?
- 批量下载某些网站的在线视频(如:bibi,优酷等)