把写好的sdk打包成jar文件供其他产品使用,单纯的把代码导出jar文件是没太大问题,再把proguard牵扯进来混淆确实有点小麻烦,如果不经常搞这块,还是要几费周折的。下面就吧我打包和混淆遇到的几个问题和解决方法,大概备忘下。


1,打包准备工作:

     由于开发这个sdk也是正常创建的android 项目,里面有Activity、Application、Service、BroadcastReceiver;当然还有程序里面用到的各种资源文件,xml、图片、id等;

再导出包的时候只需要把src的代码文件导出到jar文件中就可以了,资源文件只需要整合到使用jar的项目项目中就可以了。当然资源文件和这些资源文件里面定义的id的名称最好以特定字符开头(例如:paysdk_*);这样做的目的有两个,1,将来项目整合能根据这些名字一下看出是sdk里面用到的。2,既然是sdk,将来接入的产品也就越来越多,这样在其他产品整合sdk的时候,这种名目规范也能起到保留字的作用,不至于有冲突。


2,导出jar包

      这个就比较简单了,在eclipse中选中项目右键然后依次操作:Export->java->JAR file->Next;在要打包的项目中取消调所以被选中的,只需要选中src整个目录就可以了,当然这里有测试用的activity 和 application的继承类,可以取消调这些文件的选中状态,但是我没这么做,代码文件也没太大,单独选有点麻烦,就偷懒把他们也一并打进jar里面了。


3,遇到的问题:

由于jar包里面需要javascript调用java的操作;并且我测试手机的版本4.4.4;在不做任何混淆的情况下直接集成在其他的产品中报下面的错误:

        

        这个问题解决的方法就是在每个被js调用方法前面加:@JavascriptInterface

4,混淆的准备工作

未完待续