在工作中经常会内置第三方的app到系统中并且启动人家的服务,所以我就做了一些记录。
一、在package/app下面创建一个文件夹test,在里面创建一个Android.mk文件和添加第三方的app.
1、创建一个Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
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
LOCAL_PREBUILT_JNI_LIBS := \
@lib/armeabi/libtnet-4.0.0.so \
@lib/armeabi/libu3player.so \
@lib/armeabi/libwebsockets.so \
@lib/armeabi/libxengine.so
include $(BUILD_PREBUILT)
2、在Android 8.1 安卓系统做了对服务的限制,如果用startService来启动后台服务那么会报错,然后就使用前台服务来启动
Intent intentAli = new Intent();
intentAli.setComponent(new ComponentName("com.alibaba.ailabs.autobot", "com.alibaba.ailabs.auto.ipc.AutoAudioReceiveService"));
startForegroundService(intentAli);
备注:在启动第三方app中的服务,第三方的app必须放到system/app下面,否则是启动不起来的。