`
luozhong915127
  • 浏览: 186250 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论
阅读更多

   最近做了一系列关于Android JNI的项目,遇到了许多问题。官方网google发布免费的Android APIS,熟悉Android系统框架:应用程序层、应用程序框架层、系统运行库层以及Linux内核层

 

                

   怎样运用Android上层去调用Linux内核层。Android系统运用Java语言,而Java语言的数据基本中没有无符号类型,Android系统下底层发送的信息一般是“\n\r”的机制。开始做项目时候,两条路一条是运用ADB做项目,另一条是运用JNIADB做项目,前期使用运用ADB做项目,运用两个类Runtime and Process.其中把操作串口的执行C文件通过ADB工具放入Android系统的system目录下。在运用Android上层应用框架层控制并运行项目。从中出现问题,那就是项目失败率比较高,而项目是直接面对客服的,无法让客服对这一切满足。后面就开发了另外一条运用JNIADB,解决上述问题,保证成功升级。

   JNI能解决Java没有C program无符号类型的问题,通过把JNIJava的调用解决问题,Java无法直接操作和控制Linux内核层的串口,而C语言可以,在Android 系统层存在lib库,里面包含C语言库,打包成动态链接库so文件,Android系统上层可以直接调用动态链接库so文件。

   Android系统下底层发送的信息一般是“\n\r”,而Android系统外接设备不接受

“\n\r”数据,这样也会导致项目的失败。经过实验对Android 系统的串口参数进行设置,把Android系统下底层发送的信息附带“\n\r”给过滤,如此一来就解决问题。

<!--EndFragment-->
  • 大小: 62.3 KB
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics