Android底层摸索改BUG(二):Android系统移除预置APP

这篇具有很好参考价值的文章主要介绍了Android底层摸索改BUG(二):Android系统移除预置APP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先我先提供以下博主博文,对相关知识点可以提供理解、解决、思考的

  1. Android 系统如何预装第三方应用以及常见问题汇集
  2. android Android.mk属性说明及预置系统app操作说明系
  3. Android 中去除系统原生apk的方法

取消预置APK方法一:

其实就是上面的链接3,但是这个方法有局限性,比较适用于单个Android系统项目,直接对Android.mk中的相关APK代码进行删除,(下图来源链接3)

Android底层摸索改BUG(二):Android系统移除预置APP,初入Framework江湖:博主改BUG历史,bug,android,android studio,开发语言,java

但是很多情况、很多公司在实际中,使用repo拉取代码上有许多项目,而且A、B、C、D、E项目中,可能对于A、C项目需要保留这个APK,而其余的需要不保留这个APK,需要参看公司的需求表。

取消预置APK方法二:

(下图引用学习链接二的博主博文,很有帮助)

Android底层摸索改BUG(二):Android系统移除预置APP,初入Framework江湖:博主改BUG历史,bug,android,android studio,开发语言,java

也是常用惯用方法,根据上面的特殊性说明来,我们需要宏控制,即:在Android.mk文件中添加条件判断,A、C项目包含了这个宏且为yes值,则保留这个APK(预置这个APK),而其余的BDE不设置这个宏或者设置为no值,则不会预置这个APK(宏在项目的var.mk进行编写)

理一下思路,进行编写:以下以Calendar.APK为例

1.如果不知道包名,可以先使用反编译工具进行查看包名

先要知道是否预置这个APK的包名,从而在后面更好的定位、判断是否成功,这里使用了jadx反编译工具,可以上网搜一下使用方法,在这大概讲一下。将jadx下载(解压)到任意路径,将目标apk文件拖动到jadx的bin目录下打开终端执行jadx -gui apk名

D:\jadx\bin>jadx -gui Calendar.apk

反编译出 在AndroidManifest.xml或其他可以查看到包名

Android底层摸索改BUG(二):Android系统移除预置APP,初入Framework江湖:博主改BUG历史,bug,android,android studio,开发语言,java

2.在需要的项目下var.mk中添加宏,即A、C项目下

示例路径 device\xxx\xxxx\项目名\var.mk

宏的名称编写需要你查看公司的规范文档 例如 公司名_软件名...

宏示例:宏名称=yes

3.在Android.mk下添加判断 来判断是否执行语句(创建文件夹、拷贝apk等操作)

Android.mk无论什么项目都会执行它所以你是否执行apk操作需要你自己的宏是否有、值是否对应来决定

示例路径vendor/xxxx/packages/xxxx/Calendar/Android.mk

ifeq($(XXXXXXX),yes)
    $(warning mkdir -p $(PRODUCT_OUT)/system/preloadapp/$(LOCAL_MOULE)/)
    $(shell mkdir -p $(PRODUCT_OUT)/system/preloadapp/$(LOCAL_MOULE)/)
    $(warning Aron -------- cp $(LOCAL_PATH)/$(LOCAL_MOULE)/$(PRODUCT_OUT)/system/preloadapp/$(LOCAL_MOULE)/$(LOCAL_MOUDLE).apk)
    $(shell cp $(LOCAL_PATH)/$(LOCAL_MOULE).apk $(PRODUCT_OUT)/system/preloadapp/$(LOCAL_MOULE)/$(LOCAL_MOULE).apk)
endif

3.在需要预制的项目的main.mk下添加(一般可能有了,检查一下)APK

需要包含Calendar

PRODUCT_PACKAGES +=\

Calendar\

...

4.其他不需要预置的项目不添加宏(一般不进行修改,默认没有宏,不执行预置APK)

番外:

如果需要替换已经有的APK,例如日历我只需要一个,将例如谷歌的APK替换,则在Android.mk进行添加语句:

ifeq($(strip $(XXXXXX)),yes)
LOCAL_OVERRIDES_PACKAGES :=Calender 
else
LOCAL_OVERRIDES_PACKAGES :=CalendarGoogle 

5.验证是否预置APK

可以通过adb命令来查看手机的包名或者看out目录下是否有生成的APK

adb命令:手机链接电脑,使用adb devices检测到手机

Android底层摸索改BUG(二):Android系统移除预置APP,初入Framework江湖:博主改BUG历史,bug,android,android studio,开发语言,java

再输入adb shell pm list packages   命令将显示设备上安装的所有应用的包名列表

Android底层摸索改BUG(二):Android系统移除预置APP,初入Framework江湖:博主改BUG历史,bug,android,android studio,开发语言,java

查看列表中是否有APK包名

检查out目录(编译以后,Android源码中的out目录一开始是不存在的,是在我们执行编译操作之后才由系统自动生成)

路径为:out/target/product/项目名/app(或其他app文件夹)

