Android与Linux的embedded式触摸屏应用程序

我正在研究一个需要LCD多点触控屏幕,LCD驱动器,Webkit浏览器,Avahi,Web服务器以及用C ++编写的引擎的embedded式项目。

Android咋看起来像它有大部分正确的组件开箱即用最less的修改…但使用JVM似乎是一个小内存占用embedded式设备(128-196MB分钟)的重量级,除了我们代码是C ++。 看起来你不能把JVM抽出来,因为主要的操作系统组件是用Java运行的(true?)。

Linux似乎可以放在一起的大部分,没有不必要的cruft。 以下是主要问题:

  • 一旦将这些GUI组件放在一起,假设Android中的JVM和应用程序组件对于项目没有用处(现在我们的GUI不需要Linux版本是24MB左右),linux仍然是一个比Android小得多的内存空间。
  • 如果您不需要任何运行在Java中的用户应用程序,是否可以在没有JVM组件的情况下运行Android来减less内存占用?
  • 你可以在Android中编写一stream的C ++应用程序吗?
  • Linux有一个成熟的多点触控界面,包括全系统触摸键盘,触摸GUI,可触摸的broswer手势(滚动,缩放等)。 还是需要大量的自定义UI编码?

您的帖子中有一些误解。 我将首先列举你的问题和答案:

  • 一旦将这些GUI组件放在一起,假设Android中的JVM和应用程序组件对于项目没有用处(现在我们的GUI不需要Linux版本是24MB左右),linux仍然是一个比Android小得多的内存空间。

这一切都取决于你选择使用的窗口管理器。 我的直觉是,这里接近成熟的触摸支持的任何东西都会比android更重或更重。

  • 如果您不需要任何运行在Java中的用户应用程序,是否可以在没有JVM组件的情况下运行Android来减少内存占用?

Android不使用JVM。 Android使用java语言,但使用专为嵌入式设备设计的dalvik虚拟机。 通用性以它们是虚拟机的事实结束。

  • 你可以在Android中编写一流的C ++应用程序吗?

您可以使用NDK在C或C ++中编写应用程序的大部分,但是,以这种方式编写的任何模块都需要通过使用java / dalvik SDK编写的Android调用。 这样,任何性能关键的模块,如进行大量的计算都可以是本地的,但gui层不会(虽然通常GUI层的性能不太可能成为问题)。 原生的Android窗口和用户界面库是用Java编写的,你必须重做很多工作才能在NDK中获得可用的用户界面元素,因为Google不打算用NDK。

我的建议是使用普通SDK对应用程序进行原型设计,留下任何可以受益于硬件加速的存根(保持模块化,所以不会太相互依赖)

  • Linux有一个成熟的多点触控界面,包括全系统触摸键盘,触摸GUI,可触摸的broswer手势(滚动,缩放等)。 还是需要大量的自定义UI编码?

取决于你使用的窗口管理器。 无论你选择什么,你都可能需要愚弄,直到找到可行的组合。 我知道没有一个很好的集成的发行版解决方案(尽管其他人可能)。 我对这片土地的印象是,这方面没有太多的工作要做。

我想添加的最后一件事是在Dalvik(甚至JVM)中执行的写得很好的java代码可以运行在接近本机代码的速度。 如果你知道自己在做什么,并且明白什么时候是引用,什么样的集合类型用于什么目的(提示:并不是所有的东西都是数组),并且不是遍布整个地方的对象,Java是非常好的。

我不是从经验谈话,但看看http://www.omgubuntu.co.uk/2012/02/kde-spark-tablet-opens-pre-order-registration/甚至更容易在https:/ /www.google.com/search?q=ubuntu+touch+interface

所以是的,Linux支持触摸。 不知道多点触摸,但据我所知(但我有0经验)。

至于滚动和缩放,我想这一切都将取决于你在后面使用什么。 真正的问题应该是如果webkit支持平滑滚动和缩放(如果你打算在浏览器中运行你的应用程序,据我所知)。