关于如何解决编译的时候,内置apk程序或者导入apk源代码的解答

回答于eoeandroid,我把我回答的内容放在这里方便查阅。

呵呵,确实,我也挺不喜欢LZ这种方式的,好吧,我来解答大家。

编译的时候内置APK,也可以称为导入APK,分两种:
1、单独的APK文件,已经编译好的
这种一般存在于自己的产品的vendor目录下的某个专门用于植入的app目录内,一般通过编译脚本.mk内插入变量PRODUCT_COPY_FILES来搞定,规则一般用+=(在变量基础上附加的意思)。一般遇到LZ这种问题,是由于用的谷歌官方的AOSP脚本导致的,因为官方的build/core/makefile规则文件包含了校验,其中就有一段是校验拷贝的程序是否为apk,如果是,就被禁止。那么只需要修改这个脚本,屏蔽掉这条命令即可,不影响系统和其他编译。具体代码在makefile第28行。

2、源代码的apk,没有编译的需要自己编译的
这种一般放在源代码packages\app下,目录的形式,(编译好的APK文件是不存在也不需要Android.mk文件的,所以LZ说弄Android.mk文件搞定的根本就是文不对题。。。)。一般源代码APK的目录都有这个文件,实在没有,就自己写一个,大致格式为:
LOCAL_PATH := $(call my-dir)
        include $(CLEAR_VARS)
        
        LOCAL_MODULE := Superuser.apk
        LOCAL_MODULE_TAGS := eng debug
        LOCAL_MODULE_CLASS := EXECUTABLE
        LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
        LOCAL_SRC_FILES := $(LOCAL_MODULE)
        
        include $(BUILD_PREBUILT)
不用解释了吧?
恩~~~就回答到这里。

你可能感兴趣的:(关于如何解决编译的时候,内置apk程序或者导入apk源代码的解答)