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

开展项目合作时,基于模块化思想,对方要用到你的程序,而你又不想将源代码给对方,通常会将程序进行打包生成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());
}
}
效果:

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