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.jarexport CLASSPATH=/data/local/tmp/test.jar
7、运行jar app_process /data/local/tmp com.example.HelloWorld
com.example.Helloworld为刚才jar的包名
8、执行结果也会在命令行上打印10个测试语句
更多相关文章
- 如何把Eclipse工程导入到Android(安卓)Studio
- android studio gradle 多版本多apk打包(打包系列教程之五)
- Android(安卓)高手进阶教程(十四)之----Android(安卓)Location的
- Android单元测试之Robolectric
- Android(安卓)Permission
- Android(安卓)Studio真机测试时生成的程序出现闪退
- Android(安卓)5.0 技术新趋势
- Android搭建opencv环境(超详细)
- 在Eclipse中导入新浪微博SDK