为了账号安全,请及时绑定邮箱和手机立即绑定

新手 , Android 的一些问题

新手 , Android 的一些问题

千万里不及你 2018-10-17 13:13:17
Android 的socket 是用Java的socket吗 ?还有安卓系统是Linux之上的,那如果Android底层使用c/c++,是不是要用Linux平台的c/c+的函数,那要怎么生成Linux平台的c/c+的dll给java调用
查看完整描述

2 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

// 那要怎么生成Linux平台的c/c+的dll给java调用 ?
dll文件是对于Windows平台的文件,在Linux中是用so文件。 生成so文件,需要下载android的NDK开发库。
在AndroidStudio创建一个新项目时,勾选NDK支持就好了。默认的会产生一个能生成so文件的项目。 
记得在AndroidStudio里面配置一下NDK的路径,后者直接通过Androidstudio下载一个也行。

查看完整回答
反对 回复 2018-11-03
?
森栏

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程序移植上去。

查看完整回答
反对 回复 2018-11-03
  • 2 回答
  • 0 关注
  • 610 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信