【问题标题】:Android: Rename Package in EclipseAndroid:在 Eclipse 中重命名包
【发布时间】:2013-02-18 20:03:48
【问题描述】:

有没有办法将 Eclipse 命令“Android 工具 -> 重命名应用程序包”作为 shell 脚本执行?

我想使用不同的选项(例如免费版和付费版)多次编译我的 Android 应用程序,而无需手动执行某些操作。 自动执行此操作很重要。库之类的所有解决方案都无济于事,因为有几件事必须手动完成。

【问题讨论】:

  • 我认为不可能,最快的方法是使用键盘快捷键(os x 上的cmd+option+r)
  • 好问题,这将非常方便。尽管如此,我发现 UI 工具还没有 100% 完美,所以我不确定我是否会将它用作自动构建的一部分。
  • “库之类的所有解决方案都无济于事,因为有几件事必须手工完成”——这些“几件事”是什么?
  • 我以为你应该按照版本 #i 清单制作免费/付费版本

标签: android eclipse package


【解决方案1】:

是的,这是可能的。你必须手动调用aapt工具来打包编译好的项目,然后再次调用aapt添加类,用jarsigner签名并与zipalign对齐。通常,Eclipse ADT 插件会为您完成一系列构建步骤。

步骤调用示例如下。

  1. 用不同的包名打包应用程序:

    aapt package -f -M ./AndroidManifest.xml -S res/ \
        -I android.jar -F renamed_project.apk.unaligned \
        --rename-manifest-package "com.example.some_new_package" -v
    
  2. 然后添加类:

    aapt add -f renamed_project.apk.unaligned classes.dex -v
    
  3. 签名:

    jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 \
        -keystore "some_keystore_file" \ 
        renamed_project.apk.unaligned "key_name"
    
  4. 对齐:

    zipalign -v 4 renamed_project.apk.unaligned renamed_project.apk
    

可以找到更多信息,例如here

您还可以使用Ant 更轻松地完成此操作。 Here你可以找到更多信息。

【讨论】:

  • 抱歉,但这不是解决方案。重命名和添加 classes.dex(步骤 1+2)后,应用程序的大小是以前的一半。在模拟器上安装会引发“失败 [INSTALL_FAILED_DEXOPT]”错误。
  • 我只写了一个示例包装。您的构建可能需要向调用添加更多参数,例如项目库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-21
  • 1970-01-01
  • 2014-03-06
  • 1970-01-01
相关资源
最近更新 更多