如何查看编译launcher的版本

时间:2020/08/31
之前公司不允许csdn,笔记写在其它地方。最近整理过来

问题背景:

有时候,我们发现修改apk中的资源或者xml配置,无法生效,全局搜索同明的文件,rom里发现各种路径下存在相同文件。
如何判断我们使用的是哪个文件?

1、如何确定的知道是哪个版本

E:\Desktop>adb shell pm path com.android.launcher3
package:/product/priv-app/Launcher3Go/Launcher3Go.apk

E:\Desktop>adb shell pm path com.google.android.gmsintegration
package:/product/app/GmsSampleIntegrationGo/GmsSampleIntegrationGo.apk

如上,刷了rom之后,按照包名打印出apk的安装位置。
从apk的命名可以知道mk文件编译的那个变量,以GmsSampleIntegrationGo为例子

打开包名为com.google.android.gmsintegration的工程的mk文件(如何得到这个包名见launcher加载流程)

...
# GmsSampleIntegration
include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := GmsSampleIntegration
LOCAL_MODULE_OWNER := google
LOCAL_MODULE_TAGS := optional
LOCAL_PRODUCT_MODULE := true
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res_dhs_full $(LOCAL_PATH)/res
LOCAL_SDK_VERSION := current
include $(BUILD_PACKAGE)

# GmsSampleIntegrationGo
include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := GmsSampleIntegrationGo
LOCAL_MODULE_OWNER := google
LOCAL_MODULE_TAGS := optional
LOCAL_PRODUCT_MODULE := true
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res_dhs_go $(LOCAL_PATH)/res
LOCAL_SDK_VERSION := current
include $(BUILD_PACKAGE)
...

找到对应的编译部分,可以查到res和src使用的哪个目录,方便定位修改文件。
LOCAL_PACKAGE_NAME属性为make GmsSampleIntegrationGo时的名字和编译生成的目录以及apk名字

====================================
以上分析都是从结果出发,逆向推理。

2、它们配置在什么位置

device/mediatek/mt6765/device.mk中

#init gms build
include build/buildplus/target/spr_target.min
ifneq ($(wildcard vendor/partner_gms),)
   #ifeq ($(strip $(TARGET_BUILD_VERSION)),gms)
     ifeq (go_edition,$(strip $(CONFIG_BUILD_GMS_PACKAGE_EDITION)))
       $(call inherit-product, vendor/partner_gms/products/gms_go_2gb.mk)
     else
       $(call inherit-product, vendor/partner_gms/products/gms.mk)
     endif
   #endif
endif

上面会走到gms****.mk vendor/partner_gms/products/gms****.mk
里面配置了各种gms的包,例如launcher相关的如下:

# GMS sample application packages
PRODUCT_PACKAGES += \
    GmsSampleIntegrationGo \
    Launcher3Go

以上是源码的位置

==================

mtk会默认往手机里写Launcher apk,和上面的路径不同

/device/mediatek/common/ago/device.mk
/device/mediatek/vendor/common/ago/device.mk
/device/mediatek/system/common/ago/device.mk

# Add MtkLauncher3 to replace Launcher3 when vendor code is available
ifneq ($(wildcard vendor/mediatek/proprietary/packages/apps/Launcher3/Android.mk),)
    PRODUCT_PACKAGES += MtkLauncher3QuickStep
endif

/device/mediateksample/k65v1_32_bsp/ProjectConfig.mk

MTK_GMO_RAM_OPTIMIZE = no

尾注

如果定制修改过过launcher包名和launcher加载流程,上面命令里的包名需要根据具体定制修改一下。

你可能感兴趣的:(launcher,#,launcherQ,android)