开发定制版本的内置SMS / MMS Android应用程序

时间:2012-05-12 17:40:44

标签: android sms mms

好的,情况如下:

我正在为客户开发一个应用程序(或尝试这样做)。它需要很多(如果不是全部)与内置SMS / MMS应用程序相同的功能。所以,我想 - 嘿! Android是开源的吗?我可以拿应用程序并修改我的需求,对吗?

所以,我在github上找到了MMS / SMS应用程序的代码(出于某种原因,基于AndroidManifest文件,它调用我构建的项目," ConversationList")。但是我收到了涉及导入com.google.android.mms。*包和其他几个包的错误。

每个人都在说'#34;它是私人/内部包",并且"下载整个AOSP"。但是,我如何在Windows上执行此操作,为什么我不能下载要在程序中使用的相应软件包?

我想要做的就是在Eclipse中构建一个项目,将它部署到我的手机上,然后修改必要的代码。如果Android是开源的,为什么这么多秘密/内部包?这令人沮丧。

有什么建议吗?

2 个答案:

答案 0 :(得分:5)

  

所以,我在github上找到了MMS / SMS应用程序的代码(出于某种原因,基于AndroidManifest文件,它调用我构建的项目,“ConversationList”)。但是我收到了涉及导入com.google.android.mms。*包和其他几个包的错误。

此类AOSP应用程序旨在构建为固件映像的一部分,而不是作为独立应用程序构建。

  

但是,我如何在Windows上执行此操作

最有可能的是,你没有。 Cygwin可能会奏效。更有可能的是,您需要使用OS X或Linux,例如在VirtualBox中运行Linux。除了作为用于替换设备上固件的固件构建的一部分之外,构建的结果将不会在任何内容上运行。

  

为什么我不能下载要在程序中使用的相应软件包?

因为该应用程序旨在构建为固件映像的一部分,而不是作为独立应用程序构建。

  

我想要做的就是在Eclipse中构建一个项目,将它部署到我的手机上,然后修改必要的代码。

然后找到一个旨在作为独立应用程序构建的项目作为起点。或者,通过删除所有依赖于应用程序本身不存在的内容的功能,修改您尝试用作独立应用程序的项目。

  

如果Android是开源的,为什么这么多秘密/内部包?

他们不是“秘密”。它们是固件的一部分。

例如 - 由于您似乎熟悉Windows - 完全有可能“控制面板”之类的“应用程序”不能独立于Windows操作系统构建。如果您能够将源代码下载到Windows并尝试将控制面板加载到Visual Studio中,那么很可能您无法仅通过该项目创建一些独立的CPANEL.EXE文件。相反,您需要使用自定义的Windows操作系统构建过程来构建整个操作系统,然后该操作系统将包含一个CPANEL.EXE,该操作系统将在该内置版本的操作系统中运行。

大多数AOSP应用都以这种方式运作。有些已经分叉创建独立应用程序 - K-9 Mail来自早期版本的AOSP电子邮件应用程序。我不知道是否有人使用股票AOSP消息应用程序做了这个。

答案 1 :(得分:3)

你可以改为派遣TextSecure [0],因为它不是系统应用程序,但看起来非常类似于股票消息应用程序。 AOSP应用程序需要安装在需要root的/ system / app上,可能不是您的客户想要的。

请注意,此应用程序是Copyleft(GPLv3),因此如果您分叉,则必须让您的客户端根据GPL条款访问源代码。

[0] https://github.com/WhisperSystems/TextSecure