【发布时间】:2014-02-14 10:59:30
【问题描述】:
这个话题可能已经讨论过很长了,但到目前为止我还没有找到我的问题的答案,即:
eclipse插件和ant产生的apk之间是否存在结构、代码或其他方面的差异?
我有 2 个环境在相同的 JDK 版本和相同的 Android SDK 版本上运行 - 基本上是最新的。
相同的代码在两种环境下都能成功编译,一种是使用eclipse的dev环境,另一种是使用ant的prod环境。 两种环境都使用调试密钥对 apk 进行签名。
然而,奇怪的是,ant生成的apk的性能远低于eclipse生成的apk的性能。
如果能帮助我找出 ant 生成的 apk 构建中可能缺少的内容,我将不胜感激。 非常感谢任何帮助。
编辑于 14.02.2014 - 回应 Stehpan。添加了代码 sn -p 嗨斯蒂芬 该应用程序使用 AES 加密大约 20 个 15-40 个字符的字符串值,并将其存储在共享首选项中。 ant 生成的应用程序大约需要 20 秒才能完成,而 eclipse 生成的应用程序完成得非常快。
这是进行加密的方法:
public static final String encrypt(String value, char[] passPhrase){
if(value != null){
try{
SecretKeySpec skeySpec = new SecretKeySpec(SecureCrypto.generateSecretKey(passPhrase).getEncoded(), ENC_ALGORITHM);
Cipher cipher = Cipher.getInstance(ENC_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
value = Base64.encodeToString(cipher.doFinal(value.getBytes("utf-8")), Base64.NO_WRAP);
}catch(Throwable th){
Environment.logError(Environment.APPLICATION_LOG_TAG, th);
}
}
return value;
}
【问题讨论】:
-
重新阅读您的问题,我想我可能误解了它。您的意思是 apk 的性能较慢,还是您的意思是打包/编译/构建过程的性能较慢?究竟表现什么?这会在您第二次启动每个 apk 时发生吗?还是第一次?
-
嗨斯蒂芬,应用程序的性能较慢。 ant 构建的应用程序的初始启动大约需要 20 秒,而 eclipse 生成的应用程序启动起来却轻而易举......
-
再一次,这是否会在您第二次启动每个 apk 时发生?因为有一些事情只在应用程序第一次在设备上运行时完成,而不是第二次。
-
应用程序在每次启动时设置一些加密参数 - 使用 AES 加密 50-ish 字符串值(每个 15-40 个字符)并存储在共享首选项中。在 ant 生成的应用程序中,该 sn-p 代码需要 20 多秒。
-
嗨斯蒂芬,我已经编辑了我的原始问题并添加了一个代码 sn-p。谢谢