我的目标是修改 Launcher 应用程序并动态修改和更改主题。
我在http://www.cyrket.com/p/android/com.stain46.taghome/看到了几个“家庭”应用程序。看起来他们采用了默认的 Home(Launcher) 并对其进行了修改。他们是怎么做到的?我需要修改什么来达到同样的效果?
我的目标是修改 Launcher 应用程序并动态修改和更改主题。
我在http://www.cyrket.com/p/android/com.stain46.taghome/看到了几个“家庭”应用程序。看起来他们采用了默认的 Home(Launcher) 并对其进行了修改。他们是怎么做到的?我需要修改什么来达到同样的效果?
我已经使用 ICS 启动器完成了这项工作。您还需要进行大量代码更改才能将其编译为普通应用程序,因为它使用大量私有内部 API(尽管 Google 可能暗示了这一点)。您还需要更改包名称。我发现有两个限制:
有一个名为 TableMaskFilter 的过滤器不适用于普通应用程序。我认为这允许应用程序抽屉是半透明的,但我删除了它的使用,我认为它看起来不错。
更关键的是,似乎无法复制小部件添加体验,因为它需要只有系统应用程序才能拥有的权限。看到这个问题。
无论如何,我把我的来源放在这里。它可以在官方的 Galaxy S2 4.0.3 上编译和运行,但如果你尝试添加小部件,它会崩溃。
请注意,当您更改包名称时,Eclipse 的重构不会注意到某些地方(例如 XML 布局)。我建议您改为进行全局文本搜索/替换。
标准的Launcher是开源的,因此您绝对可以获取它并按照您想要的方式对其进行修改。要将您的应用用作主屏幕,您需要在 AndroidManifest.xml 中指定正确的Intent 过滤器,并且用户必须在按下 Home 按钮时选择您的应用。你为什么不抓住那个代码,玩弄它,当你有更多问题和更多关于你想要改变的想法时回来。
在这里我找到了一个稳定版本的 Launcher2
我已经分享了那个 GitHub 存储库。这里
这个项目的维基:
此项目包含 Android Jelly Bean (API 16) 附带的 Launcher 应用程序的代码。
需要对此源代码进行一些小的更改,以删除对私有 API 的使用。这些更改已用“// AOSP Change”标记