美文网首页Android开发之路程序员Android
Android之使用studio修改第三方jar源文件

Android之使用studio修改第三方jar源文件

作者: Android砖家 | 来源:发表于2017-12-29 11:56 被阅读3007次

    需求背景

    在Android 开发中,我们经常会使用第三方jar(一般第三方jar都是比较成熟,适合大部分需求),由于在某些情况下,需要修改jar的源文件,来适合自己的项目的需求,(因为第三方jar 考虑是兼容大部分开发者需求,对于某单个需求不适合,估计开发者自己就得修改jar的源文件)。对于开发者来说,修改jar 源文件是必备的一项技能。

    为什么需要修改jar ,就不能重新提供一份新的jar吗?

    答:第三方jar 不可能做到符合每个开发者的需求,只能满足于绝大多数开发者,所以修改jar源文件是必然的。

    对于Eclipse开发者 要修改jar 肿么办?如果第三方不修改jar ,不好使

    答:我只能说谷歌爸爸都放弃了对Eclipse治疗,我能说啥,不过在实际开发应用中,由于历史的残留的原因,有部分开发者的开发工具还是Eclipse,如果Eclipse阻挡你修改jar,我想这不应该成为说服的理由,对于Eclipse开发者们来说,平时你也可以用studio来写demo ,如果平时对于Eclipse开发者来说 ,studio用不到,我还能说啥,只能说好尴尬,好尴尬,好尴尬,哈哈哈!!!


    下面手把手教如何快速修改jar的源文件,话不多说,干就完了。。。。

    告诉我你要修改哪个jar里面的东西,我以tractor.jar 来讲解。

    1.新建项目EditJarDemo(项目名随便取)

    第一步:把你要修改的tractor.jar 复制到libs下面(studio 一定要Add As Library,eclipse就不说了,毕竟都是过来人)。

    第二步:我这里以修改tractor.jar里面BackGroudSeletor.class为例,打开源文件,如下图所示:


    111.png

    第三步:查看BackGroudSeletor.class所在的包名是啥,请复制包名(在下面的第四步需要用到):查看包名如下图所示:


    222.png

    第四步:将在第三步复制的包名拿过来,在自己的EditJarDemo项目下新建一个命名为com.andbase.tractor.utils包名:如下图所示:

    444.png
    333.png
    555.png

    第五步:在com.andbase.tractor.utils新建BackGroudSeletor.java (一定要跟修改的源文件同名):如下如所示:

    666.png

    第六步:将 源文件的代码复制到你第五步新建的BackGroudSeletor.java 里面,这个时候你可以在自己的BackGroudSeletor.java,随意修改了,(源文件不能修改,但可以复制里面的代码)如下图所示:


    888.png

    第七步:在自己BackGroudSeletor.java 类里面修改你自己的需求,修改之后,编译,修改之后,编译,修改之后,编译,重要事说三遍,编译之后查看自己的BackGroudSeletor.class 文件,(注意是编译之后的xxx.class文件),在哪查看,(打开项目的目录,找\build\intermediates\classes(我的是这个目录)如下图所示:
    注意在androidstudio 3.x 之后 编译后的.class文件在\build\intermediates\javac\debug\compileDebugJavaWithJavac\classes

    1111.png

    第八步:将自己修改之后的源文件复制,(注意是复制xx.class类,而不是里面的代码)

    第九步:将修改修改的tractor.jar 解压出来,然后找到对应的类替换。

    第十步:替换掉之后,重新压缩为tractor.jar(注意名字取一样的):如下图所示:


    sss.gif

    第十一步:第十步的视频已经很详细的做了实操。

    至此,怎么修改第三方jar 源代码,到这里就结束了,图片+文字+视频,够详细了吧,哈哈哈,还有不懂得,可以留言哦。。。。。

    相关文章

      网友评论

        本文标题:Android之使用studio修改第三方jar源文件

        本文链接:https://www.haomeiwen.com/subject/cuqigxtx.html