如何在协作开发安卓项目中打jar包给合作人
一般情况下,id都是安卓自动生成的。使用时只要用R.id.xx就可以了。但是,在合作开发安卓时,需要将自己开发的代码部分打成jar包,甚至做混淆。
这就需要使用java的反射机制。在取id时使用如下类,避免了硬编码。res文件只能乖乖的交给合作方了。当然可能还有更好的方法解决这个问题。
使用方法如:
(ImageButton) findViewById(GetItemId.getIdResIDByName(this, "title_exit"));
import java.lang.reflect.Field;
import android.content.Context;
import android.util.Log;
public class GetItemId {
public static int getItemId(Context paramContext, String paramString1,
String paramString2) {
try {
Class<?> localClass = Class.forName(paramContext.getPackageName()
+ ".R$" + paramString1);
Field localField = localClass.getField(paramString2);
int i = Integer.parseInt(localField.get(localField.getName())
.toString());
return i;
} catch (Exception localException) {
Log.e("getIdByReflection error", localException.getMessage());
}
return 0;
}
public static int[] getItemIdArray(Context paramContext,
String paramString1, String paramString2) {
try {
Class<?> localClass = Class.forName(paramContext.getPackageName()
+ ".R$" + paramString1);
Field localField = localClass.getField(paramString2);
int[] i = (int[]) localField.get(localField.getName().toString());
return i;
} catch (Exception localException) {
Log.e("getIdByReflection error", localException.getMessage());
}
return null;
}
public static int getLayoutResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "layout",
context.getPackageName());
}
public static int getIdResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "id",
context.getPackageName());
}
public static int getStringResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "string",
context.getPackageName());
}
public static int getDrawableResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "drawable",
context.getPackageName());
}
}
如何在协作开发安卓项目中打jar包给合作人的更多相关文章
- Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图(转载)
Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea ...
- Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图
Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项 ...
- 如何查看Maven项目中的jar包依赖树情况
对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn ...
- Android项目中打jar包 和 使用
第一步,把普通的android project设置成库项目 库项目也是一个标准的android项目,因此你先创建一个普通的android项目. 这个项目可以起任何的名称,任何的报名,设置其他需要设置的 ...
- Java开发过程中开发工具Eclipse中导入jar包的过程
欢迎欣赏我的第二篇随笔.我们在创建好一个动态网站项目之后,如果没有部署maven的情况下,你可以按照以下的方法,直接把要用的jar包导入你的工程中,而不用再部署maven. 例如在使用JDBC编程时需 ...
- 向eclipse的JavaWeb项目中导入jar包--备忘录
一: 在你所需的jar包网站下载对应的jar包.如org.apache.commons.lang.jar. 二:复制粘贴到该JavaWeb的WEB-INF目录下的lib目录下,如: 三:右键 ...
- Android Studio向项目中导入jar包的方法
第一步: 切换到"Project"视图,找到app --> libs目录 第二步: 将需要导入的jar包粘贴到libs目录中,此时还不能看到jar包中的内容 第三步: 右键点 ...
- 向eclipse的JavaWeb项目中导入jar包
一: 在你所需的jar包网站下载对应的jar包.如org.apache.commons.lang.jar. 二:复制粘贴到该JavaWeb的WEB-INF目录下的lib目录下,如: 三:右键 ...
- IntelliJ IDEA Java项目中添加jar包
1. 事先下载完成需要的javacsv.jar包. java项目在没有导入该jar包之前,显示如下图所示 2. 点击 File -> Project Structure(快捷键 Ctrl + ...
随机推荐
- 【C#学习笔记】文本复制到粘贴板
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 这篇博客的内容基本没见过,mark 一下以后可以学习
初识机器学习算法有哪些? 机器学习无疑是现在数据分析领域的一个重要内容,凡事从事IT工作领域的人都在平时的工作中或多或少的会用到机器学习的算法. 机器学习有很多算法,不过大的方面可分为两类:一个是学习 ...
- reverse(), extend(), sort() methods of list
>>> l = list('sdf') >>> l ['s', 'd', 'f'] >>> id(l) 4520422000 >>&g ...
- 【转】gcc中-pthread和-lpthread的区别
原文网址:http://chaoslawful.iteye.com/blog/568602 用gcc编译使用了POSIX thread的程序时通常需要加额外的选项,以便使用thread-safe的库及 ...
- Android 异步加载神器Loader全解析
在之前呢,我们经常会有这种需求,比如在某个activity,或者某个fragment里面,我们需要查找某个数据源,并且显示出来,当数据源自己更新的时候,界面也要及时响应. 当然咯,查找数据这个过程可能 ...
- Linux man命令数字含义
1,用户在shell环境中可以操作的命令或可执行文件 2,系统内核可调用的函数与工具等,即由内核提供的函数. 如open,write之类的(通过这个,可以很方便的查到调用这个函数时需要加什么头文件 ...
- CMDB属性及分类问题思考
定义的烦恼 在某一次系统监控的讨论会议上,我随便提出了个问题:“如何定义一个系统?”,结果答案就五花八门起来了,会议也跑题了. 为什么问这个问题,是因为某些同事觉得某个系统比较大,就往下分为子系统.组 ...
- Cocos2d-android (05) 渐变动画(颜色,淡入淡出。。。)
淡入淡出.颜色渐变及动作重复执行 import org.cocos2d.actions.base.CCRepeatForever; import org.cocos2d.actions.interva ...
- eclipse 恢复被删除的文件
即使你在项目中删除了某一文件,该文件的相关信息仍会保存在本地历史记录中.这就使得你可以恢复那些在项目或文件夹中已被删除的文件.如果恢复某一被删除的文件,则首先在Navigator视图中选择该文件先前所 ...
- MySQL_PHP学习笔记_2015_0614_PHP传参总结_URL传参_表单传参
1. PHP 传参总结 1.1 url 传参 解析方法(下面两种解读方式均可以): $firstName1 = $_GET['firstName']; $firstName2 = $_RE ...