求助:安卓 NDK 编译得到的 so 文件,可以用于树莓派不?

2015-07-27 12:29:01 +08:00
 msmmbl

在折腾博联的RM pro,由于他只提供了手机端的APP,感觉不是很方便,打算用树莓派控制。目前粗略的分析官方提供的安卓手机端的APK软件,大略的知道他们将与设备通信的那块逻辑,编译到了一个libNetworkAPI.so文件中,我对这块不是很了解,对于我来说我觉得有这么几条路:
1. 手机是arm处理器,树莓派也是arm处理器,那么,是否可以在树莓派上直接引用这个libNetworkAPI.so运行。我对安卓理解不深,不确定这条路是否可行。
2. 如果1不可行,那我就搞一块支持android的开源硬件,比如pcDuino。
3. 或者有其他通信协议公开的开源硬件,支持红外,315MHz、433MHz的那种。
4. 或者自己搭硬件,红外模块、315模块、433模块都是可以在某宝买到的,不过软件那部分就得自己写了。
大家对此有什么建议不?

3377 次点击
所在节点    问与答
7 条回复
ufo22940268
2015-07-27 12:57:29 +08:00
自己写一个jni应用,然后引用libNetworkAPI.so这个library,然后写好之后在编译的时候通过在Android.mk里面把target指定为arm(还支持armv7, 不行的话就试试这个),然后编译之后就可以去运行试试了。

我没有树莓派,上面是我的一些想法
linhua
2015-07-27 13:31:17 +08:00
1.手机APP只是和它的那个“座机”通信的,“座机”再和那些遥控设备进行通信,并不能直接摇控设备。
2.所以要明确,树莓派是要实现“座机”的功能,还是手机APP的功能
3.libNetworkAPI.so是linux/android下的动态链接库文件,如果想要在c/c++程序里引用,需要其对应的头文件(.h文件),知道其里面函数的功能
4.android是开源的,树莓派也可以装android
5.红外模块、315模块、433模块是“座机”需要具备的,而手机端只需要具有wifi模块即可。
msmmbl
2015-07-27 13:38:49 +08:00
@ufo22940268 多谢。下班了回去试试。
msmmbl
2015-07-27 13:45:51 +08:00
@linhua
谢谢您的建议。
“2.所以要明确,树莓派是要实现“座机”的功能,还是手机APP的功能”
树莓派是想实现手机的APP功能。
“3.libNetworkAPI.so是linux/android下的动态链接库文件,如果想要在c/c++程序里引用,需要其对应的头文件(.h文件),知道其里面函数的功能 ”
因为我反编译了APK,从编译出来的java里知道libNetworkAPI.so里面的所有函数,因此理论上我可以还原出头文件。

所以,我不确认的是,libNetworkAPI.so是否可以在RASPBIAN中能够被引用运行。因此,如果证实libNetworkAPI.so不能再RASPBIAN中运行,我会试试将树莓派上安装安卓系统,或者自己用红外模块、315模块、433模块搭建自己的“座机”。
Yian
2016-08-28 19:56:00 +08:00
@msmmbl 请问题主最后解决了这个问题没有?是怎么解决的?我最近想把校园网手机客户端里的一个 .so 弄到树莓派上去用,可是用 ldd 去查看那个 .so 文件的时候却发现好像没法在树莓派上跑...
dommyet
2016-08-30 23:22:04 +08:00
@Yian 活捉
msmmbl
2016-08-31 09:18:46 +08:00
@Yian 没有解决。最后我找官方编译了一份树莓派的 sdk

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/208611

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX