草庐IT

android - 将位图动态放入小部件时失败的 Binder 事务

谁能告诉我失败的Binder交易错误的原因?我可以在logcat中看到此错误消息。尝试将位图动态放入小部件时出现此错误... 最佳答案 这是因为对RemoteViews的所有更改都是序列化的(例如setInt和setImageViewBitmap)。位图也被序列化成一个内部包。不幸的是,这个bundle的大小限制非常小。您可以通过这种方式缩小图像大小来解决它:publicstaticBitmapscaleDownBitmap(Bitmapphoto,intnewHeight,Contextcontext){finalfloatden

android - 小部件更新时 Binder 交易失败

我正在像这样更新小部件中的一个位图(整个小部件只有一个ImageView)remoteViews.setImageViewBitmap(...)在一些罕见的情况下(在每天使用的6个月内发生3次)我得到“!!!FAILEDBINDERTRANSACTION!!!”。然后,只有重启手机才能解决这个问题。卸载再安装,无济于事,只能重启。我检查了图标的大小,它只有56KB,所以它符合IPC内存限制。当我删除setImageViewBitmap(...)时,小部件再次工作,但位图未更新。所以问题出在位图本身。当bitmal这么小的时候,什么会导致这个binder交易失败?现在,我通过将图标保存到

Android Widgets 允许以某种方式超过 Binder 事务限制?

在AppWidgetManager的Android文档中它说ThetotalBitmapmemoryusedbytheRemoteViewsobjectcannotexceedthatrequiredtofillthescreen1.5times,ie.(screenwidthxscreenheightx4x1.5)bytes.但是TransactionTooLargeException的文档说:TheBindertransactionbufferhasalimitedfixedsize,currently1Mb,whichissharedbyalltransactionsinprog

Android IPC LocalSocket 与 Binder (AIDL)

我希望每个应用都能向我的服务发送数据。因此我需要进程间通信。我能找到的每个页面都建议使用Messenger、AIDL或Intents(BroadcastReceiver)。到目前为止,我可以通过构建一些测试应用程序发现BroadcastReceiver非常慢,如果在while(true)循环中使用多个线程发送消息,消息可能会在没有通知的情况下丢失。AIDL和Messenger不仅实现起来很复杂(需要服务,Binder,......)而且可以提供奇怪的行为,例如当使用AIDL发送多线程导致RemoteException(!!!FAILEDBINDERTRANSACTION!!!)时使用o

android - Android AIDL/Binder 接口(interface)对象是线程安全的吗?

如果我有一个表示远程接口(interface)(到Android服务或远程客户端的回调接口(interface))的Binder对象,那么在从多个线程通过该对象发送IPC时我是否需要显式同步,或者由底层Android组件? 最佳答案 如果我们希望客户端和服务在同一个进程中运行,并且不希望跨不同应用程序执行并发IPC,则使用Binder类实现Bounded服务。因此调用服务方法的线程(在客户端中)将被阻塞,直到它返回。在客户端(Activity)中可能会以编程方式产生多个线程,每个线程都会在任何时刻调用服务方法。因此,服务应该实现为线

java - Android java Binder 失败的 Binder 交易

我有下一个问题,我正在创建自定义适配器的ListView,我正在使用异步任务从JSONurl(文本和图像url)下载适配器的数据,然后我将适配器设置为列表,我使用毕加索库下载图像,现在我的应用程序工作正常,它不会崩溃但是当我开始另一个Activity时我得到这个:E/JavaBinder:!!!失败的BINDER交易!!!即使新Activity为空,我也会收到错误,我使用的是motoG。我已经使用DDMS和EclipseMAT分析了堆,但我没有发现我的代码是否导致内存泄漏。多次从一项Activity更改为另一项Activity,我在logcat中得到了这个:09-0410:37:54.

android - Kotlin:如何在 Binder 中返回正在运行的服务实例?

我有Service的Java代码,并试图将其转换为Kotlin。classMyService:Service(){companionobjectMyBinder:Binder(){fungetService():MyService?{returnMyService::class.objectInstance}}//serviceimplementation}问题是在Activity中getService()总是返回null。我确定service之前已经启动,我在logcat中看到了它。我建议从Java代码自动生成的行应该不同,但我找不到解决方案:returnMyService::cla

android - Binder 类是做什么的? Android绑定(bind)服务中的绑定(bind)是什么意思?

我对绑定(bind)服务一头雾水。我的问题是:绑定(bind)是什么意思?Binder类是做什么的?“返回与服务交互的IBinder”是什么意思?什么是IBinder对象?onBind()方法如何工作?这些是关于绑定(bind)服务的问题。请详细说明。我已经阅读了文档,但我仍然不清楚。 最佳答案 绑定(bind)服务:绑定(bind)服务是一种允许应用程序组件通过调用bindService()创建长期连接来绑定(bind)到它的服务。当您希望通过进程间通信(IPC)与来自应用程序中的Activity和其他组件的服务进行交互,或者将应

android - 安全异常 : Binder invocation to an incorrect interface using in-app billing

我在尝试使用Google提供的应用内结算库时收到SecurityException。这是完整的异常(exception):07-0515:56:47.78326481-26481/com.andrewq.planetsE/AndroidRuntime﹕FATALEXCEPTION:mainProcess:com.andrewq.planets,PID:26481java.lang.SecurityException:Binderinvocationtoanincorrectinterfaceatandroid.os.Parcel.readException(Parcel.java:14

android - 如何听dev/binder?

在Android中dev/binder也负责层通信。是否可以收听消息?我知道它们必须被解码,但我怎样才能得到这些消息。例如,如果一个应用程序发送一条消息成为一个地理定位。我也在我的Android设备上获得了root。 最佳答案 简短:不,这不应该是可能的,即使是root。网上关于Binder的详细信息不多,但有一些,尤其是关于安全性的信息。引用this或topoint3.8here.您还可以阅读内核驱动程序的源代码和openbinder的源代码。. 关于android-如何听dev/bi