Java 没有SDK的Android开发

Java 没有SDK的Android开发,java,android,Java,Android,为了更好地理解我实际上在问什么,让我概述一下我的情况(我认为我的问题的措辞是错误的,但想不出如何更好地表达它) 我目前正在一个由4人组成的团队中开发一个基本的OCR应用程序。我专注于算法方面,开发预处理和实现OCR。我希望尽可能少地使用应用程序端;从我目前所读到的内容来看,这是一座相当陡峭的山丘,如果不学习从头开始开发应用程序,我就有足够的事情要做 因此,我的问题是: 有没有可能用一种黑盒风格开发我的代码,我可以把它交给应用程序开发人员,然后说“这是一个函数列表,为你的生活而努力” 有没有可能

为了更好地理解我实际上在问什么,让我概述一下我的情况(我认为我的问题的措辞是错误的,但想不出如何更好地表达它)

我目前正在一个由4人组成的团队中开发一个基本的OCR应用程序。我专注于算法方面,开发预处理和实现OCR。我希望尽可能少地使用应用程序端;从我目前所读到的内容来看,这是一座相当陡峭的山丘,如果不学习从头开始开发应用程序,我就有足够的事情要做

因此,我的问题是:

  • 有没有可能用一种黑盒风格开发我的代码,我可以把它交给应用程序开发人员,然后说“这是一个函数列表,为你的生活而努力”
  • 有没有可能在没有Android模拟器的情况下进行上述测试
  • 我是否可以在不需要Android SDK的情况下完成这一切?(考虑到我可以开发代码来处理特定的信息格式,例如像素数据的
    int[][]

只要你的代码不依赖Android SDK,那么你当然可以不用它进行开发和测试。只要确保您的代码也不依赖其他API(例如AWT),如果Android是您的目标,那么这些API不在Android平台上。最后,确保在Android环境中完成测试,一旦您对总体运行情况感到满意。

您当然可以编写和开发算法,而不依赖Android SDK,并向Android开发人员发送工件(无论是源代码还是JAR)

但是,如果您至少有一个Android测试项目,它接受您交付给Android开发人员的任何工件,并在其上运行至少一些测试,并且考虑到Android和Java SE运行时之间的差异,那么您将能够缩短反馈循环的长度,实际上可以保证,由于平台差异,您将遇到bug


更新:如果您编写本机代码或使用本机库,我认为如果不使用Android NDK,您很难给出一个可工作的工件。

如果您不以任何方式与Android SDK交互,例如,您只是在编写Java数据处理程序,为什么要针对它编写代码?如果你打算在代码中使用Android特有的功能,你是对的,显然你需要它。对我来说似乎非常清楚。你可以用普通的Java SE(版本6 max)编写代码,然后将生成的JAR交给“Android”开发人员-只要正如mah所指出的,你使用的JDK API也包含在Android SDK中(不是所有的都包含)。假设我使用带有JNI包装器的API,开发人员可以使用NDK导入它,但它仍然可以工作?从我所看到的,Android NDK希望自己构建本机源代码,并且没有“重用已编译的本机二进制文件”的功能。在这种情况下,您应该创建一个Android库项目,并将生成的APK提供给开发人员。但是,如果我没有预编译的JNI,我可以为我的开发人员编译一个JNI,他们可以为Android开发人员编译相同的JNI。那么两者都会有函数调用?我认为它不是这样工作的-据我所知,对于本机代码,你需要有两个源代码+android特定的make文件。我甚至不确定是否有一个中间工件(APK)可以用来将本机代码作为库提供给其他人。