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,不影响使用.

相关推荐
Danny_姜14 小时前
Android Studio Quail 4 稳定版发布:本地 Gemma 4 + Android Skills
android·ide·android studio
平头哥AI1 天前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go
聚美智数1 天前
图片广告检测-图片审核-图片广告识别-图像广告检测
android
早睡早起身体好1231 天前
用 XGrammar 约束大模型工具调用:解决参数为空的问题
android·人工智能·神经网络·机器学习·自然语言处理·vllm
大佐不会说日语~1 天前
Android 16 下 uni-app APP 提示“网络连接失败”的排障与修复
android·uni-app
2501_915106321 天前
苹果App Store上架费用及流程全面解析
android·ios·小程序·https·uni-app·iphone·webview
YF02111 天前
Android 16系统App开机自启动方案
android
hm宋1 天前
安卓手机卡顿优化 —— 背景与使用指南
android
OxYGC1 天前
[Android] [WatchOS]智能手表第一篇: 实用工具与应用推荐
android·智能手表
嘟哩DuliDuli1 天前
创作 Agent 的任务状态该如何保存
android·java·javascript