宁夏城乡建设厅网站,龙岗网站建设报价,nas做网站需要备案吗,创网站android 13 系统裁剪是个大工程#xff0c;裁剪也是需要大量的测试#xff0c;才能保证系统的稳定性#xff0c;以下是RK官方给出的裁剪方案#xff0c;有兴趣的可以去看一下#xff0c;对裁剪不是要求过高的可以根据官方的建议#xff0c;对系统进行裁剪:
Rockchip And…android 13 系统裁剪是个大工程裁剪也是需要大量的测试才能保证系统的稳定性以下是RK官方给出的裁剪方案有兴趣的可以去看一下对裁剪不是要求过高的可以根据官方的建议对系统进行裁剪:
Rockchip Android平台内存优化及系统裁剪_build_with_go_opt-CSDN博客
然后官方的裁剪比较少往往达不到我们自身需求想要的所以我总结了 我在开发过程中精简系统的部分经验望大家指正
一.裁剪应用 应用裁剪是精简系统的重要环节apk应用占用系统的资源较大所以应用裁剪精简应用是系统的重要环节 Android系统源码全编译时都会通过PRODUCT_PACKAGES来控制源码模块是否需要编译 对于系统默认的一些模块 如果想要进行裁剪 比如机顶盒上面可能不需要电话短信等APP 此时就需要修改系统基础的配置文件 将PRODUCT_PACKAGES中包含的电话短信APP模块删除 这样改动太大 耦合性也太大 我们可以在Android系统源码的编译规则中增加一个PRODUCT_DEL_PACKAGES 变量来对模块进行删除实现模块裁剪的功效。当然裁剪不仅仅局限于系统A PP 源码中所有的模块都可以通过PRODUCT_DEL_PACKAGES 来裁剪。 所以我们首先给系统增加一个PRODUCT_DEL_PACKAGES裁剪规则(红色为新增部分)
1、修改build/core/product.mk 添加PRODUCT_DEL_PACKAGES变量的声明 # The first API level this product shipped with _product_single_value_vars PRODUCT_SHIPPING_API_LEVEL_product_single_value_vars PRODUCT_DEL_PACKAGES 2、编辑build/core/main.mk $(eval ### Filter out the overridden packages and executables before doing expansion) \ $(eval _pif_overrides : $(call module-overrides,$(_pif_modules))) \ $(eval _pif_modules : $(filter-out $(_pif_overrides), $(_pif_modules))) \$(eval _pif_dels : $(call get-product-var,$(1),PRODUCT_DEL_PACKAGES)) \ $(eval _pif_modules : $(filter-out $(_pif_dels), $(_pif_modules))) \ 3.在相应的设备产品mk文件中添加用PRODUCT_DEL_PACKAGES属性来控制模块删除
一版目录为device 目录下 增加此属性
RK3568的目录为device/rockchip/rk356x/device.mk ——————————————————————————————————————
二、裁剪系统服务
目录frameworks/base/services/java/com/android/server/SystemServer.java
这里以打印机服务为例其他服务类似
第一步新增控制服务是否启动开关属性 boolean pinrtEnable SystemProperties.getBoolean(persist.print.enable, false); 第二步根据属性控制是否启动打印机服务 if (!pinrtEnable mPackageManager.hasSystemFeature(PackageManager.FEATURE_PRINTING)) { mSystemServiceManager.startService(PRINT_MANAGER_SERVICE_CLASS); } 第三步 屏蔽SystemFeature
查找含有feature name“android.software.print” / 的文件全部注释掉 具体操作可以参考[Android][Framework]裁剪SystemServer服务以及关闭SystemFeature-腾讯云开发者社区-腾讯云