【问题标题】:How can I modify and rerelease an AOSP app?如何修改和重新发布 AOSP 应用程序?
【发布时间】:2013-01-23 10:51:01
【问题描述】:

库存 android 电子邮件应用程序缺少一个简单的功能,这让我很恼火。由于这个应用程序是以open source 发布的,我可以很容易地解决这个问题。

问题:我如何才能发布此修改,以便我和其他用户可以安装修改后的电子邮件应用程序(无需 root 访问权限)?我尝试了以下方法:

  1. 通过大量复制,我能够使用标准 Eclipse/ant 工具链构建电子邮件应用程序,而无需使用 make-scripts 的 ASOP 工具链。
  2. 现在安装此应用程序会导致错误,因为该软件包已安装(显然,我没有要更新的唱歌键)
  3. 在设备上禁用电子邮件应用程序也没有帮助,我仍然无法安装我的新应用程序。

我虽然在清单中更改了应用程序的包名,但并不是那么简单:您还必须将所有类移动到新包中。此外,正如您在AndroidManifest 中看到的那样,应用程序定义了新权限(com.android.email.permission.READ_ATTACHMENT)和其他在安装修改后的包时会导致重复错误的事情。这些权限是源中的字符串引用。

手动修改每个文件然后调试每个错误真的是解决我问题的唯一方法吗?由于我已经修改并移动了每个文件,因此这些修改也会使引入新版本的电子邮件应用程序变得非常困难。

【问题讨论】:

  • 只是为了省点麻烦,不久前我设法让它与股票电子邮件应用程序一起编译和安装,并开源了我的版本here

标签: android package


【解决方案1】:

这个话题可能已经过时了,但我想我会分享我为后代所做的一切。我能够使用上述信息来修改浏览器源并创建我自己的应用程序版本(可以与股票应用程序并行安装)。我做了什么:

  • 在清单中,更改包名称
  • 在 res->values->strings 中,更改应用标签(这只是为了方便,避免两个应用同名)
  • 在清单中,删除“original-package”属性(可能不是必需的)
  • 在清单中,更改提供者权限(以匹配我的新包名称)
  • 确保清单中的所有类名都是完全限定的。

最后一步尝试了几次,但这只是构建、安装、启动和检查 LogCat 以查找错误引用的问题。

【讨论】:

    【解决方案2】:

    我想在清单中更改应用程序的包名称

    这将是必需的。

    您还必须将所有类移动到新包中

    不一定。 R 将生成到清单中声明的​​包中,因此您需要安排导入该 R 类。如果适用,您将需要更新清单本身以使用完全限定的类名而不是裸类名。

    此外,正如您在 AndroidManifest 中所见,应用程序定义了新权限 (com.android.email.permission.READ_ATTACHMENT) 和其他在安装修改后的包时会导致重复错误的内容。

    完全可以定义现有权限。我不知道你在哪里/如何得到“重复错误”。

    手动修改每个文件然后调试每个错误真的是解决我问题的唯一方法吗?

    或多或少。请参阅上面的“不一定”段落。

    这些修改也会使拉入新版本的电子邮件应用程序变得非常困难,因为我已经修改并移动了每个文件。

    您是决定开始这一任务的人,而不是将您的更改贡献给现有的开源邮件应用程序,例如 K-9 Mail(几年前它也是 AOSP 电子邮件应用程序的分支),或者AOSP 电子邮件应用程序本身(通过AOSP contribution process)。

    【讨论】:

    • Raghav 的 Git 存储库(上面的链接)是一个很好的起点。我还能够对 AOSP 中的电子邮件应用程序源进行更改,但测试它需要在模拟器中运行生成的图像,或者修改库存模拟器图像以删除电子邮件应用程序。 Raghav 的工作允许针对标准 SDK 进行编译,从而使开发过程变得更加容易。
    猜你喜欢
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    相关资源
    最近更新 更多