2012-12-28 27 views
3

出于安全原因,我需要导出不带源代码的库项目。不幸的是,库项目中生成的jar文件不包含资源。我不能期望这个图书馆的用户能够处理图书馆所需的任何资源。导出android库项目以供重用,无需源代码

已经有类似的帖子这一个,但我还没有看到一个解决方案。

回答

8

以下配方中使用的工作,虽然我还没有尝试过最近:

第1步:获取库项目工作原样。我将把该项目的目录称为$ORIG。步骤#2:如果您还没有这样做,请使用android update project$ORIG中创建您的Ant构建脚本。

第3步:将任务添加到$ORIG/build.xml,创建一个JAR文件,喜欢的东西:

<target name="jar" depends="debug"> 
    <jar 
     destfile="bin/YOUR-LIBRARY-NAME-GOES-HERE.jar" 
     basedir="bin/classes" 
    /> 
</target> 

第4步:您的整个库项目从$ORIG复制到另一个目录,我会打电话给$DIST

步骤#5:$DIST摆脱src/树除了src/目录本身。

步骤#6:将bin/YOUR-LIBRARY-NAME-GOES-HERE.jar$DIST/libs/。这有效地将src/的源代码替换为其编译的等效代码。

步骤#7:摆脱$DIST/bin/,因为它不再需要。

$DIST现在拥有一个Android库项目,该项目相当于$ORIG,但src/树被替换为libs/YOUR-LIBRARY-NAME-GOES-HERE.jar

由于SDK管理器中的Google Play服务包是以这种方式打包的,我不仅假设配方仍然有效,而且看起来似乎得到了官方认可。

请注意,作品中有新的构建系统,可能会给我们更多的选择。如果你在2014年阅读这个问题,一定要检查是否有更好的选择。

+0

这看起来不错,我会在今年的第一个之后尝试一下。 – RaiderJ

0

一个想法我听说过提及使用具有JAR文件这是你会把所有的专有代码的引用的规则库项目。所有资产都需要在您的图书馆项目中,并且可以由您的图书馆用户阅读。 请记住,任何拥有apktool的人都可以从最终的APK中提取这些文件。

然而,在JAR代码将无法读取和您的用户将需要逆向工程他们这是很困难的,特别是如果你混淆了。

相关问题