欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android系统JNI解决上层直接调用Linux内核层

程序员文章站 2022-07-15 08:44:41
...

   最近做了一系列关于Android JNI的项目,遇到了许多问题。官方网google发布免费的Android APIS,熟悉Android系统框架:应用程序层、应用程序框架层、系统运行库层以及Linux内核层
Android系统JNI解决上层直接调用Linux内核层
            
    
    博客分类: Android JNI C语言 Ubuntu Linux ADB工具 动态链接库so Android.JNI.C语言.Ubuntu.Linux.ADB工具.动态链接库so 
 

                

   怎样运用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-->
  • Android系统JNI解决上层直接调用Linux内核层
            
    
    博客分类: Android JNI C语言 Ubuntu Linux ADB工具 动态链接库so Android.JNI.C语言.Ubuntu.Linux.ADB工具.动态链接库so 
  • 大小: 62.3 KB