6

我对股票 android 电子邮件应用程序中缺少一个简单的功能感到恼火。由于这个应用程序是作为开源发布的,我可以很容易地解决这个问题。

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

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

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

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

4

2 回答 2

3

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

这将是必需的。

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

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

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

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

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

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

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

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

于 2013-02-07T19:46:12.067 回答
2

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

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

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

于 2013-04-24T23:36:33.860 回答