关闭nfc功能 :
O,改宏控
ProjectConfig.mk,nfc相关改为no
NFC_CHIP_SUPPORT = no
FREEME_SUPPORT_NXP_NFC = no
FREEME_SUPPORT_NXP_NFC_PN557=no
debug_defconfig中注释掉相关的
#CONFIG_NFC_CHIP_SUPPORT=y
#CONFIG_NFC_PD54X=y
Defconfig中也注释掉相关的
#CONFIG_NFC_CHIP_SUPPORT=y
#CONFIG_NFC_PD54X=y
launcher应用菜单列表 更改布局排列行数,更改launcher图标大小:
vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
由于系统设计是会根据当前density来算到底该怎么排列,没有明确的xml配置几行几列,如果用户在开发者选项里面手动改density就会按原生设计来排布,所以加个判断就是默认density才有这个需求
在AllAppsGridAdapter构造方法中,有一句
mAppsPerRow = mLauncher.getDeviceProfile().inv.numColumns;
就是决定当前是几列排布,改成
int densityDpi = launcher.getResources().getDisplayMetrics().densityDpi;
if(densityDpi == 240){
mAppsPerRow = 3;
}else{
mAppsPerRow = mLauncher.getDeviceProfile().inv.numColumns;
}
获取density方法是获得一个context或者就是resource然后.getDisplayMetrics().densityDpi;
这个launcher是构造方法里的参数,Launcher类可获得resources,源码也用到了
Resources res = launcher.getResources();
原理流程是在
src/com/android/launcher3/allapps/AllAppsContainerView.java
调用这个适配器
构造方法里
mAH[AdapterHolder.WORK] = new AdapterHolder(true /* isWork */);
实例化了AdapterHolder,适配器就在里面设计
adapter = new AllAppsGridAdapter(mLauncher, appsList);
AllAppsGridAdapter这里面有个是管图标下面的文字的,看起来有迷惑性,
在ViewHolder onCreateViewHolder里
case VIEW_TYPE_ICON:
BubbleTextView icon = (BubbleTextView) mLayoutInflater.inflate(
R.layout.all_apps_icon, parent, false);
这个可以修改下面文字的排布,并不是图标,到底还是个textview
更改launcher图标大小:
vendor/mediatek/proprietary/packages/apps/Launcher3/ src/com/android/launcher3/DeviceProfile.java
源码定义的全局变量
// Workspace icons
public int iconSizePx;
public int iconTextSizePx;
public int iconDrawablePaddingPx;
public int iconDrawablePaddingOriginalPx;
// All apps
public int allAppsCellHeightPx;
public int allAppsIconSizePx;
public int allAppsIconDrawablePaddingPx;
public float allAppsIconTextSizePx;
在updateIconSize方法里
思路都一样,在此时的density改变大小,其他情况还是用原生设计
桌面图标大小,这里改了,应用列表图标一样生效,原理如下
int densityDpi = res.getDisplayMetrics().densityDpi;
if(densityDpi == 240){
iconSizePx = 96;
}else{
iconSizePx = (int) (Utilities.pxFromDp(invIconSizePx, dm) * scale);
}
所有应用列表图标大小:
if(densityDpi == 240){
allAppsIconSizePx = 96;
}else{
allAppsIconSizePx = iconSizePx;
}
先打log,改变density看看需要的数值是多少,然后改
如果两个都要改的话,其实只需要改前面的iconSizePx就行,因为反正后面都赋值了allAppsIconSizePx = iconSizePx