在CSDN潜水多年,一直以来忙忙碌碌,走过了不少的路,却总是以忙为理由没有留下自己的一星半点足迹,从今天开始,也要在CSDN大家庭里记录自己的点点滴滴,即方便自己查阅,若能给后来者有一点点提示启发,也算是功莫大焉,第一篇记录,就献给大andriod世界了。
如何将无源码的 APK 预置进系统?假设手头有一份UserTest.apk为例:
1:在 packages/ 下创建一个与apk同名文件夹UserTest。
2:在 packages/UserTest/ 下创建文件 Android.mk, 文件内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := UserTest
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
2:在 packages/UserTest/ 下再次创建文件 build.mk, 文件内容如下:
PRODUCT_PACKAGES += UserTest
3: 将UserTest.apk COPY在 packages/UserTest/ 下。
4: 打开文件 /device/${Project}.mk (其中${Project}表示工程名)
添加如下语句:
$(call inherit-product-if-exists,packages/UserTest/build.mk)
5: 如果apk里面有.so库文件,需要解压.so库文件
方法一:直接添加lib库(在Android.mk里面需要增加如下语句)
my_src_arch := arm
my_src_abi := armeabi
LOCAL_PREBUILT_JNI_LIBS := \
@lib/$(my_src_abi)/libtest1.so
@lib/$(my_src_abi)/libtest2.so
LOCAL_MODULE_TARGET_ARCH := $(my_src_arch)
6: 重新build整个工程。