我正在研究一个需要LCD多点触控屏幕,LCD驱动器,Webkit浏览器,Avahi,Web服务器以及用C ++编写的引擎的embedded式项目。
Android咋看起来像它有大部分正确的组件开箱即用最less的修改…但使用JVM似乎是一个小内存占用embedded式设备(128-196MB分钟)的重量级,除了我们代码是C ++。 看起来你不能把JVM抽出来,因为主要的操作系统组件是用Java运行的(true?)。
Linux似乎可以放在一起的大部分,没有不必要的cruft。 以下是主要问题:
您的帖子中有一些误解。 我将首先列举你的问题和答案:
这一切都取决于你选择使用的窗口管理器。 我的直觉是,这里接近成熟的触摸支持的任何东西都会比android更重或更重。
Android不使用JVM。 Android使用java语言,但使用专为嵌入式设备设计的dalvik虚拟机。 通用性以它们是虚拟机的事实结束。
您可以使用NDK在C或C ++中编写应用程序的大部分,但是,以这种方式编写的任何模块都需要通过使用java / dalvik SDK编写的Android调用。 这样,任何性能关键的模块,如进行大量的计算都可以是本地的,但gui层不会(虽然通常GUI层的性能不太可能成为问题)。 原生的Android窗口和用户界面库是用Java编写的,你必须重做很多工作才能在NDK中获得可用的用户界面元素,因为Google不打算用NDK。
我的建议是使用普通SDK对应用程序进行原型设计,留下任何可以受益于硬件加速的存根(保持模块化,所以不会太相互依赖)
取决于你使用的窗口管理器。 无论你选择什么,你都可能需要愚弄,直到找到可行的组合。 我知道没有一个很好的集成的发行版解决方案(尽管其他人可能)。 我对这片土地的印象是,这方面没有太多的工作要做。
我想添加的最后一件事是在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支持平滑滚动和缩放(如果你打算在浏览器中运行你的应用程序,据我所知)。