利用AS(3.0)工具将工程打包成jar

来源:互联网 发布:linkin 大数据平台 编辑:程序博客网 时间:2024/05/04 12:35

(1)用AS创建的工程,将工程类型切换到android,如图所示

    

    1:带有(Project:)标示的build.gradle,配置在dependencies{} 里面的classpath:

  classpath 'com.android.tools.build:gradle:2.3.3’如图所示
   
2:带有(Module:)标示的build.gradle,配置在android{}里面的【CompileSdkVersion、buildeToolVersion

2_1:CompileSdkVersion是你SDK的版本号,也就是API Level,例如API-19、API-20、API-21等等。

2_2:buildeToolVersion是你构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位

   compileSdkVersion 26   buildToolsVersion '26.0.2'
  如图所示:
          
           在dependencies{
.........
compile fileTree(include: ['*.jar'], dir: 'libs')
.........
   }
   下一行加入如下内容:

task makeJar(type: Copy) {    delete 'build/TestJar_V1.0.jar' //删除之前的旧jar包    from('build/intermediates/bundles/default/') //从这个目录下取出默认jar包    into('build/') //将jar包输出到指定目录下    include('classes.jar')    rename('classes.jar', 'JiaziSDK_V1.3.jar') //自定义jar包的名字  }makeJar.dependsOn(build)
      3:将加载布局方式运用动态加载,即为反射加载布局,如下代码所示:
public class MResource {    public static int getLayout(Context context,String resName){        return getIdByName(context,"layout",resName);    }    public static int getDrawable(Context context,String resName){        return getIdByName(context,"drawable",resName);    }    public static int getStr(Context context,String resName){        return getIdByName(context,"string",resName);    }    public static int getAim(Context context,String resName){        return getIdByName(context,"anim",resName);    }    public static int getColor(Context context,String resName){        return getIdByName(context,"color",resName);    }    public static int getXml(Context context,String resName){        return getIdByName(context,"xml",resName);    }    public static int getStyle(Context context,String resName){        return getIdByName(context,"style",resName);    }    public static int getId(Context context,String resName){        return getIdByName(context,"id",resName);    }    public static int getIdByName(Context context, String className, String resName) {        String packageName = context.getPackageName();        int id = 0;        try {            Class r = Class.forName(packageName + ".R");            Class[] classes = r.getClasses();            Class desireClass = null;            for (Class cls : classes) {                if (cls.getName().split("\\$")[1].equals(className)) {                    desireClass = cls;                    break;                }            }            if (desireClass != null) {                id = desireClass.getField(resName).getInt(desireClass);            }        } catch (Exception e) {            e.printStackTrace();        }        return id;    }}

      4:点击AS底部菜单栏,找到Terminal点击打开,输入命令 cd 项目的路径,例如:cd D:\project\android_studio_workspace\JiaziPayT

              再执行:gradle makeJar命令,将AS下工程打包成jar,如图所示

      

     执行成功,如图所示:

     




原创粉丝点击