如何在 AOSP 构建中设置默认启动器?
Posted
技术标签:
【中文标题】如何在 AOSP 构建中设置默认启动器?【英文标题】:How do I set the default launcher in an AOSP build? 【发布时间】:2014-05-19 14:55:03 【问题描述】:我正在修改 AOSP 源代码,因为我的应用需要在 kiosk 环境中运行。
我希望 android 直接启动到应用程序中。我已经从generic_no_telephony.mk
中排除了 launcher2,并在那里添加了应用程序。现在 Android 一直提示我选择默认启动器。
弹出窗口中可用的两个选项:
-
首页样本
我的应用程序。
如何排除 Android Home 示例启动器?或者还有其他方法可以在 AOSP 构建中设置默认启动器吗?
【问题讨论】:
【参考方案1】:与其修改 AOSP make 文件(这很烦人,因为您需要跟踪更改),不如将 LOCAL_OVERRIDES_PACKAGES 行添加到应用的 make 文件中更容易。
例如:
LOCAL_OVERRIDES_PACKAGES := Launcher2 Launcher3
添加到您的 Android.mk 文件将确保这些包不会添加到添加此包的任何构建中。
接下来,你应该做一个
make installclean
然后以与您始终进行构建相同的方式开始构建。 make installclean 对于删除先前构建留下的软件包很重要。
我也刚刚在另一个问题中找到了一个很好的答案,请参阅: How would I make an embedded Android OS with just one app?
【讨论】:
我添加了 LOCAL_OVERRIDES_PACKAGES := Launcher2 Launcher3。我的应用程序已安装。但它也总是安装 Launcher2。启动后,我会提示选择我的启动器。当我在 generic_no_telephony.mk 中删除 Launcher2 时,Launcher2 将不会被安装,但会提示我在启动器和家庭样本之间进行选择 这个答案对我也不起作用。尽管覆盖了 Home Launcher2 Launcher3,但在启动时仍会显示带有 Home 和 MyApp 的菜单....有什么想法吗?【参考方案2】:除非您执行以下步骤,否则系统会提示您选择要选择的主启动器。
如果您想让您的主启动器真正覆盖其他启动器,而不必从您的构建中删除其他启动器,请按照以下步骤操作。
将您设备上所有其他家庭启动器的覆盖添加到您的自定义家庭启动器的 Android.mk 中:(您可能需要覆盖其他人,但这是我的内容)
`LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3`
将您的自定义主页启动器应用程序模块添加到产品包列表中。有多个文件将模块添加到产品包列表中。它们位于...
"/your-aosp-root/build/target/product/"
我选择编辑和添加模块的文件是“Core.mk”。
将您的模块添加到产品包列表中:
PRODUCT_PACKAGES += \
BasicDreams \
Browser \
Calendar \
.
.
.
MmsService \
YourModuleHere
调用它来清除所有旧模块/图像的 out 目录(不会删除所有 out 目录):
make installclean
调用你的构建脚本
【讨论】:
【参考方案3】:以上答案是正确的。 LOCAL_OVERRIDES_PACKAGES 有效。 但是要解决其中一个cmets;我必须做 LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3
Home 是示例 Home 应用,如果 Lancher2 也不可用,则用作 Launcher。
仅在移除这 3 个库存发射器后;我是否能够在默认情况下看到我的自定义启动器启动而没有任何对话框要求用户选择。
(我的测试操作系统是 Android N,ymmv)
【讨论】:
【参考方案4】:正如第一个答案所做的那样, 但在 Android 9 中,我使用: LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3 Launcher3QuickStep
它按预期工作。
【讨论】:
你好永瑞,在写下一个之前请参考writing an answer。编码愉快!以上是关于如何在 AOSP 构建中设置默认启动器?的主要内容,如果未能解决你的问题,请参考以下文章
使用 AOSP 对 dts 进行更改后如何在不使用 make clean 的情况下构建?
AOSP:如何在 Android Studio 中分别构建 /platform/frameworks/base 或 /platform/frameworks/support