如何在Android系统中集成第三方软件

我们经常碰到要求将三方软件集成到系统的要求,比如将FaceBook集成到系统中。经过在网上查找资料和平常搜集,有三种方式可以达到这种效果,下面以FaceBook的集成为例。


1. 将apk文件放入vendor\mediatek\${project_dir}\artifacts\out\target\product\${project_dir}\system\app中,当然放入之前先用rar打开这个apk文件看看里面是否有lib文件夹,里面是否有so库文件,如果有的话就放入vendor\mediatek\${project_dir}\artifacts\out\target\product\${project_dir}\system\lib文件夹里面。否则当编译完系统编译该程序的时候就会出现强制终止的错误。
弊端:会造成系统对这些apk进行二次签名,导致新版的facebook不能安装,提示签名错误。


2. 将apk放入packages/apps/FaceBook下面.同时在FaceBook文件夹下面建立一个Android.mk文件。文件内容如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := Facebook
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)



这个PRESIGNED表示这个apk已经签过名了,系统不需要再次签名。
注意这个模块名必须跟文件夹名称还有apk名称保持一致。同时还需要修改build\target\product\common.mk.添加如下:
PRODUCT_PACKAGES := \
    AccountAndSyncSettings \
    AlarmProvider \
    FaceBook \


3. 方法3比较繁琐且容易导致一些错误,不过当添加一些程序前面两个都有错误的时候也可以做一个尝试。
    方法3类似将开关机动画或者铃声的添加类似,就是将这些apk文件push到data/app分区下面,而不是像上面两个方法一样放到system/app分区下面。
将apk文件拷贝入:\frameworks\base\data\sounds\data\app文件夹下面。修改Android.mk文件,添加:PRODUCT_COPY_FILES += \
    $(LOCAL_PATH)/data/app/FaceBook.apk:data/app/FaceBook.apk
通过这个方法添加的似乎有一些apk不能使用,不清楚是什么原因,如果有知道的大神,请一定不吝赐教。后续有新的更新,在修改此文,方便大家分享。


参考文献:

http://blog.sina.com.cn/s/blog_572dea1a01012ujl.html





你可能感兴趣的:(如何在Android系统中集成第三方软件)