摘要:
在android项目中要实现一个需求为了性能的要求只能用c代码来实现功能。这样就牺牲了java跨平台性。通过加载.so的方式,把用c实现的模块集成到app中。android提供jni层,作为一个适配器。可以在java层调用c接口,在jni层可以通过java提供的反射机制调用java接口和创建java对象。最后需求完成了,自测也没问题,嘻嘻,自己也开心了一下,但是提交测试后,测试人员马上报了一个bug。出现local reference table overflow (max=512)这样的一个错误。我去,尽然出现了崩溃。google和百度了半天,才发现原来发生了jni层的内存泄露,导致了崩溃。 阅读全文