Android usa el script Gradle para eliminar paquetes jar, recursos y configuraciones en el archivo AndroidManifest.xml

Hoy en día, un canal tiene un requisito especial. Primero, conéctese al SDK de su paquete principal. Después de ajustar e iniciar sesión en el SDK del paquete principal, algunos paquetes jar del paquete principal, recursos y archivos en activos y configuraciones en AndroidManifest.xml. Se eliminan actividades, servicios, metadatos, etc.

Entonces utilicé el comando de script Gradle para ejecutar el comando de eliminación durante el empaquetado. El código específico es el siguiente:

Luego comience a escribir comandos en la parte inferior de build.gradle para realizar la tarea de eliminación:

1. Primero defina una variable, que es un interruptor, para facilitar nuestras pruebas diarias, y luego algún código de eliminación.

// Elimina los recursos del canal en el archivo de activos a petición del canal, los paquetes jar redundantes y todos los archivos de configuración en el nodo de la aplicación en AndroidManifest project.afterEvaluate { // Cambia para ejecutar el comando de eliminación 
def 
    isParentApk 
    = false 
    if (isParentApk) { 
        //Recorrer y eliminar la carpeta y los subarchivos de activos/sdk 
        deleteFile(project.file("src/main/assets/sdk")) 
        //Eliminar el recurso del paquete principal que el canal debe eliminar en la carpeta de activos 
        eliminarExists(project.file("src/main/assets /poolsdk.xml")) 
        eliminarExists(project.file("src/main/assets/sdk.zip")) 
        eliminarExists(project.file("src /main/assets/sdkconf.ini")) 

        //Eliminar en libs El canal requiere la eliminación del recurso del paquete principal 
        deleteExists(project.file("libs/alipaySdk-20161222.jar"))  
        deleteExists(project.file(" libs/applog-release.jar"))
        deleteExists(project.file(" libs/GDTActionSDK.min.1.3.0.jar"))nombre() == 'receptor' || 
        it.name() == 'usa-biblioteca') } 
            //Seleccione el nodo a eliminar
            (it.name() == 'metadatos' || it.name() == 'actividad' || it.name() == 'servicio' || it.name() == 'receptor' | | it.name() == 'usa-biblioteca') 
        for (int i = 0; i < nodes.size(); i++) { 
            Nodo parentNode = nodos[i] 
            manifest.children().each { 
                it.remove (parentNode) 
            } 
        } 
        def escritor = new PrintWriter(xmlFile, "UTF8") 
        escritor.write('<?xml version="1.0" encoding="UTF-8"?>\n') 
        new XmlNodePrinter(writer).print (manifiesto) 
    } 
} 

def eliminarExists(Archivo archivo) { 
    if (archivo!= nulo && archivo.existe()) 
        file.delete() 
} 

def eliminarFile(Archivo de archivo) {
            i++) { eliminarArchivo(archivos[i])
        } 
        archivo.delete() 
    } else if (file.exists()) { 
        archivo.delete() 
    } 
}

Después de ejecutar el código anterior, los recursos que necesita eliminar se pueden eliminar.

Supongo que te gusta

Origin blog.csdn.net/zhao8856234/article/details/100083531#comments_28217232
Recomendado
Clasificación