以下四个路径存放APK(你可以选择,在Android.mk文件可以设置)文章来源地址https://www.toymoban.com/news/detail-733711.html

  • system/app/ :该目录下存放的是一些系统级的应用,该目录下的应用能获取到比较高的权限,应用不可卸载,如Phone、Contacts等
  • system/priv-app/ :该目录是从Android 4.4开始出现的目录,它存放的是一些系统核心应用,能获取到比system/app/下应用更高的权限,应用不可卸载,如:Setting、SystemUI等。
  • vendor/app/ :该目录存放制造商的一些应用,应用不可卸载。
  • data/app/ :该目录下存放的一些第三方应用,应用可卸载。

到了这里,关于Android底层摸索改BUG(二):Android系统移除预置APP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 设置app深色、浅色、跟随系统

    我们需要再用户设置时候,记录下来,用户的设置,等app再次启动时候,获取之前设置,重新设置 1、设置单个Activity 2、获取当前Activity是否开启深色 3、webView设置 但是h5页面需要做特别判断才能拿到webView深浅模式 4、深色浅色切换时候,重启app

    2024年01月21日
    浏览(35)
  • Android 系统桌面 App —— Launcher 开发(1)

    Launcher就是Android系统的桌面,俗称“HomeScreen”也就是我们开机后看到的第一个App。launcher其实就是一个app,它的作用是显示和管理手机上其他App。目前市场上有很多第三方的launcher应用,比如“小米桌面”、“91桌面”等等 要让app作为Launcher,需要在Manifest中添加两个category:

    2024年02月11日
    浏览(62)
  • 基于Android studio学生考勤签到系统app

    功能详细介绍 客户端 签到:用户再登录软件后,可以点击签到,进行在线签到,以记录当天的考勤信息。 请假:用户点击请假后,可以在线申请请假,等待教师的查看审核。 我的班级:可以查看个人的班级信息,并能通过班级的名称进行查询,注册登录系统后,可以点击申

    2024年02月05日
    浏览(43)
  • Android Studio开发图书管理系统APP

    Android Studio开发项目图书管理系统项目视频展示: 点击进入图书管理系统项目视频 现在是一个信息高度发达的时代,伴随着科技的进步,文化的汲取,人们对于图书信息的了解与掌握也达到了一定的高度。尤其是学生对于知识的渴求更是与日俱增。图书馆作为学生学习知识的

    2024年02月03日
    浏览(53)
  • Android大作业:安卓开发图书管理系统APP

    Android Studio开发项目图书管理系统项目视频展示: 点击进入图书管理系统项目视频 现在是一个信息高度发达的时代,伴随着科技的进步,文化的汲取,人们对于图书信息的了解与掌握也达到了一定的高度。尤其是学生对于知识的渴求更是与日俱增。图书馆作为学生学习知识的

    2024年02月07日
    浏览(63)
  • 基于安卓系统(android)记事本APP管理系统设计与实现

    目录 摘要 I Abstract II 1 绪论 1.1 课题来源、目的和意义 1 1.2 国内外基本研究情况 1 2 需求分析 2.1 用户需求 4 2.2 功能需求 4 2.3 数据库选择 6 2.4 性能需求 6 3 概要设计 3.1 功能概要设计 7 3.2 数据库概要设计 13 4 详细设计 4.1 功能设计 15 4.2 数据库设计 30 5 系统功能实现 5.1 系统架

    2024年02月11日
    浏览(42)
  • Bug解决:获取JDBC连接失败;嵌套异常是java.sql.SQLException:无法从底层数据库获取连接

    出现的问题 Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database! 说白了就是连接数据库出问题了,寻找了一个半小时才发现错误 从头到尾检查了一遍,这里使用的是C3P0连接池。 解决方法 1.如果使用的是c3p0连接池,prop

    2023年04月08日
    浏览(51)
  • Android 系统级APP 升级方案 OTA全流程

    支持原创,请关注专栏: 高质量文章导航 一.Android ota固件编译 OTA 介绍 OTA ( over the air )升级是 Android 系统提供的标准软件升级方式。它功能强大,提供了 完全升级(完整包)、增量升级模式(差异包),可以通过本地升级,也可以通过网络升级 1.完整包 完整包所包含内容

    2024年02月02日
    浏览(86)
  • 基于Android Studio开发的人员管理系统APP

    目录 人员管理系统 前言 一、系统的大概流程 二、详细开发步骤 1.登陆界面 2.中间跳转界面 3.添加用户 4.全部用户界面  5.项目下载 总结 这是一个具有登录功能和人员信息增删改查功能的人员管理系统,在之前也有做过一个通过http协议与云平台对接的app,正好需要完成一个

    2024年02月07日
    浏览(70)
  • Android 9.0 系统开机自启动第三方app

      在9.0的系统rom定制化开发中,在framework定制话的功能开发中,在内置的app中,有时候在系统开机以后会要求启动第三方app的功能,所以这就需要在监听开机完成的广播,然后在启动第三方app就可以了,接下来就需要在系统类中监听开机完成的广播流程来实现功能 在开机完成

    2024年02月11日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包