Android上打包jar并在真机上运行

一、使用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个测试语句

 





你可能感兴趣的:(Android上打包jar并在真机上运行)