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 小时前
View绘制流程学习--获取WindowManager的三种方式
android·系统架构·view design
vilya3 小时前
我怎么给手机 GUI Agent 做双通道感知:无障碍树为主,投屏像素兜底
android·人工智能
李子红了时4 小时前
阿狸舞台APP(安卓端手机EncFS解密+压缩包解压+视频播放)
android·音视频
事圆则缓4 小时前
Android 使用 Jenkins 实现 CI/CD,并用 SonarQube 建立质量门禁
android·ci/cd·jenkins
其实防守也摸鱼4 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化
恋猫de小郭4 小时前
Android CLI 支持 AI Agent 通过 Device Streaming 调试云真机
android·前端·flutter
素师良码1 天前
第5篇:显示驱动必备调试工具浅析
android
维克兜率天1 天前
【维克】配对交易的季节性:哪些品种适合长拿?
android·开发语言·笔记·python·算法·kotlin·量化
墨天梦1 天前
B06_XML控件布局与ViewBinding
android·kotlin
晚风叙码1 天前
MySQL 表的操作:从建表到删表,一篇讲清楚
android·mysql·oracle