android framework 系列(三)系统源码中预置App

一、 预置无源码apk

  1. 在package/apps 创建文件夹,以预知一个名为Test的APK为例.
  2. 在Test.apk放到packages/apps/Test文件夹下
  3. 在packages/apps/Test下面创建文件Android.mk, 内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := Test
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
  1. 打开文件 build/make/target/product/core.mk
    build/make/target/product/core.mk
    PRODUCT_PACKAGES 中将Test添加进去
PRODUCT_PACKAGES += \
    BasicDreams \
    BlockedNumberProvider \
    BookmarkProvider \
    Browser2 \
    Test \ 
    ...
  1. 编译
    make -j12

二、 预置有源码工程

如果将 android 程序的源代码加入到 build system 中呢 ?

  1. 在 eclipse 开发环境中创建你的 android 工程,比如叫做 Test
  2. 将工程拷贝到源代码的 package/apps 目录下
  3. 进入 Test 目录下,创建一个 Android.mk 文件,内容如下 :
    LOCAL_PATH :=$(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE_TAGS :=optional
    LOCAL_SRC_FILES :=$(call all-java-files-under, src)
    LOCAL_PACKAGE_NAME :=(工程名字)
    LOCAL_CERTIFICATE :=platform
    include $(BUILD_PACKAGE)
  1. 执行命令 . build/envsetup.sh
    mmm packages/apps/Test 编译成功之后,会生成out/target/product/generic/system/app/Test.apk

  2. 打开文件 build/make/target/product/core.mk
    build/make/target/product/core.mk
    PRODUCT_PACKAGES 中将Test添加进去

PRODUCT_PACKAGES += \
    BasicDreams \
    BlockedNumberProvider \
    BookmarkProvider \
    Browser2 \
    Test \ 
    ...
  1. 编译
    make -j12

你可能感兴趣的:(android framework 系列(三)系统源码中预置App)