android串口通信

要不要写点引子呢~其实也没什么~工作需要.但是当你们的嵌入式和APP攻城师,发现~卧槽!ANDROID系统我不了解啊!这怎么搞!

这时候你就需要我这篇文章了。别的不保证!1天让你打通整个层次。拿出demo!


开发环境需求:能编译过去的ANDROID系统源码。然后还有Android studio.(友情提示:搞定开发环境的时间不算在内哦!)


step一.搞清层次结构。

  全是干货!绝对不水!

  APP-->JNI-->HAL-->Driver

  1          2          3

  干的全是骨架了吧?四大骨架,衔接之处才是精华  “-->”三大精华。

           精华1.这块儿很好解释。jni层最终出来的是so库文件。  那么问题就是APP如何加载库文件。

这个嘛!APP工程师瞬间给你演示加解答再加损你的时间一共加起来也不会5分钟。

        以Android studio为例:生成的*.so  存放工程路径下libs/armeabi下。程序内部一句System.loadLibrary("*");  舒坦!~此处就好比强迫症患者心满意足的微笑!

        剩下的在APP中怎样挥霍JNI的接口,你就爱咋咋地吧!


          精华2.jni与hal之间的约腚!

                     到这里我也头大!到处查着书籍和资料····hal无时无刻的强调自己有范儿,有逼格。我有我姿势,要艹我可以!必须地从遵从规范,得有三个结构体。

    好啊!来来!三个小婊砸!struct hw_module.  struct hw_module_methods_t.    struct hw_device_t.按顺序分为婊123····

    婊1,3负责的是他们是哪个组织机构的,起码下次客官过来找的时候能找到她们啊~不信的话看官们就去解开衣服看一看啊~偷笑

    而且婊3已经向你展示我们有什么样的业务了····婊2最直接上来就是open!!!上来就OPEN!上来就OPEN!上来就OPEN!~

    所以jni坐不住了····联系方式有了,怎么艹都告诉的明明白白····那就来吧····等到JNI来到了···发现不是那么简单·····

                    此时是不是想起三个小仙女留给你的线索~你忘啦??回去看!

    既然JNI来了~它也绝不是空手而来!它随手祭出了法宝! hw_get_module(),此乃大杀器啊!直接把小婊1抓出来了·····哎哎····接下来的盘问过程过于残忍请参考我提                      供的JNI代码中serial_init()~小婊1直接把小婊3供出来了·····大家也知道小三是直接OPEN的······那么····婊2的一些小技巧你就可以享用了哦······

         精华3.这其实就是幕后黑手····

   当楼上啪啪啪的时候····有人想过没····哪来这么多被啪啪的好市民呢····kernel!一切罪恶之源!强行的带你进小黑屋!把你研究个透。然后·····扔到/dev等HAI层三个小仙女将你包装成HAL~详尽过程请参考linux驱动开发~~

step二  具体实现

    当你暗暗得意的时候,你应该再问问自己,高嘛?富嘛?帅吗?赶快滚去实现代码去吧!

    我们从驱动层开始。我目前使用的是开发版,所以硬件接口很全~随便拿起一根usb转串口,狠狠的插在USB口上,去查看dev/下······   ········   ·······没反应~

    好吧~去kernel里面make menuconfig 在usb下寻找到你使用的USB转串口芯片,选中它!重新烧写内核,你会惊喜~啊的!啊的!发现 dev/下有ttyUSB0这货了!

            

            然后去实现HAL层吧!干巴碟!如果你懒!就把我的hal文件直接拷出来吧~放到 android源码hardware/libhardware下~然后你走进去····直接MM。。。你会M出来个                      serial_default.so,这时候你把它放到开发板正在运行的android,/system/lib/hw里面~一般的话~system是只读的。所以你要更改权限。百度remount即可。全乎万换的把             库adb push进去!

        

            jni也同样放至在hardware/libhardware路径下MM出来个serial_runtime.so,在上文已经提到如何在APP中使用。



   然后·····就没然后了应该!APP部署下去···你会惊奇的发现这DEMO太尼玛简陋了·····哈哈!

           恩!加油吧!诸位!三个小婊砸在等着你光临哦!

       

       附件:不会上传······

 http://pan.baidu.com/s/1kTifOEj    给百度分享了~嘎嘎!

  



      

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值