如何重新构建默认的“启动器”应用程序?

问题描述:

我的目标是修改启动器应用程序并动态修改和更改主题。如何重新构建默认的“启动器”应用程序?

我在http://www.cyrket.com/p/android/com.stain46.taghome/看到了几个'家'的应用程序。它看起来像他们采取了默认的主页(启动),并修改它。他们是怎么做到的?为了达到同样的目的,我需要修改什么?

我已经使用ICS启动器完成了此操作。您还需要进行大量代码更改才能将其作为普通应用程序进行编译,因为它使用了大量私有内部API(尽管Google可能暗示了这一点)。您还需要更改软件包名称。我发现有两个局限性:

  1. 有一个名为TableMaskFilter的过滤器,不能用于普通应用程序。我认为这允许应用程序抽屉是半透明的,但我删除了它的使用,它看起来很好,我认为。

  2. 更关键的是,似乎没有办法复制窗口小部件添加体验,因为它需要只有系统应用才能拥有的权限。 See this question.

无论如何,我把我的源here。它编译和工作在官方Galaxy S2 4.0.3上,但是如果你尝试添加小部件,它会崩溃。

请注意,当您更改软件包名称时,会出现Eclipse重构未注意到的地方(例如XML布局)。我建议你做一个全球性的文字搜索/替换。

+0

你是如何将启动器编译为外部应用程序的? – arts777 2012-07-26 07:25:27

+0

更改了代码。阅读我的答案。 – Timmmm 2012-09-21 09:50:17

+1

@Timmmm很大的努力......感谢分享。 – 2012-10-17 02:36:29

标准Launcher是开源的,所以你绝对可以抓住它并按照你想要的方式修改它。为了将您的应用程序用作主屏幕,您需要在AndroidManifest.xml文件中指定正确的Intent filter,用户在按Home键时必须选择您的应用程序。你为什么不抓住这些代码,使用它,当你有更多的问题时想回来,更想知道你想要改变什么。

+0

谢谢你,我已经抓住了发射源,如果我想改变机器人的主题,或其他人可以使用我的应用程序,在哪里以及如何修改改主题启动? – pengwang 2010-07-07 08:01:04

+0

默认情况下,标准启动程序不会编译为SDK应用程序。你必须编辑代码。对于启动器来说,这实际上并不难......但是SMS和日历应用程序让我花了很多时间! – Timmmm 2012-09-21 09:51:30

+0

@Robby我添加了 过滤器在我的清单中的活动,但仍当我按下home键,它需要我回发射器,即使我已经设置我的应用程序为默认启动的主屏幕。 – 2013-08-23 07:16:11

在这里,我找到了一个稳定版本的launcher2

我的共享设置GitHub库。 HERE

WIKI这个项目:

这个项目包含了启动应用程序附带的Android果冻豆(API 16)的代码。

一些细微的变化是从这个源代码需要去除使用私有的API。这些变化都被打上了“// AOSP改变”