Android Studio导出jar包
来源:互联网 发布:淘宝葫芦娃衣服 编辑:程序博客网 时间:2024/05/29 06:58
首先来看一下Android Studio默认Project中的app module,以及可创建的Android Library以及Java Library两种module的差异:
三种module主要差别就在于使用的 gradle plugin 上。
由于Android Studio限制,默认创建的Java Library无法使用Android的API。
如果想创建一个类似SDK的工程,就要创建Android Library模块,这又导致默认生成的是aar格式文件。网上查到的一些做法是编写自定义的gradle task,将生成aar过程中的中间产物 class.jar 复制出来并重命名。
实际还有一种方法,创建Java Library就可以。
Java Library默认的build.gradle为:
apply plugin: 'java'dependencies { compile fileTree(dir: 'libs', include: ['*.jar'])}
因此在这个module工程中还可以引用其他jar库。那么直接将Android SDK的android.jar文件复制到module的libs文件夹下:
这样就可以正常使用Android的所有API了,同时生成出的文件是jar格式。
编写一个测试类作为最终要使用的jar:
public class FoobarTest { private static final String TAG = "FoobarTest-TAG"; public TextView testMethod(Context context) { Log.i(TAG, "Hello from FoobarTest"); TextView mText = new TextView(context); mText.setText("Hello world"); return mText; }}
在这个类中我们调用了打印日志接口,并通过传入的Context变量创建一个TextView返回给上层调用者。
接下来运行gradle build命令,生成jar文件,并将其拷贝到测试的app工程目录下:
然后来编写一个测试的Activity,调用生成的jar文件:
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = this; mLinearLayout = (LinearLayout) findViewById(R.id.linear_layout_main); mLinearLayout.addView(new FoobarTest().testMethod(mContext));}
向Activity的LinearLayout添加了jar返回的TextView,运行测试APP,就可以看到界面中已经正确显示TextView中的内容了,并且控制台输出了jar中打印的log信息。
- Android Studio导出Jar包
- Android Studio导出jar包
- Android Studio导出Jar包
- android studio导出jar包
- Android studio导出jar包
- Android Studio导出Jar包
- Android Studio导出jar包
- Android studio 导出jar包
- Android Studio导出Jar包
- Android Studio导出Jar包
- 用Android Studio 导出jar包
- Android Studio导出Jar包并混淆
- 通过Android Studio 导出Jar包
- Android Studio导出Jar包并混淆
- android studio导出jar包的方法
- Android Studio导出 Jar依赖包
- 使用Android Studio导出Jar包
- Android Studio导出Jar包并混淆
- 【2025】两点之间的距离
- Leetcode-search-a-2d-matrix
- 使用Python学习selenium测试工具-5:元素交互
- 装饰者模式
- iOS 狂霸酷炫拽之Button动效
- Android Studio导出jar包
- R语言知识体系概览
- 转换流
- 打印和删除文件
- button初始化
- FileZilla无法连接ftp服务器的解决方案
- iOS学习之——NSMutableArray中arraywithcapacity 和 initwithcapacity的区别?
- (4.2.32.2)android热修复之ClassLoader方式:Android 热补丁动态修复框架小结
- iOS逆向Reveal查看任意app 的界面