环境:imx51 android2.3.7
1.在编译根目录的packages\apps下创建存放第三方apk名称命名的文件夹,举例:MyApp,若有用到so库,可在MyApp下创建lib目录,存放so文件,举例:MyLib.so
2.将第三方apk,如MyApp.apk放到MyApp文件夹中,并创建Android.mk文件,内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := MyApp
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
# 下句的作用是将apk拷贝到/data/app,不设置即默认是拷贝到system/app
#LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
include $(BUILD_PREBUILT)
3.修改编译根目录的device\fsl\imx5x\imx5x.mk:
……
PRODUCT_PACKAGES += \
……
MyApp\
因用到so库,只在此添加apk编译目录还不够,否则运行时会因加载不到动态链接库而运行报错。可在imx5x.mk最后的:
PRODUCT_COPY_FILES +=\
……
packages/apps/MyApp/lib/MyLib.so:system/lib/MyLib.so \
冒号左边为源文件,右边为目标位置,上句的意思为将MyLib.so从packages/apps/MyApp/lib拷贝到system/lib,运行时会自动到system/lib下查找所需的so库。
4.make全编译,生成system.img,即包含预置的第三方apk。