BrokenVns 最近的时间轴更新
BrokenVns

BrokenVns

V2EX 第 201756 号会员,加入于 2016-11-17 11:03:31 +08:00
BrokenVns 最近回复了
163 天前
回复了 BrokenVns 创建的主题 Microsoft Office office 365 家庭版 48/15 个月
抱歉各位,已经满了。
MessageQueue 并不是只轮询了 eventfd,MessageQueue 的 Native 实现还能额外监听 16 (没记错的话)个 FD,而且这 16 个事件 FD 的处理优先级比消息队列里的消息更高。要我说原本就是设计了一个多路复用的事件处理器,并使用其中一路实现了消息队列功能。这种设计在很多开源库里都能看到。既然 Native 已经实现了一个好用的组件,那么 Java 层的 MessageQueue 通过 JNI 复用这些功能也是合情合理的。MessageQueue 整个组件的功能并不止应用开发者用到的那点,系统服务比如 surfaceflinger 就需要监听额外的事件。
能申请经费的话,2000-3000 买块 Android 推荐的开发版( https://source.android.google.cn/setup/build/devices )或者弄台 M1(最快的 Android 模拟器)。源码编译的话我觉得可以考虑使用 cuttlefish 替代 QEMU,我自己的体验来说 cuttlefish 版比 qemu 版快一些。https://source.android.google.cn/setup/create/cuttlefish
2021-07-02 00:16:42 +08:00
回复了 Tuy 创建的主题 Java 对于一个类,如何获取其中一个 List<T>成员变量的 T.class
查你用的 JSON 库的文档,看看有没有提供泛型相关的支持。比如 Gson 会提供 TypeToken 。也可以去参考类似 GSON 等库的实现。
2021-03-01 14:23:36 +08:00
回复了 dvbuzhidao1 创建的主题 Android 各种国产 Android 发行版不同机型间更新不统一
1.Google 不是厂家的直接上游,厂商的代码是从高通 /MTK 拉取的,有问题有需求给高通 /MTK 提 Case,高通 /MTK 提供 Patch 后,厂家 merge 。
2.老项目的大版本更新是很烦的,对于上层开发(驱动以上)来说,基本上就是新项目了。
3.国内型号太多了,人员是有限的,主力都是投入到新的旗舰项目上。没几个人愿意维护各种型号的老项目,更何况非旗舰型号的多半是外包出去的。
以上不一定正确,基于个人认知。
2021-01-12 11:14:23 +08:00
回复了 oldbird 创建的主题 Python 多进程处理数据时如何完整打印?
再启动一个日志进程,通过 socket 把每个进程的日志发送过去,由日志进程汇总打印。
2021-01-08 10:38:47 +08:00
回复了 treePerson 创建的主题 Android Android 线程间通信全部用广播,有什么坏处吗?
广播是基于异步 binder 的,异步 binder 存在以下小问题:
1.能够传递的数据量是同步 binder 的一半( 0.5M-4K ).
2.异步 binder 的消息传递优先级不高,可能会出现广播接收延迟问题,这种现象在 binder 流量大的老机器更明显。
3.你不知道异步 binder 传递是否成功了,碰到过通信失败而引发的 ANR 问题。
广播自身也有些小问题,比如广播要先发送给 AMS 再由 AMS 进行分发,跨了两次进程,广播是透明的等。

少量使用动态广播,可以减少开发量。
大量使用异步通信的话,还是建议使用 Looper-Handler 、开源库或者造轮子
2020-02-18 14:25:11 +08:00
回复了 HelloLingC 创建的主题 Android 关于调用系统级 API (ServiceManager#getService)
源码里本来就有 ServiceManager 这个类,你调用的是源码里的类和方法吧。你自己的修改应该没有成功吧。
至于 getService 方法会返回 BinderProxy 是因为:
1.getService 方法中会调用 Parcel 的 readStrongBinder 方法。
2.readStrongBinder 会在通过 jni 调用 Parcel(c++)的 readStrongBinder 获取对应 service 的 BpBinder
3.接着构造 javaObject(BinderProxy)。
4.将 BpBinder 的地址存 BinderProxy 的变量中后将 BinderProxy 返回给 readStrongBinder,最后返回给 getService。
2019-11-28 19:34:11 +08:00
回复了 gramyang 创建的主题 Java Android 上使用 wait/notify 的奇怪 bug
@gramyang 你的 run()是在 ConnectThread 类里直接重写的吗?
我见过有人这么写的:
t = new Thread(()->{
synchronized (this){...}
});
synchronized (t){...}
上面这种情况就把对象混淆了。
如果不是我猜的这种情况,你多加点 log 看看,要不试试第 3 条。
2019-11-28 12:40:57 +08:00
回复了 gramyang 创建的主题 Java Android 上使用 wait/notify 的奇怪 bug
1.主线程是可以有阻塞操作的,但不建议。
2.我觉得你的 synchronized (mConnectThread)和 synchronized (this)可能不是同一对象,你这个 this 是 Thread 还是 Runnable ?我建议你把这两个对象打印出来看一下。
3.你可以试试定义额外的对象作为锁来试试,比如都使用 synchronized (lockObject)
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1662 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 01:22 · PVG 09:22 · LAX 18:22 · JFK 21:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.