es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Durante la compilación del AOSP, hay algún estado en el que todos los archivos .aidl se transformen en sus respectivos archivos .java?

Quiero realizar un análisis estático en la parte de Java de AOSP, lo cual requiere que todos los archivos .aidl se transformen en archivos .java, de manera que todo el árbol del proyecto sea solo de Java (ignorando cpp u otros lenguajes).

He buscado en la documentación y sé que hay una herramienta ejecutable llamada aidl que puede ayudar a transformar un archivo .aidl a la vez. Sin embargo, temo que esta no sea la mejor forma de abordar el proyecto en su totalidad.

Entonces me pregunto si hay algún estado en el que todos los archivos .aidl se transformen en archivos .java durante la compilación de AOSP. Si realmente existe, ¿cómo se puede lograr ese estado?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para transformar todos los archivos .aidl en archivos .java mientras compila el AOSP, puedes modificar el sistema de compilación para incluir una regla personalizada que invoque el ejecutable aidl en todos los archivos .aidl del proyecto. Esto se puede lograr agregando el siguiente código al sistema de compilación:

    # Regla personalizada para transformar todos los archivos .aidl en archivos .java
    $(addsuffix .java,$(basename $(wildcard $(LOCAL_PATH)/**/*.aidl))) : \
            $(LOCAL_PATH)/%.java : $(LOCAL_PATH)/%.aidl
        $(hide) $(HOST_OUT_JAVA_TOOLCHAIN)/bin/aidl --generate java \
                --out $(dir $@) $(abspath $<)
    
    # Agregar la regla personalizada como dependencia de la compilación
    $(local-java-files): $(addsuffix .java,$(basename $(local-aidl-files)))
    

    Esto agregará una regla personalizada que transforma todos los archivos .aidl en archivos .java utilizando el ejecutable aidl, y luego agrega los archivos .java resultantes como dependencias de la compilación.

    Ten en cuenta que esta modificación solo se aplicará a tu compilación local del proyecto AOSP. Si deseas contribuir con esta modificación al proyecto AOSP, deberás seguir las pautas de contribución y enviar un parche al proyecto.

Comments are closed.