问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android实现private/final类继承

发布网友 发布时间:2024-09-28 21:09

我来回答

1个回答

热心网友 时间:2024-10-25 19:26

在最近的项目中,为了实现Android Accessibility功能,我们需要在后台获取当前前台页面的节点,即AccessibilityNodeInfo。Android系统通过AccessibilityService中的“List getWindows()”方法获取当前屏幕的所有window列表,再通过每个AccessibilityWindowInfo的“AccessibilityNodeInfo getRoot()”获取每个window对应的布局根节点。

然而,对接方的接口只能传递一个AccessibilityNodeInfo节点,很多时候,又无法确认对接方需要的window究竟是哪一个。因此,我们需要创建一个AccessibilityNodeInfo的子类,命名为FakeAccessibilityNodeInfo,将获取的所有window列表的根节点都设置为FakeAccessibilityNodeInfo的子节点,这样就不会丢失需要查找的节点。

但是,直接创建FakeAccessibilityNodeInfo继承系统的AccessibilityNodeInfo类时,app会崩溃,报错信息显示在创建FakeAccessibilityNodeInfo对象时,构造函数中触发父类构造函数,但父类AccessibilityNodeInfo的构造函数对于子类FakeAccessibilityNodeInfo是不可访问的。

经过排查,我们发现该问题并非在所有机型上都存在,目前发现该问题的机型为一台三星A21,怀疑与Android系统版本有关。检查后发现测试过的手机中,仅有该测试机为Android10。通过查阅所有Android 6~14版本的代码发现,AccessibilityNodeInfo的构造函数,是在Android11开始开放给开发者的,之前的所有版本都是private方法且被标识为@hide,不开放给开发者。

为了解决这个问题,我们尝试了多种方法,包括在FakeAccessibilityNodeInfo构造方法中不调用父类AccessibilityNodeInfo构造方法、反射父类AccessibilityNodeInfo的构造方法等,但都失败了。最后,我们通过修改Java方法对应在C/C++层的ArtMethod的access_flags_来实现继承private类型的类。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivox9和x9i有什么区别 ...设置原则跟构造要求。构造柱的设置原则跟构造要求是什么_百度... ...的U型钢筋锚环要几道?在哪里可以找到依据啊 ...月末不含税库存金额1065000元,请计算门店库存天数 公蟹吃什么 公蟹吃什么东西 爬行健身操功能和原理 锻炼爬行的好处有哪些呢 爬行健身法有什么优缺点 檀木如何粘合 成田剑先生还为哪些日本动漫配音,有名一点滴。谢谢了,大神帮忙啊 Android游戏脚本开发 - 基础框架(二)无障碍 梦见同事发传单打我小报告被我知道了,当时屋里四个人,他是上级跟他说... 指鹿为马指的是谁,负荆请罪是一部什么话剧.氵 成语 指鹿为马 出自何处?讲述了一个什么故事? 华融、东方、信达、长城…四大国有AMC是干嘛的?应届生要不要去? 迪士尼app买票步骤_上海旅游节迪士尼门票怎么买 贝亲护臀膏怎么样啊?成分安全吗? 大家有哪些好用的宝宝护臀膏推荐呢? 宝宝护臀膏哪个好 婴儿护臀膏什么牌子好?婴儿护臀霜排行榜 屁屁乐和贝亲护臀膏哪个好 我的配置CPU:amdA10-6700 4G内存 1t硬盘 主板芯片amdk15imc 电源280w... 如何在抖音直播间送礼物给主播? ...而且后来还去玩游戏了。玩完游戏才回我消息。是不爱我么? 为什么和女生玩游戏越玩越不合适?! coreldraw里边怎么抠图? 楚汉战争中刘邦取胜的原因是什么 刘邦赢得天下的原因是什么? 国内十大贵金属交易软件平台排行榜(2022版一览) 怎样利用CORELDRAW抠图 汽车上滑轮是什么意思? 卧室装修最该考虑的4个问题 别犯了忌讳 给大家讲讲卧室装修的五个注意事项 100元买那个乒乓球拍好?推荐几款100元内的乒乓球拍 我要买一根乒乓球拍!价格在100元之内!推荐下 推荐一只乒乓球拍(直拍),价钱在100元左右。 为何老是在上网时电脑会自动关机重启,在开以后就会出现意外关闭网页... 求欧美古装电视剧,记住是美剧,不要电影,像冰与火类似的美剧 求几部好看的欧美古装电影,类似他是龙、王者之心、沉睡魔咒、白雪公主... i3-3240性能是否优于i3 3220? 大家好,请问十指缘甲油胶在哪能买到,在淘宝,天猫,阿里巴巴都没找到... 如何才能使指甲油寿命变长 期货什么事权益和可用 期货权益资金什么意思 期货可用资金什么意思 女人梦见没见过的动物预示着什么 女人梦见没见过的动物什么意思_百度... 理财的书有哪些 做理财应该看什么书 如何找到高质量的免费CAD设计素材和模板? 学投资理财看什么书