主题 : (有请版主)关于com.friendlyarm.AndroidSDK.HardwareControler内存泄露问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 41818
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
综合积分: 22 分
注册时间: 2011-04-01
最后登录: 2012-11-12
楼主  发表于: 2011-07-22 16:16

 (有请版主)关于com.friendlyarm.AndroidSDK.HardwareControler内存泄露问题

我在用6410开发Android系统时利用了贵公司提供的SDK读取UART串口数据。
调用的接口方法为 HardwareControler.read(int fd, byte[] buf, int len);
在调试中发现,如果持续读取串口数据超过1024个数据包,则Android jvm会报告JNI错误并终止该线程。

请问此问题是否有人遇到过?有没有解决的办法呢?
谢谢!

错误的调试信息如下:
--------------------------------------------------------------------
W/dalvikvm( 2286): JNI pinned array reference table summary (1024 entries):
W/dalvikvm( 2286):  1022 of [B 28B (2 unique)
W/dalvikvm( 2286):     2 of [B 532B (2 unique)
W/dalvikvm( 2286): Memory held directly by tracked refs is 1120 bytes
E/dalvikvm( 2286): Failed adding to JNI pinned array ref table (1024
entries)
I/dalvikvm( 2286): "IrKeyReceiver" prio=5 tid=11 RUNNABLE
I/dalvikvm( 2286):   | group="main" sCount=0 dsCount=0 obj=0x40684028
self=0x1f8
090
I/dalvikvm( 2286):   | sysTid=2296 nice=0 sched=0/0 cgrp=bg_non_interactive
hand
le=2064144
I/dalvikvm( 2286):   | schedstat=( 10000000 40000000 742 )
I/dalvikvm( 2286):   at
com.friendlyarm.AndroidSDK.HardwareControler.read(Native
Method)


级别: 荣誉会员
UID: 34761
精华: 0
发帖: 1348
金钱: 6835 两
威望: 1367 点
综合积分: 2696 分
注册时间: 2010-12-21
最后登录: 2017-06-02
1楼  发表于: 2011-07-22 17:39
这个问题好像已经解决了,你下载了最新的光盘了吗?
级别: 新手上路
UID: 41818
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
综合积分: 22 分
注册时间: 2011-04-01
最后登录: 2012-11-12
2楼  发表于: 2011-07-22 18:37
我用的是0520版的Android 2.3.4光盘镜像,最新版是指这个链接http://www.aiothome.net/read.php?tid-13469.html里的0703版吗?
谢谢!
级别: 新手上路
UID: 63093
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2012-02-14
最后登录: 2012-02-15
3楼  发表于: 2012-02-14 09:53

 回 楼主(iknowigo) 的帖子

楼主!我也遇到这个问题了,请问这是怎么回事啊!但是我遇到这个问题并不是用串口读取数据时出的错,而是循环调用JNI解码库时出错的。这是怎么回事,如何解决呢?
级别: 新手上路
UID: 40824
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2011-03-22
最后登录: 2014-12-15
4楼  发表于: 2012-05-26 12:47
请问com.friendlyarm.AndroidSDK.HardwareControler在哪个jar里面?
级别: 新手上路
UID: 68745
精华: 0
发帖: 24
金钱: 120 两
威望: 24 点
综合积分: 48 分
注册时间: 2012-04-26
最后登录: 2012-09-25
5楼  发表于: 2012-08-15 16:47
我已经更新了最新的光盘,我也遇到这个问题。比如我打开串口调试助手,按定时10ms发送一次数据,很容易就挂掉,错误跟这个一样。有没有解决办法
级别: 总版主
UID: 45585
精华: 3
发帖: 628
金钱: 3375 两
威望: 675 点
综合积分: 1316 分
注册时间: 2011-05-06
最后登录: 2018-10-18
6楼  发表于: 2013-03-27 17:21
该问题已修复,将附件的文件解压,更新 libfriendlyarm-hardware.so到 /system/lib/ 下即可。 ~~
附件: libfriendlyarm-hardware.so.zip (10 K) 下载次数:43
级别: 新手上路
UID: 129557
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2016-11-28
最后登录: 2016-12-01
7楼  发表于: 2016-12-01 17:24

 回 6楼(xoom) 的帖子

HardwareControler中openSerialPortEx()接口返回值可以修改为文件描述符FileDescriptor,返回int类型,想操作输入输出流不方便,如果想这样修改要怎么做?