jjzjj

Android系统对Binder Tokens的使用

我正在this阅读有关在Android系统中使用Bindertoken的信息博客文章。我看到了与唤醒锁相关的示例,其中token用于识别来自同一应用程序的后续请求。请问为什么在Android系统中,调用应用的UID不足以跟踪应用后续的请求?在识别应用程序方面,是否需要Binder代币满足UID无法满足的要求? 最佳答案 Bindertoken不像uid那样识别应用程序。token是一种能力或门票,这意味着拥有才是最重要的。换句话说,使用Bindertoken,谁或什么并不重要,重要的是您是否拥有该token。最后一部分是关键:在An

android - 使用 Android Binder 共享文件描述符

如何在C++中使用AndroidbinderIPC跨进程共享文件描述符?你也可以发布示例吗? 最佳答案 在客户端进程中,我们执行以下操作来执行Binder事务remote()->transact(MYTRANSACTION,data,&reply,IBinder::FLAG_ONEWAY);data和reply都是Parcel类型。编码和解码是在nativeandroid中使用Parcel对象完成的。它具有编码文件描述符的功能。data.writeFileDescriptor(fd);在服务器进程中(即android中的Servic

android 服务连接... Messenger 或 Binder 或 AIDL?

我对不同的人和开发者网站的不同意见感到很困惑......我正在构建一个应用程序,其中我正在运行一个服务(本地服务)...它不断更新数据(套接字)..我希望每次都能在Activity中反射(reflect)出来...哪一个是最理想的遵循方式?? 最佳答案 我觉得binder会更好一些,因为messenger或者aidl都是针对跨进程通信的。 关于android服务连接...Messenger或Binder或AIDL?,我们在StackOverflow上找到一个类似的问题:

Android Binder 生成器失败

我已经用我的界面定义了一个AIDL文件。像这样:interfaceIResPlugin{intdiscoverType();MaponClick(inintid,inMapstate);intgetLayoutId(inintoption);intgetMeasures();StringgetName();}Eclipse会自动在gen文件夹中生成IResplugin.java,但它做错了。这是Eclipse生成的代码:publicjava.util.MaponClick(intid,java.util.Mapstate)throwsandroid.os.RemoteException

Android Binder 内部

我正在做一个项目,我们向android系统添加了一些非标准的安全功能,但我在调整Binder时遇到了一些严重的问题。有没有人对Binder系统有很深的了解,知道Binder为什么会“阻塞”一个传递Parcel的进程,接收进程又是如何解阻塞的? 最佳答案 这是Android文档中所说的预期行为:http://developer.android.com/reference/android/os/IBinder.htmlThekeyIBinderAPIistransact()matchedbyBinder.onTransact().The

android - Android 中的 Binder 事务失败

我的beagleboard上出现Binder错误,如下所示?如何找出导致这些错误的进程?binder:sendfailedreplyfortransaction4800,targetdeadbinder:1112:1750transactionfailed29189,size1528-4binder:sendfailedreplyfortransaction6233,targetdeadbinder:1112:1112transactionfailed29189,size1332-4binder:sendfailedreplyfortransaction4792,targetdeadb

android - Binder 防止垃圾回收

我想我追踪到了内存泄漏,并想确认我认为Android的Binder是如何实现的。在这种情况下,我有一个服务和一个Activity,每个都在自己的进程中。我创建了一个AIDL,它允许我通过ipc方法将回调对象从Activity传递到服务,然后在服务完成请求的任务时调​​用回调。很长一段时间我都在想:如果我将一个新的回调对象传递给服务并且我没有在我的Activity中保留指向回调对象的指针为什么垃圾收集器不继续进行并在我的Activity进程中收集回调?既然这似乎没有发生,JVM如何知道何时在我的Activity中垃圾收集回调。我想答案是Binder系统在Activity进程中保留了一个指

android - 我应该扩展 Binder 类还是使用 Messenger?

在我的应用程序中,我将其设计为具有持续获取数据的服务(出于充分的理由,它来自某些传感器)并将其提供给两个客户端:用于显示实时数据的UIActivity另一个记录数据的服务在任何时候,这两个客户端、一个客户端或一个都不在运行。我认为这个服务应该是一个Bound服务,而logging服务是一个Started服务。Androiddocumentation因为这表示我应该扩展Binder类,或者如果我想从另一个进程访问该服务,则使用Messenger。此服务、日志记录服务和UIActivity都将在同一个apk中,因此它们可能在同一个进程中-但这里最好的解决方案是什么?我怀疑文档可能没有考虑到

Android Binder 清除调用者身份

最近看Android源码,发现在BinderIPC调用时,总是调用一对方法。我阅读了评论,但我无法清楚地知道根本原因。配对方法如下:finallongorigId=Binder.clearCallingIdentity();//otherlocalmethod.Binder.restoreCallingIdentity(origId);有谁知道那对方法的作用是什么?好像跟权限有关。 最佳答案 虽然问题很老,但除了官方的方法描述外,还值得补充更多细节。除了(或连同)IPC,Android中Binder框架的关键作用是安全性。每个Bin

android - Android注解中Main Thread、Ui Thread、WorkerThread、Binder Thread的区别

正如我在threaddocument的android注释中所读到的那样我们有四种线程,@MainThread@UiThread@WorkerThread@BinderThread有什么区别? 最佳答案 区别在于:@MainThread,应用程序启动时运行的第一个线程,@UiThread,从MainThread运行用于UI工作,@WorkerThread,在程序员定义线程时运行@BinderThread,用于ContentProvider中的query()/insert()/update()/delete()方法。