如何用一个应用程序制作embedded式Android操作系统?

我想使用基于Android(ARM)构build的自己的embedded式系统,仅使用Android发布的设备,但没有启动器。

要么

我想在我的应用程序上面启动Android,并拒绝closures它,并从我的应用程序closuresAndroid。

Solutions Collecting From Web of "如何用一个应用程序制作embedded式Android操作系统?"

从本质上讲,您正尝试定制“AOSP”,其中“Home”是您的应用程序。 如果你看看/ packages / apps / Launcher2,你会发现默认主屏幕的代码。

如果你看看那里的AndroidManifest.xml文件,你会看到如下的东西:

<activity android:name="com.android.launcher2.Launcher" android:launchMode="singleTask" android:clearTaskOnLaunch="true" android:stateNotNeeded="true" android:theme="@style/Theme" android:screenOrientation="nosensor" android:windowSoftInputMode="stateUnspecified|adjustPan"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.MONKEY"/> </intent-filter> </activity> 

Essentialy,这表示,这个活动反应了

android.intent.category.HOME 意图

当系统完成引导(ActivityManager更具体)时,发送该意图。 因此,如果您希望自己的应用程序启动而不是启动程序,只需创build一个具有类似意图filter的应用程序,然后删除默认的Launcher2(将其从build / target / product / generic.mk中的列表中取出,然后将其replace为)。 还要确保相关的.mk文件有这样的东西:

 LOCAL_OVERRIDES_PACKAGES := Home 

只要你的应用程序不提供一个方式让用户启动其他应用程序使用图标(如启动器),没有其他应用程序将启动; 除非当然有东西从你的应用程序所控制的path以外的其他path发送一个Activity开始的意图 – 比如说在目标的Androidshell上使用“am”命令。

通过你的问题的声音,你想创build自己的自定义Android操作系统版本。 这比开发普通的Android应用程序要复杂得多,因此你将不得不做大量的阅读工作,特别是Android操作系统的源代码。

我build议你从Android开源项目开始 。

看看恢复系统的来源; 这是一个更为简单的替代引导环境。 也有一些第三方版本的触摸屏支持。