有时候,我们希望将我们的Android工程提供给第三方开发者使用。这个时候,最普遍的做法,就是提供一个jar包和一堆资源文件,第三方开发者可以将资源文件拷贝到Android工程的相应目录下,同时引用我们提供的jar包,就可以使用我们提供的相应API了。
需要特别注意的是,以jar包和资源包方式提供给第三方开发者,我们的工程的代码中就不能使用类似于R.layout.main、R.string.name等等这样的方式来引用资源了。
为此,我们就不能直接使用R文件,而是要通过字段名称来动态的获取资源的id,再来使用。
以下封装了一个类,可以通过字段名称动态获取id。
package com.arui.util; import android.content.Context; public class ResourceUtil { public static int getLayoutId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "layout", paramContext.getPackageName()); } public static int getStringId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "string", paramContext.getPackageName()); } public static int getDrawableId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "drawable", paramContext.getPackageName()); } public static int getStyleId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "style", paramContext.getPackageName()); } public static int getId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "id", paramContext.getPackageName()); } public static int getColorId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "color", paramContext.getPackageName()); } }
当然,如果能够将资源文件也都写入jar包,对于第三方开发者来说,是最方便的。如果想做到这一点,就必须完全在代码中处理布局、图片资源等等,相对来说比较麻烦。如果UI等元素非常的少,值得尝试。
本文转自:http://blog.csdn.net/arui319
相关推荐
开发android框架的时候需要对资源文件的处理 还有框架打jar包的时候的注意事项
总结来说,将Android工程做成jar包并提供资源文件是一种常见的分发库的方式。为了实现这一目标,我们需要编写工具类以动态获取资源ID,并决定是否将资源文件打包进jar包。考虑到第三方开发者的需求和库的易用性,...
在Android开发中,有时我们需要将一个工程中的代码封装成jar包,以便于在其他项目中复用。这个过程称为“工程导jar包”。本文将详细解释如何操作,并探讨jar包在Android开发中的应用。 首先,我们需要理解什么是jar...
本文将详细介绍如何将Android自定义组件打包成JAR文件,以便在各个项目间方便地共享和引用。 首先,我们需要理解自定义组件的基本概念。在Android中,自定义组件通常是对系统原有组件(如TextView、ImageView)的...
如果一定要做成jar包,就不能使用自动生成的R文件,用到资源时候就要写代码去获取。 另一个思路就是将工程A做成android library project。 设置工程A,右键->Properties->Android,将Is library项选中,然后A
"dex2jar"工具就是用来将Dex文件转换成Jar文件,以便开发者可以对APK进行反编译、调试或分析。现在我们来深入探讨这个工具及其工作原理。 dex2jar是一个开源项目,由Peng Yu创建,其主要功能是将Android应用的.dex...
"Android反编译工具包.zip" 提供了一套常用工具,帮助开发者进行逆向工程分析,以了解 APK 文件的工作原理,或在调试和修复问题时提供帮助。 首先,我们要讨论的是`apktool`,这是一个强大的Android资源文件获取...
**apktool** 是一个强大的Android APK反编译工具,它可以解包APK文件,提取资源文件,如XML布局、图片等,并将.dex文件反编译为Java源代码。Apktool还支持重新打包和签名,允许开发者对应用进行修改后再打包回APK。...
在Android应用开发中,APK文件是应用程序的打包格式,其中包含了各种资源、代码和库。`classes.dex`是APK中的核心部分,它包含了Java字节码,这些字节码经过Dalvik虚拟机的优化处理,使得Android设备能够运行应用。...
总之,"Android 反编译全套工具(dex2jar,jdgui)以及详细文档"是一套实用的资源,它为开发者和安全研究人员提供了便捷的手段,以便于他们探索和理解Android应用的内部结构和行为。通过这些工具和文档,即使没有...
dex2jar是一款在Android开发领域常用的工具,主要用于将Android应用的.dex(Dalvik Executable)文件转换成Java字节码的.jar文件。这样做的目的是为了便于开发者对APK进行逆向工程,分析代码逻辑,或者进行二次开发...
Dex2jar在Android应用逆向工程中起着桥梁作用,因为它允许将DEX文件转换成Java开发者熟悉的格式。 使用这套工具进行APK反编译的基本流程如下: 1. 首先,使用Apktool对APK进行反编译,这会将资源文件解压并转换为...
它能够将APK中的资源文件(如XML布局、图片、字符串等)解压到可读的格式,同时也支持重新打包和签名,使得修改后的APK可以重新安装。在`apktool`的帮助下,我们可以查看APK的AndroidManifest.xml文件,了解应用的...
1. **解包**:使用`apktool d <apk_file>`命令将APK文件解包到一个目录,其中包含反编译后的资源文件和smali代码。 2. **编辑**:进入解包后的目录,你可以自由地修改XML文件、图片、音频等资源,甚至可以编辑smali...
总的来说,了解如何使用Apktool反翻译生成资源文件是Android开发和逆向工程中的重要技能,它能帮助开发者更好地理解APK的内部结构,进行调试、本地化或性能优化。然而,这项技术应当谨慎使用,并且尊重软件知识产权...
《Android逆向工程工具详解——以apktool、dex2jar和jd-gui为例》 在Android应用开发领域,逆向工程是一种重要的技术手段,用于理解应用程序的工作原理、查找漏洞或进行二次开发。本文将深入探讨Android逆向工具集...
也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...
在Android应用开发中,"反编译"是一个重要的概念,主要涉及到对APK文件的逆向工程,以查看或修改其源代码、资源文件或二进制代码。本篇文章将详细探讨这一主题,并针对给定的文件名,如Smali2Java、apktool、dex2jar...