Groovy學習--java2smali

前置

預覽

預覽

代碼

def deleteFile(def name){
    def classFile=new File("${name}.class")
    if(classFile.exists()){
        classFile.delete()
    }

    def dexFile=new File("${name}.dex")
    if(dexFile.exists()){
        dexFile.delete()
    }
}

def java2smali(def name){
    //dx 所在路徑
    def dxPath='/Users/cq/Library/Android/sdk/build-tools/28.0.3/dx'
    //baksmali 所在路徑
    def baksmaliPath='./smali/baksmali'
    //.class
    def cmd2class="javac ${name}.java"
    def proc2class=cmd2class.execute()
    proc2class.waitFor()
    //.dex
    def cmd2dex="${dxPath} --dex --output=${name}.dex ${name}.class"
    def proc2dex=cmd2dex.execute()
    proc2dex.waitFor()
    //.smli
    def cmd2smali="${baksmaliPath} d ${name}.dex -o ./"
    def proc2smali=cmd2smali.execute()
    proc2smali.waitFor()
    deleteFile(name)
}

//調用方法
java2smali('HelloWorld')
複製代碼
相關文章
相關標籤/搜索