欢迎光临散文网 会员登陆 & 注册

利用android studio生成jar包,制作自己的SDK

2020-01-16 18:58 作者:啵叽玉桂狗勾  | 我要投稿


开展项目合作时,基于模块化思想,对方要用到你的程序,而你又不想将源代码给对方,通常会将程序进行打包生成jar,并作混淆处理。

1.创建项目

       【File】—【New Module】—【Android Library】,命名,然后编辑代码。

       新建一个Class文件,然后添加一个方法(即后面jar包里要调用的方法)。

创建类测试:


public class MyJarTest {

   public static String testJarString() {

       return "测试生成的Jar包";

   }

}


2.配置build.gradle文件

       AS中进行代码混淆需要在build.gradle文件和proguard-rules.pro文件中进行设置(可以通过jd-gui工具对比混淆前后效果):

       你的library(myjarlibrary)库下打开build.gradle文件,在末尾加上下述代码。


task makeJar(type: Copy) {

    //删除之前编译混淆jar包

    //delete 'build/outputs/test.jar'

    delete 'build/outputs/test.jar'

    //jar文件来源(AS3.0前)

    //from('build/intermediates/bundles/release/')

    //jar文件来源(AS3.0后)

    from('build/intermediates/packaged-classes/release/')

    //生成jar文件路径(可改)

    into('build/outputs/')

    //jar文件名

    include('classes.jar')

    //命名为test.jar

    rename('classes.jar', 'test.jar')

}

makeJar.dependsOn(build)


       点击Sync Now,等Android Studio运行完成后,点击右上角的Gradle按钮,然后点开我们的module(就是之前建的 sdklibrary),你取的什么名字在这就是什么名字,点开只有在点开other,然后再展开的方法里面找到我们的makeJar。

3.运行

       【Gradle】—【New Module(myjarlibrary)】—【other】—【make】

       双击makeJar按钮,等到运行结束,就可以看到。build/intermediates/bundles/release/这个文件夹下面生成了classes.jar文件,并将jar存放到指定路径(如build/outputs/test.jar)。

       注:新版AS:intermediates/packaged-classes 替换intermediates/bundles了。

       将jar包导入你想要用的工程里,然后调用相应的方法就好了。

4.测试


将test.Jar包导入依赖后编写代码测试。

public class MainActivity extends AppCompatActivity {

    private TextView tvTxt;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        tvTxt = findViewById(R.id.tv_main_txt);

        tvTxt.setText(MyJarTest.testJarString());

    }

}


效果:

————————————————

利用android studio生成jar包,制作自己的SDK的评论 (共 条)

分享到微博请遵守国家法律