2 回答
TA贡献1853条经验 获得超9个赞
// 那要怎么生成Linux平台的c/c+的dll给java调用 ?
dll文件是对于Windows平台的文件,在Linux中是用so文件。 生成so文件,需要下载android的NDK开发库。
在AndroidStudio创建一个新项目时,勾选NDK支持就好了。默认的会产生一个能生成so文件的项目。
记得在AndroidStudio里面配置一下NDK的路径,后者直接通过Androidstudio下载一个也行。
TA贡献1810条经验 获得超5个赞
android平台没有“dll”,dll是windows平台才有的。linux下类似的是 so。不建议在android上使用原生的代码和直接使用socket。和pc机不同,100%的pc机都使用和x86兼容的cpu硬件。
但是在android上,不同的设备使用的cpu是完全不同的。比如有intel x86的cpu,有arm的cpu,有arm 64的cpu,还有定制的cpu,联发科的那种,还有mips的cpu……如果你使用原生的代码,必须针对碎片化的硬件设备和环境做适配,除非你是硬件生产厂家预装特定的应用,否则你会遇到前所未有的麻烦。虽然你会看到有很多使用jni去调用 so的案例,但是对于软件开发者(isv)来说,基本上都是在调用系统库(类似windows下的开发者调用win32 api)。
至于socket,大部分设备的权限、网络环境和节能要求都不允许你这么做。android和windows平台的编程模型有很大的不同,后台的应用被设计为挂起而不是继续运行的。而你应该不想设计一种切换到后台就收不到数据的应用吧。
总之,你应该去学习这个平台的基础知识,而不是把pc程序移植上去。
- 2 回答
- 0 关注
- 610 浏览
添加回答
举报