Android系统编译时集成三方APK

2,884 阅读1分钟

1. 前言

最近在学习Android系统开发,在开发过程中可能要到将三方apk集成到系统中的需求。目前我了解的方法有两种。

  1. 一种是在系统编译完毕之后,再将三方apk文件放置到系统目录之下。参考如何将apk文件更新到系统中vendor文件夹下
  2. 还有一种是在Android系统编译时顺带着将三方apk文件打包到系统中。

2. 系统编译时

  1. 首先在Android系统目录 XXX\packages\apps 之下新建一个目录。例如 APP_NAME (APP_NAME可以换成自己集成的第三方apk的文件名)。然后在该目录下放置需要集成的 APP_NAME.apk 文件和 Android.mk 文件。目录结构如下所示:

    APP_NAME:
          APP_NAME.apk
          Android.mk
    
  2. 编写 Android.mk 文件。

    LOCAL_PATH:= $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE := APP_NAME
    LOCAL_MODULE_TAGS := optional
    LOCAL_SRC_FILES := APP_NAME.apk
    LOCAL_MODULE_CLASS := APPS
    LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
    LOCAL_CERTIFICATE := platform
    include $(BUILD_PREBUILT)
    
    
  3. 验证是否能够编译到系统中。当然每次都编译系统可能需要花很多时间。我们可以选择单个模块编译。

    xxx$ . build/envsetup.sh
    xxx$ lunch [你的Project_Name]
    xxx$ cd packages/apps/APP_NAME/
    xxx/packages/apps/APP_NAME$ mm
    

    当显示为 #### build completed successfully (xx:xx (mm:ss)) #### 则说明配置没有问题。可以重新编译系统测试最终情况。