写Resource反射工具类ResourceUtils:

public class ResourceUtils {

private static HashMap idMap = new HashMap();

/**

* 通过名称获取资源id

* @param context

* @param className

* 引用资源文件类型名称,eg id, drawable

* @param resName

* 资源文件名称

* @return

*/

public static int getResourceIdByName(Context context, String className, String resName) {

int id = 0;

try {

//Class> cla = Class.forName(context.getPackageName() + ".R$" + className);

//if (cla != null) {

//id = cla.getField(resName).getInt(cla);

//}

Class> cla = Class.forName(context.getPackageName()+".R");

Class[]clesses = cla.getClasses();

Class targetClass=null;

for (Class class1 : clesses) {

if(class1.getName().split("\\$")[1].equals(className)){

targetClass = class1;

break;

}

}

if(targetClass!=null){

id = targetClass.getField(resName).getInt(targetClass);

}

}catch(NoSuchFieldException e){

Log.e("Error", "no such file");

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

return id;

}

/**

* 通过名称获取view

* @param context

* @param parentView

* @param idName 组件的id名称

* @return

*/

public static View getViewById(Context context, View parentView, String idName) {

Integer id = idMap.get(idName);

if (id == null) {

id = getResourceIdByName(context, "id", idName);

idMap.put(idName, id);

return parentView.findViewById(id);

}

return parentView.findViewById(id);

}

}

需要打jar包的Activity,通过反射获取ResourceId

public class ImageActivity extends Activity {

private ImageView img_show1, img_show2;

private Button btn_show;

private Context context;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

context = getApplication();

// 获取Resource名称反射获取获取layout的id

int activityId = ResourceUtils.getResourceIdByName(context, "layout",

"activity_image");

View view = View.inflate(context, activityId, null);

setContentView(view);

// 通过Resource的id反射获取ResourceID

img_show1 = (ImageView) ResourceUtils.getViewById(context, view,

"img_show1");

img_show2 = (ImageView) ResourceUtils.getViewById(context, view,

"img_show2");

btn_show = (Button) ResourceUtils

.getViewById(context, view, "btn_show");

btn_show.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

// 通过名称获取drawable的id

img_show1.setBackgroundResource(ResourceUtils

.getResourceIdByName(context, "drawable", "img01"));

img_show2.setBackgroundResource(ResourceUtils

.getResourceIdByName(context, "drawable", "img02"));

}

});

}

}

项目打包成jar,项目右键 - Export - 选择“jar” - 选择项目的“src” - 选择生成路径;

把jar复制到项目中,把打包jar的Activity需要的resource(drawable、layout)相关内容复制到项目中

调用的项目AndroidManifest.xml中添加 打包的Activity的名称;

调用jar中的Activity:

btn_goto_lib = (Button) findViewById(R.id.btn_goto_lib);

btn_goto_lib.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

try {

Intent intent = new Intent(MainActivity.this,

ImageActivity.class);

startActivity(intent);

} catch (Exception e) {

e.printStackTrace();

}

}

});

android将activity打成jar包供第三方调用,把Activity打包成jar供其App使用相关推荐

  1. java jar反编译后保存_java根据jar包反编译后修改再打包回jar的做法

    1. 得到一个待要修改的jar包 2. 我的环境是windows,然后解压这个jar包,得到一堆class文件,这时候就找到你需要的那个class文件 3. 我首先是使用jd-gui工具看一下这个cl ...

  2. java文件打包jar文件_如何把JAVA文件打包成jar文件

    本文讲解了把java文件打包成jar文件的方法,经测试可行.由于作者没时间用批处理文件进行操作的方法没有列出来. (1)把一个java文件打包到当前目录   javac –d . *.java (2) ...

  3. idea中将java项目中的单个类打包成jar包

    文章目录 打包jar包 导入jar包使用 JAR文件的全称是Java Archive File,即Java档案文件.JAR文件是一种压缩文件,与常见的ZIP压缩文件兼容,被称为JAR包.JAR文件与z ...

  4. [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目

    (1)项目导入JAR包: 1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面. 2.右键点击项目,Bulid Path->Configure Build Path 3.在设置Libr ...

  5. java调用jar并传参,Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参

    Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参 一.打包 情况1:不需要向程序传参数,并且程序没有使用第三方jar包 Eclipse上导出jar: 然后选择一个java文件作为入 ...

  6. Android含资源文件引用的项目打包成jar包

    一.发现问题 最近一个项目临到收尾,就差最后一步打包了~~ 但却遇到了一些小问题.这个项目里面用到Notification,用过notification的人都知道,notification必须设置小图 ...

  7. Android 将Android项目打包成aar文件并在其他项目中引用,打包成jar包

    首先说一下jar包和aar包有什么区别? 1.打包之后生成的文件地址: *.jar:库/build/intermediates/bundles/debug(release)/classes.jar * ...

  8. java 程序包jar_把Java程序打包成jar文件包并执行

    把Java程序打包成jar文件包并执行 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: ...

  9. python调用第三方接口获取数据_python 接口实现 供第三方调用的例子

    python 接口实现 供第三方调用的例子 实验环境 1.环境问题 python 2.7 以上自带的pyunit bottle 作为一个python的简易服务器 在python安装目录 打开命令窗口( ...

最新文章

  1. POJ 1018 Communication System
  2. 联想x250为什么这么贵_为什么ThinkPad这么贵?
  3. SAP JAM活跃度统计
  4. CSS基础必备知识点01
  5. DotNetOpenAuth实践之Webform资源服务器配置
  6. 圆方树(bzoj 2125: 最短路)
  7. 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 2、Practice Questions...
  8. (第三场) C Shuffle Cards 【STL_rope || splay】
  9. 五、梯度分析与最优化
  10. 网络中的一些专业名词解释
  11. 一个软件完整的开发流程,不会程序也能自己制作手机App
  12. Python查询四六级成绩
  13. 行列式在计算机的应用,行列式的计算机及应用.doc
  14. 二战时图灵机破译的Enigma密码,现在AI仅需13分钟便可破译
  15. JAVA网站视频播放不了_java视频播放网站小结
  16. 【C语言】练习函数调用
  17. 气体灭火系统的发展历程
  18. L1-039 古风排版 (20 分)
  19. Google Play如何做ASO优化?影响搜索排名的主要因素.
  20. 文件IO实现图片的加密操作

热门文章

  1. linux 间隔时间中断测试
  2. MySQL史上最快逻辑备份工具
  3. 1 ELK安装部署并监控nginx
  4. HTTPS SSL/TLS协议原理
  5. 【Hive】Hive分区表
  6. 【Oracle】数据库范式
  7. mysql连接报java.math.BigInteger cannot be cast to java.lang.Long异常
  8. jQuery - 通过文本描述设置选择控件的选定值
  9. 对服务与工厂感到困惑
  10. 如何将zlib,gzip和zip相关联?它们有什么共同之处,它们有何不同?