esp32开发与应用(题外话之ADB和Android NDK开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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,也能体现出嵌入式工程师的优势。

相关推荐
野生的码农1 小时前
能工智人,40 大寿,尚能班否?
android·ai编程
事圆则缓1 小时前
Android 串口通信:从 /dev/ttyS1到协议帧
android
java1234_小锋1 小时前
【技术专题】CSS3 网页技术 - CSS3 基础样式
android·前端·css3
tongyiixiaohuang11 小时前
WMS已发货状态反写金蝶云星空:单策略实战教程
android
好的佩奇12 小时前
Dart 之类修饰符
android·flutter·dart
alexhilton13 小时前
用Konsist与Lint强制执行设计系统契约
android·kotlin·android jetpack
2501_9160074716 小时前
抓包工具功能对比,TraceEagle、Charles、Fiddler、Wireshark、mitmproxy 差别
前端·网络协议·ios·adb·https·fiddler·wireshark
北京自在科技17 小时前
谷歌安卓 Gemini 迎来界面改版,Find Hub 接入 Gemini 支持物品记忆查找
android·安卓
YB137519 小时前
Jetpack Compose 动画Modifier.animateItem()
android