【问题标题】:How to re-build the default "Launcher" application?如何重新构建默认的“启动器”应用程序?
【发布时间】:2011-03-12 14:52:58
【问题描述】:

我的目标是修改Launcher应用,动态修改和改变主题。

我在http://www.cyrket.com/p/android/com.stain46.taghome/ 看到了几个“家庭”应用程序。看起来他们采用了默认的 Home(Launcher) 并对其进行了修改。他们是怎么做到的?我需要修改什么来达到同样的效果?

【问题讨论】:

    标签: android launcher


    【解决方案1】:

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

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

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

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

    注意,当您更改包名称时,Eclipse 的重构不会注意到某些地方(例如 XML 布局)。我建议您改为进行全局文本搜索/替换。

    【讨论】:

    • 您是如何将启动器编译为外部应用程序的?
    • @Timmmm 辛苦了...感谢分享。
    【解决方案2】:

    标准Launcher 是开源的,因此您绝对可以获取它并按照您想要的方式对其进行修改。要将您的应用用作主屏幕,您需要在 AndroidManifest.xml 中指定正确的Intent filter,并且用户必须在按下 Home 按钮时选择您的应用。你为什么不抓住那个代码,玩弄它,当你有更多问题和更多关于你想要改变的想法时回来。

    【讨论】:

    • 谢谢,我已经拿到了Launcher源码,如果我想改变android的主题,或者其他人可以使用我的应用程序改变主题,在哪里以及如何修改Launcher?
    • 标准启动器默认不会编译为 SDK 应用。您必须编辑代码。这对 Launcher 来说实际上并不太难……但是 SMS 和 Calendar 应用程序花了我更长的时间!
    • @Robby 我添加了 在清单中的我的活动中过滤,但是当我按下主页按钮时,即使我已将我的应用程序设置为默认启动器,它也会让我回到启动器主屏幕。
    【解决方案3】:

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

    我已经分享了那个 GitHub 存储库。 HERE

    该项目的 WIKI :

    此项目包含 Android Jelly Bean (API 16) 附带的 Launcher 应用的代码。

    需要对此源代码进行一些小的更改,以删除对私有 API 的使用。这些更改已用“// AOSP Change”标记

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 2014-12-12
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多