比如我要集成的apk 的名字叫ATest.apk
1.在package/app/目录下面面加入一个文件夹文件夹名字:ATest(这里最好使用apk 一样的名字,方便以后更好的代码维护,如果使用其它随便命名的名字也是可以得。)
2.把ATest.apk 放入到ATest 文件夹下,并且自己定义一个mk 文件。
3.Android.mk 的配置如下所示:
====================Android.mk begin====================
#
# Copyright (C) 2008 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := IRblasterTest
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_PRIVILEGED_MODULE := true
LOCAL_PREBUILT_JNI_LIBS:= \
@lib/arm64-v8a/libserial_port.so
include $(BUILD_PREBUILT)
====================Android.mk end====================
其中如果编译到ROM里面的apk 不能正常运行这里注意修改权限
LOCAL_CERTIFICATE := PRESIGNED 这个改为LOCAL_CERTIFICATE := platform
这个 LOCAL_PRIVILEGED_MODULE := true 指的就是内置到system/priv-app下面
LOCAL_PREBUILT_JNI_LIBS:= \
@lib/arm64-v8a/libsnappydb-native.so 这个就是抽出lib库
4.修改对应的mk 脚本编译
修改的脚本目录:device/company/project/full_project.mk
PRODUCT_PACKAGES += \
FactoryMode \
XXXX1\
XXXX2
---------------------------------------------------------------------------------------------
如果是v7a的lib库 就像这个一样加上LOCAL_MULTILIB :=32 告诉系统是32位的