LoginSignup
1
1

More than 5 years have passed since last update.

apkをjavaにguiでできるapk2javaをつくった。

Last updated at Posted at 2016-11-06

apkをjavaにするのは手順が長そう(3段階くらいある)ので、再設定や実行をguiでできるようにするapk2javaをWPF+C#でつくった。
まずjsonファイルに、実行ファイルのパスや、入手先、実行時のフォルダ、出力先、引数を記述する。これをProcessとして実行すれば、GUIで操作できるというわけ。

jad.json

jad.json
{
  "ExecuteFullPath": "jad158g.win/jad.exe",
  "ExefileURL": "http://varaneckas.com/jad/",
  "args": "-d [resultfolder] -s java -r [dataroot]Source_class/**/*.class",
  "ResultFullPath": "Source_Java"
}

JSONを読むクラスを作る。

namespace apk2java {
    public class ExeArg {
        public string ExecuteFullPath { get; set; }
        public string ExefileURL { get; set; }
        public string args { get; set; }
        public string ResultFullPath { get; set; }
    }
}

JSONを読む。

    private string filepath;
    private string dataRoot;
    public ExeArg jsonresult;

    public Section(string filepath, string DataRoot) {
        InitializeComponent();
        this.filepath = filepath;
        this.dataRoot = DataRoot;
        jsonresult = ReadJSON(this.filepath, DataRoot);
    }

    private ExeArg ReadJSON(string filepath, string DataRoot) {
        string jsonstring = File.ReadAllText(filepath, Encoding.UTF8);
        ExeArg exearg = null;
        try {
            exearg = JsonConvert.DeserializeObject<ExeArg>(jsonstring);

            ExecuteFullPath.Text = DataRoot + exearg.ExecuteFullPath.Replace("/", @"\");
            ExefileURL.Text = exearg.ExefileURL;
            args.Text = exearg.args;
            ResultFullPath.Text = DataRoot + exearg.ResultFullPath.Replace("/", @"\");
        }
        catch (Exception exception) {
            string error = filepath + "\r\n"+exception.Message;
        }
        return exearg;
    }

もし、実行ファイルがなかったら、URLからとってこよう、みたいな。
実行したらうまくいった。
なっかなかです。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1