Android12Launcher3实现应用裁剪

Android12Launcher3实现应用裁剪

1.移除系统应用的关键代码如下:

在device.mk或device-verdor.mk添加如下配置

2.日历从安装列表中移除

PRODUCT_PACKAGES := (filter−outCalendar,(filter-out Calendar, (filter−outCalendar,(PRODUCT_PACKAGES))

3.联系人从安装列表中移除

PRODUCT_PACKAGES := (filter−outContactsContactsProvider,(filter-out Contacts ContactsProvider, (filter−outContactsContactsProvider,(PRODUCT_PACKAGES))

3.搜索

PRODUCT_PACKAGES := (filter−outQuickSearchBox,(filter-out QuickSearchBox, (filter−outQuickSearchBox,(PRODUCT_PACKAGES))

4.图库

PRODUCT_PACKAGES := (filter−outGallery2,(filter-out Gallery2, (filter−outGallery2,(PRODUCT_PACKAGES))

5.文件管理

PRODUCT_PACKAGES := (filter−outDocumentsUI,(filter-out DocumentsUI, (filter−outDocumentsUI,(PRODUCT_PACKAGES))

6.时钟

PRODUCT_PACKAGES := (filter−outDeskClock,(filter-out DeskClock, (filter−outDeskClock,(PRODUCT_PACKAGES))

7.相机

PRODUCT_PACKAGES := (filter−outCamera2,(filter-out Camera2, (filter−outCamera2,(PRODUCT_PACKAGES))

8.定义要移除的应用列表

REMOVE_PACKAGES := Calendar Contacts ContactsProvider QuickSearchBox Gallery2 DocumentsUI DeskClock Camera2

9.一次性从安装列表中移除所有指定应用

PRODUCT_PACKAGES := (filter−out(filter-out (filter−out(REMOVE_PACKAGES), $(PRODUCT_PACKAGES))

10.从安装列表中移除不需要的系统应用

PRODUCT_PACKAGES := (filter−out Calendar Contacts ContactsProvider QuickSearchBox Gallery2 DocumentsUI DeskClock Camera2, (filter-out \ Calendar \ Contacts \ ContactsProvider \ QuickSearchBox \ Gallery2 \ DocumentsUI \ DeskClock \ Camera2, \ (filter−out Calendar Contacts ContactsProvider QuickSearchBox Gallery2 DocumentsUI DeskClock Camera2, (PRODUCT_PACKAGES))

11.在对应系统应用的mk或者bp文件中添加以下配置:

Calendar日历应用 Android.mk LOCAL_PATH:= $(call my-dir)

12.完全跳过编译

(warning"Calendarmoduleisdisabled−skippingbuild)include(warning "Calendar module is disabled - skipping build) include (warning"Calendarmoduleisdisabled−skippingbuild)include(CLEAR_VARS) #禁用Calendar BUILD_CALENDAR := false #include $(BUILD_PACKAGE)

13.Contacts联系人

kotlin 复制代码
Android.bp
android_app {
    name: "Contacts",
    enabled: false,  // 直接禁用编译
    srcs: [
        "src/**/*.java",
        "src-bind/**/*.java",
    ],
    
static_libs: [
    "com.android.phone.common-lib",

    "com.google.android.material_material",
    "androidx.transition_transition",
    "androidx.legacy_legacy-support-v13",
    "androidx.appcompat_appcompat",
    "androidx.cardview_cardview",
    "androidx.recyclerview_recyclerview",
    "androidx.palette_palette",
    "androidx.legacy_legacy-support-v4",
    "android-common",
    "com.android.vcard",
    "guava",
    "libphonenumber",
],

certificate: "shared",
product_specific: true,
privileged: true,
required: ["privapp_whitelist_com.android.contacts"],

optimize: {
    proguard_flags_files: ["proguard.flags"],
},

sdk_version: "system_current",
min_sdk_version: "21",
}

14.总结:

​ 上面的代码开源改完一个验证一次,基本上都么有问题,我在实际项目中都有使用,完全可以正常编译,当然由于Android版本的差异性,可能编译文件不一样,有的是.bp,有的是.mk,不影响使用.

相关推荐
FinelyYang7 小时前
UniApp + LiveKit:Android 端为什么要用原生做屏幕共享,以及我们怎么落地的
android·uni-app
蓝速科技7 小时前
蓝速科技信创落地:平衡安全合规与项目成本的实战方案
android·运维·人工智能·科技·安全·电脑·鸿蒙
又见情义9 小时前
RK3568 Android 13 SDK 开机自动开启共享热点实践
android
mmsx10 小时前
return false 不是拦截:一次按键触发两个动作的事件冒泡陷阱
android·bug
DU_YULIN11 小时前
Camera HAL ThreadManager概述
android·camera hal
淡淡的香烟11 小时前
Android中的MQTT通信原理解析
android·物联网
淡淡的香烟11 小时前
Android Camera开发详解
android·音视频
mmsx12 小时前
基于 Android 的校园信息管理系统源码
android·java·okhttp
YF021113 小时前
如何进入Android工程模式
android