|
|
1
11
编辑: 我的新方法是使用Eclipse插件: https://github.com/banshee/AndroidProguardScala (自述文件包含安装说明和指向普通Eclipse更新站点的指针)。 旧的答案仍然有效,但新的方法只是更好。 [旧方式] 我的方法是:
不过,我并没有用这个来表示比你好更雄心勃勃的事情,所以把它当作一系列提示。 在scala项目中,我添加了一个builder(builder>new),它只是项目根目录中名为pguard的shell脚本,其中包含:
生成器的位置设置为:
工作目录和参数都设置为
另外,在scala项目的根目录中,有一个proguard参数文件@proguard.txt:
当然,您需要更改-keep参数来保留自己的代码。 在Java项目中,我添加了Scala项目生成的JAR文件(我在上面的脚本中使用了LIB/ProGuord.jar)。 不过,不要将Scala项目作为Java项目的构建路径中需要的项目添加。这将在jar文件之外添加scala类文件,并混淆dex(因为它将同时获得.class文件和jar中的相同内容)。据我所知,Eclipse将在工作区中构建所有东西,所以当您点击Go按钮时,两个项目都将被构建。 |
|
2
3
经过大量的调查,Proguard看起来确实是将应用程序的部署规模和速度保持在合理水平的关键。 遗憾的是,没有合适的方法将Proguard作为构建步骤嵌入。使用脚本可能是一种可能,但我还需要支持Windows、Linux和OSX环境。 我也不确定Twin项目解决方案,因为它阻止了scala代码使用生成的资源文件r.java,我希望能够这样做。 最后,我可以让SBT和Ant使用scala 2.8构建一个android 2.1应用程序。Ant是最受欢迎的最终解决方案,因为它与Android的Eclipse插件使用相同的文件组织。我在这里写下了解决方案: http://scala-ide.assembla.com/wiki/show/ae55a-oWSr36hpeJe5avMc/Developing_for_Android 然后Eclipse将Ant作为一个外部工具来打包和安装应用程序。 |
|
|
3
2
我现在正在修改以前的答案,以便在Windows上运行:只需将所有内容移动到@proguard_windows.txt,这样您就不用担心作为脚本运行了。 我的新@proguard_windows.txt如下:
注意,在Windows中,您需要使用分号来表示-injars。讨厌的 构建器如下所示:
你要把它放在.externaltoolbuilders/proguard.launch中。 有趣的是,它只是一个Java命令,而不是任何一种shell脚本,所以在Windows /Mac之间进行移植是相当容易的(我假设Linux,但是还没有这样做),因为你只是在改变实际的Java二进制的位置。 (将此作为新答案提交,因为它与标记为正确(ish)答案的答案稍有不同) |
|
|
4
0
我一直在使用Proguard在Eclipse/ADT构建中对scala库进行树化,但是它留下了很多需要的地方。它很慢,而且会把其他.class文件弄乱,因此您必须经常重新构建项目。 受这些问题和Android问题追踪器中的一些问题的启发,我制作了另一个工具(基于jar-jar链接),我现在使用它来重新构建scala库。通过这个构建步骤,我对整个Eclipse+ADTScala在Android环境下的表现相当满意。也许对你也有用,转一圈,可以从 http://code.google.com/p/treeshaker/ |
|
|
5
-1
如果您愿意使用Gradle构建工具,那么Gradle的Android插件使整个过程非常简单。见: http://wiki.github.com/jvoegele/gradle-android-plugin/ |
|
Murilo · Jetpack编写导航栏项目图标 1 年前 |
|
|
KolaYAndr · 活动RESULT_OK似乎从未发生过 1 年前 |
|
psycho_pat · Android应用程序中的权限 1 年前 |
|
|
FarazFiroz · 如何将argb转换为描述性文本颜色 1 年前 |
|
Daniel · Unity Android游戏支持的设备数量太少 1 年前 |