zoukankan      html  css  js  c++  java
  • android studio 如何把依赖导出成 jar

    反编译工具

    dex-tools-2.1-SNAPSHOT

    第一步

    用一个普通的app工程,引用所有的库,然后生成apk文件

    第二步

    把apk文件,改扩展名为zip,解压后,里面有几个*.dex文件,拷贝到dex-tool反编译工具目录下,

    用命令:

    d2j-dex2jar.bat -f classes.dex

    反编译所有的dex文件为jar文件,把jar扩展名改为zip,然后用压缩软件打开,把里面无用的类删除掉,再改扩展名回jar

    第三步,找出所有资源文件

    应用库会自带资源文件,这些也得找出来

     在project目录下,找到External Libraries,里面有所有依赖库,展开,能看到res,右键copy path,

    拷贝下来res的路径,然后用以下c#代码,合并资源文件

            [TestMethod]
            public void copyRes()
            {
                string srcFolder = @"C:UsersJack.gradlecaches	ransforms-2files-2.16a2e5ecc8c7c41647d2935ab32b14167jetified-firebase-messaging-20.0.0
    es";
                string targetFolder = @"D:	estjars
    es";
    
                var dirs = System.IO.Directory.GetDirectories(srcFolder);
                foreach( var dir in dirs )
                {
                    var name = Path.GetFileName(dir);
                    if (Directory.Exists(targetFolder + "\" + name) == false)
                        Directory.CreateDirectory(targetFolder + "\" + name);
    
                    var files = Directory.GetFiles(dir);
                    foreach( var file in files )
                    {
                        var filename = Path.GetFileName(file);
                        var targetfile = targetFolder + "\" + name + "\" + filename;
                        if ( File.Exists( targetfile ) == false )
                        {
                            File.Copy(file, targetfile);
                        }
                        else if( Path.GetExtension(file) == ".xml" )
                        {
                            XmlDocument xmldoc1 = new XmlDocument();
                            xmldoc1.Load(file);
    
                            XmlDocument xmldoc2 = new XmlDocument();
                            xmldoc2.Load(targetfile);
    
                            if (xmldoc2.DocumentElement.InnerXml != xmldoc1.DocumentElement.InnerXml)
                            {
                                xmldoc2.DocumentElement.InnerXml += xmldoc1.DocumentElement.InnerXml;
    
                                xmldoc2.Save(targetfile);
                            }
                        }
                        else
                        {
    
                        }
                    }
                }
            }

    最后一步,AndroidManifest.xml文件

    在app项目的  buildintermediatesmerged_manifestsdebug 目录下,找到AndroidManifest.xml 文件,把里面一些依赖库的内容,拷贝出来,这些也用得着

  • 相关阅读:
    利用pipe实现进程通信一例
    司机和售票员问题 信号signal注册一例
    HDU 1003
    HDU 1847
    HDU 1846(巴什博弈)
    《断弦》感想
    夺冠概率
    熄灯问题
    HDU 2176(Nim博弈)
    NYOJ 541
  • 原文地址:https://www.cnblogs.com/IWings/p/13743922.html
Copyright © 2011-2022 走看看