【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
android除了在手机和pad上开发app,还可以用于工业生产开发。消费领域的话,android的开发相对简单,一般都是触控+图形界面+网络,但是工业生产的话,涉及到外部接口,这个时候就少不了c/c++编程,少不了adb调试了。

1、ndk开发
除了一般的java+sdk开发之外,还可以用c/c++ + ndk开发。这种方式下,可以生成对应的so文件供java调用,也可以直接生成可执行程序。不过可执行程序容易被android kill掉。
2、了解adb
adb是android下的调试工具。它的开启需要在android设备上放开开发者模式,这样pc上面通过adb就可以和android设备进行交互了。两者通过一个usb线连接即可,当然要连到otg接口上面去。adb的下载工具在这里,
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
3、嵌入式开发者怎么开发android
如果自己之前是在linux上面开发软件,开发的语言是c/c++,那么完全可以用ndk进行开发。开发好了之后,直接用adb push到设备上即可。如果需要查看相关的日志,输入logcat命令。
4、外部总线接口如何访问
**外部总线的访问方式和linux是类似的,也是通过设备节点来完成的。**比如说,串口就是/dev/ttyS0,i2c接口就是/dev/i2c,spi接口就是/dev/spi,其他视频类接口,比如说usb camera接口也是类似的道理,即/dev/video0。
5、soc加速接口如何调用
部分接口,特别是soc加速的部分,一般都是以android ndk提供的,即提供对应的so文件。这里面比如说视频的编码、解码、rga、rknn等等,都会用到对应的加速接口。
6、编译有什么不同
android下面的c/c++编译是通过自带的clang工具完成的,libc也不一样。如果是linux上面,则比较简单,一般就是gcc、g++,系统也自带了libc,或者是ulibc。所以,用gcc、g++编译的c/c++程序,不一定能在android设备上面运行,这一点需要注意下。
7、最好的部署方式是什么
以嵌入式工程师为例,自己还是尽量学会用c/c++开发应用,最多用java写一个皮肤。现在ai编程比较普遍,用ai写一个界面不复杂。**另外,使用的时候,多用soc自带的加速sdk,来开发特定场景、特定人群的应用,这样反而更有竞争力。**如果只是纯上层开发,比如控件开发、数据库开发、页面渲染、网络通信,这方面嵌入式工程师反而是比较吃亏的。
另外,哪怕是图形界面,也尽量多带一点串口、i2c、spi、usb camera、pwm方面的控制内容,这样软硬结合的方式,哪怕用的是android,也能体现出嵌入式工程师的优势。