我可以在Android应用程序中运行Apache Flink吗?

我可以在Android应用程序中运行Apache Flink吗?,android,apache-flink,Android,Apache Flink,我试图在Android应用程序中运行ApacheFlink。我只想运行一个最低限度的工作示例,如下所示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); runFlinkExample(); } private void runFlinkEx

我试图在Android应用程序中运行ApacheFlink。我只想运行一个最低限度的工作示例,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    runFlinkExample();
}

private void runFlinkExample() {
    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    DataStream<Integer> stream = env.fromCollection(Arrays.asList(1, 2, 3, 4, 5));
    stream.print();
    try {
        env.execute();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
build.gradle(项目)

第一个问题是,我得到以下错误:

Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.flink.streaming.api.environment.StreamExecutionEnvironment" on path: DexPathList[[zip file "/data/app/~~DbT_CZ7AhLED2xZgLBk ....
如果没有出现这个错误,我会得到Akka Actor错误,因为我必须排除'reference.conf',否则代码将无法编译。但是,这会导致更多的例外情况,例如缺少akka版本


所以我的一般问题是:是否可以在Android应用程序中运行Flink?或者这是不可能的(推荐)?也许有人知道如何修改gradle文件(或其他文件)来运行我的示例。或者有人已经在Android中成功使用了Flink。

我想香草Flink不会在Android上运行。它使用了一些直接缓冲区、反射和不安全的方法,这些方法不在Android afaik上运行

你能解释一下你的用例吗,这样我就能知道让Flink在Android上运行对你有多大价值


编辑:扩展以供评论

Flink主要是一种用于分布式数据处理的工具。它可以在一台机器上使用,但通常的假设是它的功能强大到可以扩展。我不认为任何一款安卓手机都是可行的硬件


我认为您只想使用CEP DSL进行本地事件处理。您可能根本不需要任何并行性。在这种情况下,我会寻找一个简单的CEP框架,例如。如果它运行的是非分布式的,那么它可以提供比Flink更多的功能。

我想使用FlinkCEP实时检测Android传感器值中的模式。数据流将由传感器(陀螺仪和加速度计)生成。然后我想检测模式,例如:gyroX值>0.2,跟随accY值<0.001,跟随。。。所以我希望有一种在Android上运行FlinkCEP的方法。扩展我的消息以解决您的用例。谢谢您的回答。是的,我只需要CEP-DSL。但对于CEP,我需要设置一个本地流执行环境,如Vanilla Flink。不幸的是,我还不知道怎么做。就像我说的,我会在你的情况下寻找一个非flink的解决方案。您正试图用锤子安装螺钉。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.2"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.flink.streaming.api.environment.StreamExecutionEnvironment" on path: DexPathList[[zip file "/data/app/~~DbT_CZ7AhLED2xZgLBk ....