
Android
文章平均质量分 66
taopi2024
10+年华为工作经验,无线飞虎队资深成员,资深软件工程师、高级架构师。
初创公司两年半leader经历,作为部门经理组建20人开发团队,作为项目经理,带领团队从零到一快速开发实现功能,负责编写实现了基础设施层、重点业务功能的核心代码。
现创办武汉猿核信息科技有限公司,承接各类软件业务,欢迎合作洽谈。
展开
-
基于asr的所见即可说方案
2、语音下达包含热词的指令 --> asr平台返回消息和语音 --> 根据asr的框架解析出意图 --> 根据意图判断是所见即可说指令,并解析出热词 --> 根据ocr解析结果,获取对应热词的坐标 --> 模拟点击 --> 点击特效。那么是否可以在前端页面每次切换时,只作一次截屏+ocr+热词上传,如果是只在当前应用内部的页面,是可以简单做到的,前端调用一个接口就行。所以,这也是一个折衷的普适方案,而且延时1s不是那么明显,等AI语音助手说完话,在作第二轮语音交互,也很自然。此方案,我认为还是偏过渡性质。原创 2025-02-07 23:24:07 · 522 阅读 · 0 评论 -
android java 用系统弹窗的方式实现模拟点击动画特效
本篇记录的是系统弹窗的一个应用示例:实现点击动画效果动画效果,是指点击之后,在点击的中心坐标,播放一个固定时长的动画。因为需要能够在其他应用上播放动画,所以可以使用系统悬浮窗,即系统弹窗来实现。实现上很多可参考。原创 2025-02-03 23:54:46 · 1018 阅读 · 0 评论 -
android java系统弹窗的基础模板
4)需要弹出时,调用接口show(),如果弹出时,想要修改弹窗的界面参数,可在show接口里调用WindowManager.LayoutParams进一步定制。2)params = new WindowManager.LayoutParams是用来设置弹窗的参数,包括大小、坐标、透明度等。1)获取资源文件的rootView,添加到系统管理器下,达到系统级弹窗效果,可在其他app上弹出。app\src\main\res\layout下增加custom_pop_layout.xml。定义弹窗的控件资源。原创 2025-02-02 23:58:58 · 505 阅读 · 0 评论 -
arkts bridge使用示例
定义一个bridge的class,里面创建平台桥接实例,就可以实现各种bridge接口。这里实现了一个getThirdAppInfo接口,获取后端第三方应用的信息。参数为两个string,返回一个promise数据。promise也就是JavaScript中用于处理异步操作的一种机制,详细说法这里就不展开了。DevEco Studio工程// 创建平台桥接实例})})原创 2025-01-30 10:31:33 · 814 阅读 · 0 评论 -
arkui-x跨平台与android java联合开发
华为鸿蒙系统采用的是arkts,支持跨平台crossplatform即前端为arkts,arkui-x框架,后端为其他的语言框架。本篇示例后端采用的是java,android studio工程。主要方式是前端鸿蒙完成界面元素、布局等效果,后面android java提供一些系统数据获取接口、以及多媒体方面的操作接口。这里重点讲一下开发环境、工程构建与发布方法。原创 2025-01-29 23:18:22 · 828 阅读 · 0 评论 -
手势模组ATK-PAJ7620使用经验
手势模组指的是手势传感器的模块组。手势传感器是一种能够感知人类手势或动作的传感器。它可以捕捉、识别和解释人类的手部动作或姿势,并将其转换成电信号或数字信号,通过识别人体的手势动作来实现与电子设备的交互,如控制电视、医疗设备、游戏机及VR设备等。所以很多应用板都会集成手势模组,以提供多样的用户体验。这里选用了正点原子手势识别模块组ATK-PAJ7620,集成到rk3588板上。原创 2025-01-28 23:49:19 · 1356 阅读 · 0 评论 -
android 获取图标主要颜色作背景色
3、第二多的颜色为白色,如果第一多为黑色,取第三多的颜色,如果第三多的颜色不存在,则对白色和黑色取均值;功能描述:制作一个应用列表,每个元素如下,内圈是应用的图标,外圈大的圆角长方形作为背景。制定几个基本原则,一般白色不作为背景色,其次是黑色也不太会考虑,对于多种颜色在数量上相近的情况(非白黑),取一个平均值。1、统计前三种最多的颜色,因为最极端情况,就是白色、黑色,还有一个其他颜色。4、如果后一种颜色的数量,相比前一种,相差一个数量级以上,则舍去。5、三种最多的颜色,非黑非白,数量相差不多,取平均值。原创 2025-01-24 10:31:38 · 486 阅读 · 0 评论 -
android模拟点击
这两个写法都使用了new Thread(() -> {}).start()写法,因为不这样,会触发运行崩溃。但是在应用外的界面(当前应用后台运行,在其他应用界面),比如系统设置的界面,出现的是长按的效果。这个写法,因为fetchroot里使用root权限,所以需要系统签名。问题:应用内界面没有问题,能正常触发点击效果。1、使用Instrumentation。2、用adb模拟点击。原创 2025-01-23 22:20:42 · 325 阅读 · 0 评论 -
对所见即可说方案进一步调研
基于上一篇的调研果,因为flutter混合开发的应用是很多的,如果辅助服务只能捕捉到原生android页面,无法捕捉到flutter页面,方案就不可行。此外对于arkui-x页面,也出现了辅助服务无法抓词的问题。客户认为需要进一步摸索更多的方法。原创 2024-10-15 00:34:51 · 624 阅读 · 0 评论 -
在原生apk中监听flutter apk的无障碍事件(调研)
背景:在已写好的android java应用中,已经实现了无障碍服务,在无障碍api接口onAccessibilityEvent里能正常监听到系统里其他原生应用的AccessibilityEvent。需求:flutter最新版本已支持无障碍功能,在不修改原生apk代码的情况下,应当能监听到flutter apk里的无障碍事件,并抓取页面上对用的文本内容,需要验证确认下。Flutter 的无障碍功能主要是通过 Semantics 小部件和相关的 API 来实现的,而不是通过直接监听无障碍事件。原创 2024-10-05 21:55:01 · 1123 阅读 · 1 评论 -
android stuido做一个flutter的apk
注意创建一个新的flutter项目,可能用到的gradle是另一个版本,如果不翻墙,需要提前下载好,解压放到目录.gradle\wrapper\dists\gradle-xxx-xxx\<某个序列码,比如gradle-8.3-all对应的是6en3ugtfdg5xnpx44z4qbwgas>\下。Flutter assets下载,实测第一次耗时1小时13分钟。有了配置java和gradle的经验,就很简单。工程目录下输入flutter build apk。原创 2024-10-01 07:49:48 · 337 阅读 · 0 评论 -
打通“科大讯飞插件asr”到“辅助点击功能”的流程
现在的设计是main activity创建时启动了asr的语音服务VoiceRecognitionService和辅助服务AccessibilityVoiceCtrlService,前者会监控语音输入,转换为热词,后者会监控界面,实时获取所有view节点的文本。一般用法是客户端给服务端发消息,而这里需要AIDL服务端VoiceRecognitionService主动给客户端AccessibilityVoiceCtrlService发消息,可以用AIDL Callback来实现。原创 2024-09-28 23:26:27 · 690 阅读 · 0 评论 -
android无障碍服务debug启动问题
—启动一个服务,KeyLisService是派生accessibiliyService的一个子类。方式:通过Settings.Secure.putString。——表示一个窗口(Window)对象被销毁了。方式:跳转到设置页面去手动开启无障碍服务。下面代码可以打开系统的无障碍功能列表。——另一个新加的无障碍模式没有启动。bug暂时没有遇到。原创 2024-09-26 21:49:12 · 492 阅读 · 0 评论 -
AccessibilityService可见即可说方案对比
AccessibilityService也叫andriod辅助服务。这个服务提供了增强的用户界面,目的是为了帮助残障人士。它一般提供了页面元素查找功能和元素点击功能。使用科大讯飞asr语音能力,实现语音控制点击界面。原创 2024-09-25 23:33:42 · 1019 阅读 · 0 评论 -
app:compileDebugJavaWithJavac红色乱码告警的遗留问题
android studio 编译时在build输出里看到的告警,编译结果是成功的搜索百度,有三个说法1、源代码文件的编码格式(如UTF-8),设置后没有变化2、 mipmap-mdpi文件夹中的图片,复制一份到 mipmap-hdpi 文件夹,或者复制到每一个 mipmap-xxxxxxxxx 文件夹里面就可以解决这个问题的。试了后也没有效果,可能是因为我的本地项目并没有对应mipmap文件夹adb获取手机像素密度: adb shell wm density。原创 2024-09-25 13:57:55 · 646 阅读 · 0 评论 -
MutableLiveData用法
LiveData是Android架构组件的一部分,它是一个可观察的数据存储器,用于UI相关的数据。LiveData是只读的,而MutableLiveData可用来修改数据。MutableLiveData定义了postValue和setValue用来通知观察者更新数据。postValue为异步操作。setValue为同步操作。允许从非 UI 线程更新这些值,比如 从协程中更新。热词命中(asr是科大讯飞语音插件)原创 2024-09-24 09:22:34 · 328 阅读 · 0 评论