一、使用Android Studio进行jar打包
1、使用Android建立一个工程,贴主随便建了一个Hello的工程,也就是Android的基本demo。
2、在刚刚的工程上建立一个Jar Library工程。操作路径如下图所示,记得选择的是Java Library
3、建立HelloWorld类,并加入测试代码(这里循环print了10次测试语句)
package com.example;
public class HelloWorld {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
System.out.println("this is the test index" + i);
}
}
}
4、修改library下的gradle,用于打包jar,新手一般不是道该修改哪个gradle,这里也截图说明下。
5、gradle在原来基础上增加makeJar
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
task makeJar(type: Copy) {
//删除存在的
delete 'build/libs/mysdk.jar'
//设置拷贝的文件
from('build/intermediates/bundles/release/')
//打进jar包后的文件目录
into('build/libs/')
//将classes.jar放入build/libs/目录下
//include ,exclude参数来设置过滤
//(我们只关心classes.jar这个文件)
include('classes.jar')
//重命名
rename('classes.jar', 'mysdk.jar')
}
makeJar.dependsOn(build)
6、运行gradle脚本得到jar包。
7、运行结束后,在测试的module下build->libs下就会有test.jar生成
二、在Android工程上使用jar
1、把上一小结中得到的jar包拷贝到HelloWorld真机工程下libs目录下
2、右键刚刚导入的jar包,选择Add As Library
3、此时工程gradle下多了一行
4、在activity中加入代码
package com.example.helloworld;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.example.HelloWorld;
public class HelloActivity extends AppCompatActivity {
private static String TAG = "TEST_TAG";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello);
String[] tmp = new String[1];
HelloWorld.main(tmp);
}
}
5、运行代码即可看到LogCat中打印了10次测试语句了。
三、打包能在Android真机上直接运行的jar
1、使用第一步打包好的jar,并拷贝到\Android_SDK\build-tools\26.0.1下
2、执行dx --dex --output=classes.dex test.jar
classes.dex为打包后能在android上运行的dex文件
3、把生成的classes.dex与test.jar放到一个目录中
4、使用rar工具把test.jar打开,并把classes.dex放入test.jar的根目录中,再重新用rar打包
5、把得到的test.jar push到手机/data/local/tmp/test.jar
6、依次运行,最好在su情况下获取
chmod 0755 /data/local/tmp/test.jar
export CLASSPATH=/data/local/tmp/test.jar
7、运行jar
app_process /data/local/tmp com.example.HelloWorld
com.example.Helloworld为刚才jar的包名
8、执行结果也会在命令行上打印10个测试语句