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

相关推荐
淡淡的香烟2 小时前
Flutter实现多语言切换
android·flutter·1024程序员节
AIsoft_86894 小时前
手机视频转文字工具清单:哪些APP支持录屏识别
android·音视频
_祝你今天愉快6 小时前
Paint Cavans高级绘制:[一]Paint画笔高级应用
android
@zulnger7 小时前
安卓进行稳定性测试
android·appium·1024程序员节
不吃凉粉8 小时前
android 副屏连接
android
OxYGC9 小时前
手机为什么能“自动跳过“开屏广告?李跳跳、GKD 与 iOS 代理软件原理盘点
android·ios·开屏广告·广告屏蔽
Android-Flutter17 小时前
Compose 管理状态 详解
android·compose
缓慢更新18 小时前
审批的加签与会签:多人意见怎么合
android·java·数据库·低代码·rxjava
我怀里的猫19 小时前
android-activity-launch-sequence
android
YB137521 小时前
Jetpack Compose 动画rememberInfiniteTransition
android