我知道这是在重新发明轮子,但用C++实现android用户界面有多难?创建按钮之类的东西和处理按钮点击之类的触摸屏事件很难吗?这可行吗?如果可行,你会怎么做?
看看Neessitas,它是android的Qt端口,似乎运行得很好。
不过,它可能仍处于Alpha或Beta阶段,所以这将取决于你的项目有多"认真"。但这无疑证明,你可以使用纯C++来构建一个完整的应用程序,而不仅仅是库。
您总是可以使用JNI返回到java中,在屏幕上获得UI组件。如果您将其设置为只不过是一个API,那么您可以模拟在本机代码中实际执行它。NVidea有一些关于如何做到这一点的好例子:http://developer.nvidia.com/tegra-resources这个库代码不是为UI组件做这件事,而是为其他各种事情(声音、资源等)做这件事情。这个想法也应该适用于UI组件。
此外,这个项目应该支持c++中的整个sdk,我想它也是这样做的。我不知道它有多新,因为我还没有真正使用过它:http://code.google.com/p/android-cpp-sdk/
您可以使用JNIpp为活动和您感兴趣的所有UI类创建包装器。看看HelloJNIpp示例,它具有本地活动、本地自定义绘制的视图和一个按钮。
扰流板:
void MainActivity::OnCreate(const jni::LObject& bundle) {
Activity::OnCreate(bundle);
SetContentView(R::GetLayout("main"));
FindViewById(R::GetID("changeColor"))->
SetOnClickListener(*this,&MainActivity::ChangeColor);
}