需求(问题)描述:
Android应用程序开发中,把其中一个代码工程(A project)做成jar,被引用到另一个代码工程(B project)中。
应用场景:
1、当前project中用到了原来一个project的代码;又不想在原来project上改。
2、项目很大,需要切分成多个模块(project)。
解决方案:
有两种方案可以实现上述需求:
一、manifest文件中package需要相同
1、修改两个project的manifest文件,设置相同的 package
2、将A project中的java代码打成jar包(打包方法同普通java代码,剔除R*.class等),拿到B project中。
3、将A project中res目录下的资源文件合并到B project的res目录。
4、在B project中的manifest文件中声明A project的activity。
二、Android Library Project方式
1、将A project设置为 library 工程
2、在B project中引用 A project library
3、在B project的 manifest 里声明A project的activity
如果不想开放A project的源码,
1、A设置为library。
2、将A复制成C project,删除C的源码目录(src),将A的jar(在bin目录)加到C project的Build path。
3、把C设置为library
4、在B project中引用 C project library
5、在B project的 manifest 里声明A(C) project的activity
需要拿到B中的资源有两种:a/ manifest文件中activity的声明;
b/ assets目录下所有文件 (如果有的话)
其他全都保留在C中。
第一种方案,在加入actionBarsherlock库后会有问题,第二种方案完美解决。
分享到:
相关推荐
混淆打包Android library工程的混淆配置文件
现在已经有了一个Android工程A。我们想扩展A的功能,但是不想在A的基础上做开发,于是新建了...另一个思路就是将工程A做成android library project。 设置工程A,右键->Properties->Android,将Is library项选中,然后A
本示例“Android Studio多module AAR示例”是关于如何在Android Studio中创建和使用AAR(Android Archive)库的一个实例,这对于模块化开发至关重要。AAR文件是一种特殊的ZIP格式,包含了Android库项目的编译结果,...
"Bluetooth Library for Android 1.6.rar" 是一个针对Android平台的蓝牙库资源包,适用于版本1.6的Android系统。这个压缩包包含了帮助开发者集成蓝牙功能到他们的应用程序的各种资源。 API.TXT 文件很可能是该蓝牙...
要将SystemUI源码工程导入Eclipse,首先需要搭建一个合适的Android开发环境。这涉及到安装Java JDK、配置Android SDK和设置环境变量等步骤。开发者可以通过提供的网络链接参考详细的环境搭建教程。 在环境搭建完成...
其中,第一章的Cartoonifier_Android工程是一个实际应用案例,它展示了如何在Android平台上使用OpenCV将真实图像转化为卡通效果。这个项目不仅涉及到Android应用程序开发,还涵盖了计算机视觉的基本原理和技术。 ...
在本文中,我们将介绍Android Studio多工程引用同一个library项目配置的方法。 首先,我们需要新建一个类库工程,工程名为AppLibs.Dev。在该类库中包含一个公共的类库appLibs的Module, Module下面的build.gradle...
- 确保`build.gradle`文件中的`apply plugin: 'com.android.library'`已设置,这表示这是一个库项目。 - 更新`build.gradle`文件中的`dependencies`,添加所需的依赖项。 - 在同一目录下,找到`settings.gradle`...
总的来说,“android-support-v7-appcompat”是Android开发中的一个重要工具,它帮助开发者实现向后兼容,确保应用能在各种Android设备上运行。理解和正确使用这个库是成为一名合格Android开发者的关键技能之一。
在数字化时代,Android工程已成为移动开发领域的重要组成部分,它为开发者提供了一个开放、灵活且功能强大的平台,用于构建各种类型的移动应用程序。"Android工程.zip"是一个包含所有必要组件和资源的压缩文件,用于...
生成的文件夹结构包含一个Android工程,我们需要将其导入Android Studio。 3. **导入到Android Studio**: 将Unity生成的库项目(通常命名为"UnityExport")导入到Android Studio。在Android Studio中,选择"Import ...
总结来说,"iBeacon搜索Android Studio工程"是一个专注于iBeacon技术的Android应用开发项目,涵盖了Android Studio环境搭建、蓝牙权限管理、iBeacon库的使用和扫描回调机制等内容。对于希望学习和实践iBeacon技术的...
本项目是一个基于Android Studio的工程,旨在测试和集成这两个工具,目标是兼容Android API Level 25(即Android 7.1 Nougat)。在本文中,我们将深入探讨Spatialite、ARCGIS for Android 10.2.9以及如何在Android ...
"AndroidLibrary, android库混淆字符串.zip" 提供了一个名为 "StringCare" 的开源Android库,专门用于处理应用程序中的字符串混淆。这个库可以帮助开发者在不降低代码可读性的情况下,有效地加密和混淆应用内部的...
3. **创建Android工程**:在Android Studio中,创建一个新的Android项目,包含一个库模块(Library Module)用于存放FFmpeg的静态库文件。将编译好的FFmpeg库(libffmpeg.so)复制到项目的jniLibs目录下,对应不同的...
这是android工程的源码,里面嵌套了unity3D模型,由于unity3D工程较大,写的脚本也较为简单就不上传unity3D那部分了,有不懂的可以直接评论或私聊。该资源主要为那些单独抽取unityLibrary导入到工程里面报错的同学...
在Android Studio中,一个项目可能由多个模块组成,如应用模块、库模块等。iml文件定义了模块的类型(例如Android Library或Android Application),模块的依赖关系,以及源代码和资源文件的路径等。当你导入或导出...