我有一个关于在Android平台上本地代码(native code)的限制的问题。
基本上,我已经开发了一个使用UDP套接字进行SIP/RTP通信和使用OpenAL进行音频录制/播放的本地C代码库 - 基本上整个应用程序都是用它来实现的。 我希望尽可能多地使用本地C代码而不是Java代码。我想这样做是因为我还将在其他平台上使用它。
那么我的问题就很简单 - 是否可能只使用Java来实现GUI,然后所有处理都在本地代码中完成? 当我的本地代码尝试创建套接字、绑定、录制音频、播放时,会发生什么情况 - 因为它是本地代码,我是否需要为其设置权限(例如应用程序访问麦克风等)或者它会直接跳过这些内容,因为它是本地代码? 在Android上,本地代码能否像在PC上一样几乎可以做任何事情?
抱歉如果问题不太清楚;请告诉我,我会尽力改进它
谢谢
FindClass
来获取Socket
类,然后获取构造函数的方法、read
方法的方法和write
方法的方法,将socket作为jobject
存储在代码中,并使用CallVoidEnvMethod
或类似的方法。听起来绝对很糟糕,但是你可以编写一个薄层,在C和Java之间进行转换,最终只需要少量这些转换函数。 - EboMike