自己的安卓平台在客戶處測試時,有反饋Network Signal Info 這個apk無法安裝,提示缺少共用庫。通過在網上搜尋,確認是少了GMS包的緣故。也就是得自己把add on屬性的檔案包添加到自己的工程中。步驟如下:
(1)從網上下載4.2的GMS包(可用網址http://goo.im/gapps/gapps-jb-20130812-signed.zip),可先用簡單的打包方式來驗證封裝內容是否可用。將包中的system\app\,system\etc\permissions\,system\framework\,system\lib\這些內容拷貝到映像組建檔案中對應的目錄下,執行打包,之後驗證。該APK不能裝的原因在於相應目錄缺少:
system/framework com.google.android.maps.jar
system/etc/permissions com.google.android.maps.xml
通過後者指令碼內容索引到jar包
(2)把GMS包添加到平台中。首先在vendor\下建立檔案夾google\apps,在其中放入system\app\下的apk,並建立一個Android.mk,內容如下:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := ChromeBookmarksSyncAdapterLOCAL_SRC_FILES := $(LOCAL_MODULE).apkLOCAL_MODULE_TAGS := optionalLOCAL_MODULE_CLASS := APPSLOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)LOCAL_CERTIFICATE := PRESIGNEDinclude $(BUILD_PREBUILT)
其他若干apk均可仿照該格式。
(3)在google目錄下建立一個Android.mk,內容如下:
include $(call all-subdir-makefiles)
(4)在項目工程對應的mk檔案中,加上這個目錄的索引,如下:
include $(TOPDIR)vendor/google/products/gms.mk
(5)建立目錄google\products\,和一個gms.mk。該內容完成PRODUCT_PACKAGES的合并。大致如下:
PRODUCT_PACKAGES += \ChromeBookmarksSyncAdapter\ConfigUpdater\GenieWidget
同時可以選擇是否要匯入新的設定嚮導流程,如下:
PRODUCT_PROPERTY_OVERRIDES += \ro.setupwizard.mode=ENABLED
(6)GMS包中的lib jar xml等檔案,拷貝入vendor\xxxx\projectName\artifacts\out\target\product\projectName\system\對應的子目錄即可。r 編譯項目。